diff --git "a/examples.txt" "b/examples.txt" --- "a/examples.txt" +++ "b/examples.txt" @@ -1,100 +1,100 @@ -__int64 __fastcall sub_42FF6D(__int64 a1, char a2)\n{\n char v3[4]; // [rsp+1Bh] [rbp-5h] BYREF\n char v4; // [rsp+1Fh] [rbp-1h]\n\n v4 = (2 * *(_BYTE *)(a1 + 60)) | 1;\n v3[0] = 17;\n v3[1] = 3;\n v3[3] = 3;\n v3[2] = a2;\n return sub_42F873(a1, v4, 0xEFu, 0, v3, 3u);\n} -char *__fastcall sub_42E065(_WORD *a1, int a2)\n{\nsub_42DFFA(a1, a2);\nreturn sub_42DFFA(a1 + 1, SHIWORD(a2));\n} -unsigned __int64 __fastcall sub_40B5E0(__int64 a1, int a2, int a3)\n{\n_DWORD **v3; // rdx\nunsigned __int64 v6; // [rsp+10h] [rbp-30h]\n_DWORD *v7; // [rsp+20h] [rbp-20h]\n_DWORD *v8; // [rsp+28h] [rbp-18h]\n__int64 v9; // [rsp+30h] [rbp-10h]\n_DWORD *v10; // [rsp+38h] [rbp-8h]\n\nv6 = sub_40B2A0(a1, a2, a3);\nif ( !v3 || a3 + HIDWORD(v6) > *(_DWORD *)(a1 + 4) || !*(_QWORD *)(a1 + 32) )\nreturn v6;\nv9 = *(_QWORD *)(a1 + 32);\n*(_DWORD *)v9 = v6;\n*(_DWORD *)(v9 + 4) = a3 + HIDWORD(v6);\n*(_QWORD *)(a1 + 32) = *(_QWORD *)(v9 + 8);\nv10 = *v3;\nif ( **v3 >= (int)v6 )\n{\n*v3 = (_DWORD *)v9;\n}\nelse\n{\nv8 = (_DWORD *)*((_QWORD *)v10 + 1);\n*((_QWORD *)v10 + 1) = v9;\nv10 = v8;\n}\nwhile ( *((_QWORD *)v10 + 1) && **((_DWORD **)v10 + 1) <= (int)v6 + a2 )\n{\nv7 = (_DWORD *)*((_QWORD *)v10 + 1);\n*((_QWORD *)v10 + 1) = *(_QWORD *)(a1 + 32);\n*(_QWORD *)(a1 + 32) = v10;\nv10 = v7;\n}\n*(_QWORD *)(v9 + 8) = v10;\nif ( *v10 < (int)v6 + a2 )\n*v10 = a2 + v6;\nreturn v6;\n} -__int64 __fastcall sub_419EB3(__int64 a1, __int64 a2, unsigned __int8 a3, _DWORD *a4, __int64 a5, __int64 a6)\n{\nchar *v8; // [rsp+20h] [rbp-10h]\n_WORD *v9; // [rsp+28h] [rbp-8h]\n\nv9 = off_43E280;\nv8 = (char *)off_43E288;\n*((_WORD *)off_43E280 + 2) = a1;\nv9[3] = a2;\n*((_BYTE *)v9 + 8) = a3;\n*(_DWORD *)v9 = 107218216;\nsub_40A2AC(a1, a2, a3, (unsigned int)a1, a5, a6);\nif ( a4 )\n*a4 = *(_DWORD *)(v8 + 6);\nreturn *((unsigned __int16 *)v8 + 2);\n} -__int64 __fastcall sub_4931EA(__int64 a1)\n{\n sub_461FCE(a1, 1, 5);\n sub_46200D(a1, 2);\n sub_46200D(a1, 3);\n sub_45F642(a1, 3);\n sub_460B87(a1, 1);\n return 1LL;\n} -__int64 __fastcall sub_40D340(__int64 a1)\n{\n__int64 result; // rax\n\nLODWORD(result) = 1 << *(_QWORD *)(a1 + 196);\nif ( (unsigned int)result > 0x20000 )\nLODWORD(result) = 0x20000;\nreturn (unsigned int)result;\n} -char *__fastcall sub_403FC3(const char *a1, char *a2)\n{\nchar *v2; // rax\n\nv2 = (char *)sub_403F4A(a1, a2);\nreturn sub_403EBE(v2, a2);\n} -int *__fastcall sub_48C0D4(int a1)\n{\nint v1; // ebx\nint *result; // rax\n\nif ( a1 )\nv1 = a1 - 120000;\nelse\nv1 = 0;\nresult = __errno_location();\n*result = v1;\nreturn result;\n} -__int64 __fastcall sub_47E22A(__int64 *a1, unsigned int a2)\n{\nreturn (unsigned int)sub_422C4A(a1, a2, 0x49u);\n} -__int64 __fastcall sub_40191F(__int64 a1, __int64 a2)\n{\nunsigned int v3; // [rsp+18h] [rbp-8h]\nsigned int i; // [rsp+1Ch] [rbp-4h]\n\nv3 = -1;\nfor ( i = 0; i < *(_DWORD *)(a1 + 4); ++i )\n{\nif ( a2 < *(_QWORD *)(*(_QWORD *)(a1 + 32) + 8LL * i) )\nreturn v3;\nv3 = i;\n}\nreturn v3;\n} -__int64 __fastcall sub_402C53(__int64 a1)\n{\n__int64 result; // rax\n\nresult = sub_402B55(a1);\nif ( (_BYTE)result )\nresult = sub_402C23(a1);\nreturn result;\n} -__int64 __fastcall sub_404A7D(int *a1, unsigned __int8 a2, int *a3)\n{\nint v4; // edx\nchar v6[5]; // [rsp+20h] [rbp-20h] BYREF\nchar v7; // [rsp+25h] [rbp-1Bh]\nunsigned __int8 v8; // [rsp+26h] [rbp-1Ah]\nunsigned __int8 v9; // [rsp+27h] [rbp-19h]\nunsigned __int8 v10; // [rsp+28h] [rbp-18h]\nunsigned __int8 v11; // [rsp+29h] [rbp-17h]\nunsigned __int8 v12; // [rsp+2Ah] [rbp-16h]\nint v13; // [rsp+34h] [rbp-Ch]\nchar v14; // [rsp+3Bh] [rbp-5h]\nunsigned int v15; // [rsp+3Ch] [rbp-4h]\n\nif ( (sub_40409A(a1) & 1) != 0 )\nreturn 2LL;\nv15 = 3;\nif ( a2 == 2 )\n{\n*a3 = 128;\nv15 = 0;\n}\nelse\n{\nif ( a2 > 2u )\ngoto LABEL_17;\nif ( !a2 )\n{\nif ( (unsigned int)sub_403D48(a1) )\n{\nsub_403D0E(a1);\nv15 = 0;\n}\ngoto LABEL_18;\n}\nif ( a2 == 1 )\n{\nif ( !(unsigned __int8)sub_403F17(a1, 9, 0) && (unsigned int)sub_403DC7(a1, v6, 16) )\n{\nif ( (unsigned __int8)v6[0] >> 6 == 1 )\n{\nv13 = (v10 << 8) + v11 + ((v9 << 8) & 0x3F00) + 1;\nv4 = v13 << 10;\n}\nelse\n{\nv14 = (v12 >> 7) + (v7 & 0xF) + ((2 * v11) & 6) + 2;\nv13 = 4 * v9 + (v10 >> 6) + ((v8 << 10) & 0xC00) + 1;\nv4 = v13 << ((v12 >> 7) + (v7 & 0xF) + ((2 * v11) & 6) - 7);\n}\n*a3 = v4;\nv15 = 0;\n}\n}\nelse\n{\nLABEL_17:\nv15 = 1;\n}\n}\nLABEL_18:\nsub_403D0E(a1);\nreturn v15;\n} -__int64 __fastcall sub_44DFF4(unsigned __int64 a1, unsigned __int64 a2)\n{\nvoid *v3; // [rsp+18h] [rbp-8h]\n\nv3 = (void *)sub_44429F(a1, a2);\nif ( !v3 )\nreturn 0LL;\nsub_44DFC2(v3, a2);\nreturn 1LL;\n} -__int64 __fastcall sub_401B65(char *a1)\n{\nint v2; // [rsp+10h] [rbp-100h] BYREF\nchar v3[248]; // [rsp+18h] [rbp-F8h] BYREF\n\nif ( !qword_405CA8 )\nreturn 2LL;\nsub_4011F2((const void *)qword_405CA8, &v2);\nif ( a1 )\nstrcpy(a1, v3);\nqword_405CA8 = sub_4013E3(&v2);\nreturn sub_4012E2((__int64)&v2);\n} -__int64 __fastcall sub_4358A4(_QWORD *a1)\n{\n __int64 v1; // rax\n\n v1 = lua_tointegerx(a1, 1, 0LL);\n lua_pushinteger((__int64)a1, v1);\n return 1LL;\n} -__int64 __fastcall sub_402F65(__int64 a1, int a2)\n{\nsize_t v2; // rax\nsize_t v4; // rdx\n__int64 v5; // rax\n__int64 v6; // rax\n__int64 v7; // rax\nunsigned int v8; // [rsp+4h] [rbp-4Ch]\nunsigned int v9; // [rsp+4h] [rbp-4Ch]\nunsigned int v10; // [rsp+4h] [rbp-4Ch]\nint v11; // [rsp+1Eh] [rbp-32h]\nchar v12; // [rsp+22h] [rbp-2Eh]\nint v13; // [rsp+23h] [rbp-2Dh]\nchar v14; // [rsp+27h] [rbp-29h]\nunsigned int v15; // [rsp+2Ch] [rbp-24h]\nvoid *v16; // [rsp+30h] [rbp-20h]\nint v17; // [rsp+3Ch] [rbp-14h]\nunsigned int j; // [rsp+40h] [rbp-10h]\nint v19; // [rsp+44h] [rbp-Ch]\nunsigned int i; // [rsp+44h] [rbp-Ch]\nvoid *s; // [rsp+48h] [rbp-8h]\n\ns = 0LL;\nv19 = 1;\nv8 = ((((unsigned int)(a2 - 1) >> 1) | (a2 - 1)) >> 2) | ((unsigned int)(a2 - 1) >> 1) | (a2 - 1);\nv9 = (((v8 >> 4) | v8) >> 8) | (v8 >> 4) | v8;\nv10 = (HIWORD(v9) | v9) + 1;\nif ( v10 <= 3 )\nv10 = 4;\nif ( *(_DWORD *)(a1 + 4) < (unsigned int)(int)(0.77 * (double)(int)v10 + 0.5) )\n{\nif ( v10 <= 0xF )\nv2 = 4LL;\nelse\nv2 = 4LL * (v10 >> 4);\ns = malloc(v2);\nif ( !s )\nreturn 0xFFFFFFFFLL;\nif ( v10 <= 0xF )\nv4 = 4LL;\nelse\nv4 = 4LL * (v10 >> 4);\nmemset(s, 170, v4);\nif ( v10 > *(_DWORD *)a1 )\n{\nv16 = realloc(*(void **)(a1 + 24), 5LL * v10);\nif ( !v16 )\n{\nfree(s);\nreturn 0xFFFFFFFFLL;\n}\n*(_QWORD *)(a1 + 24) = v16;\n}\n}\nelse\n{\nv19 = 0;\n}\nif ( v19 )\n{\nfor ( i = 0; i != *(_DWORD *)a1; ++i )\n{\nif ( ((*(_DWORD *)(*(_QWORD *)(a1 + 16) + 4LL * (i >> 4)) >> ((2 * i) & 0x1E)) & 3) == 0 )\n{\nv5 = *(_QWORD *)(a1 + 24) + 5LL * i;\nv13 = *(_DWORD *)v5;\nv14 = *(_BYTE *)(v5 + 4);\nv15 = v10 - 1;\n*(_DWORD *)(*(_QWORD *)(a1 + 16) + 4LL * (i >> 4)) |= 1LL << ((2 * i) & 0x1E);\nwhile ( 1 )\n{\nv17 = 0;\nfor ( j = v15 & v13; ((*((_DWORD *)s + (j >> 4)) >> ((2 * j) & 0x1E)) & 2) == 0; j = v15 & (v17 + j) )\n++v17;\n*((_DWORD *)s + (j >> 4)) &= ~(2 << ((2 * j) & 0x1E));\nif ( j >= *(_DWORD *)a1 || ((*(_DWORD *)(*(_QWORD *)(a1 + 16) + 4LL * (j >> 4)) >> ((2 * j) & 0x1E)) & 3) != 0 )\nbreak;\nv6 = *(_QWORD *)(a1 + 24) + 5LL * j;\nv11 = *(_DWORD *)v6;\nv12 = *(_BYTE *)(v6 + 4);\n*(_DWORD *)v6 = v13;\n*(_BYTE *)(v6 + 4) = v14;\nv13 = v11;\nv14 = v12;\n*(_DWORD *)(*(_QWORD *)(a1 + 16) + 4LL * (j >> 4)) |= 1LL << ((2 * j) & 0x1E);\n}\nv7 = *(_QWORD *)(a1 + 24) + 5LL * j;\n*(_DWORD *)v7 = v13;\n*(_BYTE *)(v7 + 4) = v14;\n}\n}\nif ( v10 < *(_DWORD *)a1 )\n*(_QWORD *)(a1 + 24) = realloc(*(void **)(a1 + 24), 5LL * v10);\nfree(*(void **)(a1 + 16));\n*(_QWORD *)(a1 + 16) = s;\n*(_DWORD *)a1 = v10;\n*(_DWORD *)(a1 + 8) = *(_DWORD *)(a1 + 4);\n*(_DWORD *)(a1 + 12) = (int)(0.77 * (double)*(int *)a1 + 0.5);\n}\nreturn 0LL;\n} -__int64 __fastcall sub_403CDF(unsigned int *a1, char *a2, signed int a3)\n{\n__int64 result; // rax\nint v4; // ebx\nunsigned int v5; // eax\nunsigned int v7; // [rsp+24h] [rbp-3Ch] BYREF\nunsigned int v8; // [rsp+28h] [rbp-38h]\nint v9; // [rsp+2Ch] [rbp-34h]\nint v10; // [rsp+30h] [rbp-30h]\nunsigned int v11; // [rsp+34h] [rbp-2Ch]\nchar *v12; // [rsp+38h] [rbp-28h]\nunsigned __int64 v13; // [rsp+40h] [rbp-20h]\nvoid *src; // [rsp+48h] [rbp-18h]\n\nv13 = (unsigned __int64)a1;\nv12 = (char *)a1 + (unsigned int)sub_402A9E(a1[1]);\nv11 = sub_404DA9(a1);\nif ( v11 )\nreturn v11;\nv10 = 16 * (sub_405754(a1) + 1);\nif ( (unsigned int)sub_402A9E(a1[5]) <= 0x10 )\n{\nv7 = 0;\nwhile ( (unsigned int)sub_404EF3(a1, v7, &v7) != 9 )\n;\nif ( (v7 & 0x80000000) != 0 )\nreturn v7;\n}\nelse\n{\nv7 = sub_402A9E(a1[9]);\n}\nif ( sub_402E74(a1, v10, v7) )\n{\nv4 = v10 + v7;\nv9 = v4 + sub_402A9E(a1[8]) + 40;\nif ( a3 >= v9 )\n{\nsrc = a2;\nif ( v13 >= (unsigned __int64)&a2[v9] || src >= v12 || (src = v12, &v12[v9] <= &a2[a3]) )\n{\nsub_403B8D(a1, (__int64)src, v10, v7);\nmemmove(a2, src, v9);\nsub_402BE4(a2, 0xD00DFEED);\nsub_402C0E((__int64)a2, a3);\nsub_402CBA((__int64)a2, 0x11u);\nsub_402CE5((__int64)a2, 0x10u);\nv5 = sub_402A9E(a1[7]);\nsub_402D10((__int64)a2, v5);\nresult = 0LL;\n}\nelse\n{\nresult = 4294967293LL;\n}\n}\nelse\n{\nresult = 4294967293LL;\n}\n}\nelse\n{\nv8 = sub_40530F(a1, a2, (unsigned int)a3);\nif ( v8 )\n{\nresult = v8;\n}\nelse\n{\nsub_402CBA((__int64)a2, 0x11u);\nsub_402D66((__int64)a2, v7);\nsub_402C0E((__int64)a2, a3);\nresult = 0LL;\n}\n}\nreturn result;\n} -char __fastcall sub_4308DF(__int64 a1)\n{\n int v1; // eax\n __int64 v2; // r8\n __int64 v3; // r9\n __int64 v4; // rdx\n __int64 v5; // rcx\n int v6; // er8\n int v7; // er9\n unsigned __int16 v9; // [rsp+16h] [rbp-Ah]\n __int64 v10; // [rsp+18h] [rbp-8h]\n\n v10 = sub_4081BA(a1);\n v1 = sub_42F4D6(v10);\n if ( !v1 )\n {\n sub_41550C(\n 1,\n \"%s.%u: rfcomm_multiplexer_timer_handler timeout: shutting down multiplexer! (no channels)\",\n (__int64)\"rfcomm.c\",\n 908LL,\n v2,\n v3);\n v9 = *(_WORD *)(v10 + 48);\n sub_43084E(\n (_QWORD *)v10,\n (__int64)\"%s.%u: rfcomm_multiplexer_timer_handler timeout: shutting down multiplexer! (no channels)\",\n v4,\n v5,\n v6,\n v7);\n LOBYTE(v1) = sub_41A274(v9, 0x13u);\n }\n return v1;\n} -__int64 __fastcall sub_40D8CA(__int64 a1)\n{\n__int64 v2; // [rsp+10h] [rbp-10h]\n__int64 v3; // [rsp+18h] [rbp-8h]\n\nv3 = *(_QWORD *)(a1 + 72);\n++*(_QWORD *)(v3 + 272);\npthread_mutex_lock((pthread_mutex_t *)(v3 + 48));\nv2 = sub_4829D4(*(_QWORD *)v3);\nif ( v2 )\n++*(_DWORD *)(v3 + 88);\npthread_mutex_unlock((pthread_mutex_t *)(v3 + 48));\nif ( !v2 )\nreturn 0xFFFFFFFFLL;\n*(_QWORD *)v2 = a1;\n*(_DWORD *)(v2 + 131096) = 0;\n*(_QWORD *)(v2 + 131088) = *(int *)(a1 + 16);\nif ( (*(_WORD *)(a1 + 2) & 0x1FF0) == 0 )\n{\nmemcpy((void *)(v2 + 31), *(const void **)(a1 + 40), *(_QWORD *)(v2 + 131088));\nif ( (int)sub_43DB65(\n*(_QWORD *)(v3 + 24),\n*(_QWORD *)(v3 + 32),\n(unsigned int)sub_40C4C1,\nv2,\n(unsigned int)sub_40C3D3,\n(unsigned int)sub_40C3D3,\n0) < 0 )\ngoto LABEL_10;\nLABEL_9:\n*(_DWORD *)(a1 + 16) = 0;\nreturn 0LL;\n}\nmemcpy((void *)(v2 + 65552), *(const void **)(a1 + 40), *(_QWORD *)(v2 + 131088));\nif ( (int)sub_43DB65(\n*(_QWORD *)(v3 + 24),\n*(_QWORD *)(v3 + 32),\n(unsigned int)sub_40C42F,\nv2,\n(unsigned int)sub_40C3D3,\n(unsigned int)sub_40C3D3,\n0) >= 0 )\ngoto LABEL_9;\nLABEL_10:\nsub_40C3D3(v2);\npthread_mutex_lock((pthread_mutex_t *)(v3 + 48));\n--*(_DWORD *)(v3 + 88);\npthread_mutex_unlock((pthread_mutex_t *)(v3 + 48));\nreturn 0xFFFFFFFFLL;\n} -__int64 __fastcall sub_421189(const char *a1, __int16 a2, _DWORD *a3)\n{\n__int64 result; // rax\nchar v5[28]; // [rsp+20h] [rbp-80h] BYREF\nint v6; // [rsp+3Ch] [rbp-64h]\nint v7; // [rsp+98h] [rbp-8h]\nunsigned int v8; // [rsp+9Ch] [rbp-4h]\n\nv8 = 1;\nv7 = 0;\nif ( a1 )\n{\nsub_41BFCB(v5);\nif ( (unsigned int)sub_41C544((__int64)v5, a1, a2, 0LL, 0LL) )\n{\nif ( !(unsigned int)sub_420DCD((__int64)v5, a2) )\n{\nv7 = v6;\nv8 = 0;\n}\nif ( !(unsigned int)sub_41BFF7((__int64)v5, v8) )\n{\nif ( !v7 )\nv7 = v6;\nv8 = 0;\n}\nif ( a3 )\n*a3 = v7;\nresult = v8;\n}\nelse\n{\nif ( a3 )\n*a3 = v6;\nresult = 0LL;\n}\n}\nelse\n{\nif ( a3 )\n*a3 = 24;\nresult = 0LL;\n}\nreturn result;\n} -int __fastcall sub_401F08(__int64 a1)\n{\nint result; // eax\nint s; // [rsp+1Ch] [rbp-4h] BYREF\n\nmemset(&s, 0, sizeof(s));\nsub_401692(a1, &s);\nresult = *(_DWORD *)(a1 + 20);\nif ( result )\n{\nsub_401F84(a1, &s);\nresult = sub_4017AF(a1, &s);\n}\nreturn result;\n} -__int64 __fastcall sub_442297(__int64 a1, void *a2)\n{\n__int64 v3; // [rsp+18h] [rbp-8h] BYREF\n\nif ( !(unsigned int)sub_442130((const char *)a2, &v3) )\nsub_442177(a1, a2);\nreturn v3;\n} -__int64 __fastcall sub_404735(int a1)\n{\n sub_404692(a1, 0LL);\n return lua_sethook(qword_453330, sub_4046F1, 15LL, 1LL);\n} -bool __fastcall sub_429C61(char a1, __int16 a2, char a3, __int64 a4)\n{\n char v5[11]; // [rsp+25h] [rbp-Bh] BYREF\n\n sub_429BE4(v5, 11, a1, a2, a3, a4);\n return sub_429B5A(4u, 0LL, v5, 0xBu);\n} -_BYTE *__fastcall sub_4222CC(__int64 a1, __int64 a2)\n{\n_BOOL4 v2; // eax\n_BYTE *result; // rax\n__int64 v4; // [rsp+0h] [rbp-30h]\n_BOOL4 v5; // [rsp+20h] [rbp-10h]\nchar v6; // [rsp+26h] [rbp-Ah]\n\nv4 = a2;\ndo\n{\nv6 = v4 & 0x7F;\nv4 >>= 7;\nv2 = v4 != a2 >> 63 || (v6 & 0x40) != ((a2 >> 63) & 0x40);\nv5 = v2;\nresult = (_BYTE *)sub_429859(a1, 1LL);\n*result = (v5 << 7) | v6;\n}\nwhile ( v5 );\nreturn result;\n} -__int64 __fastcall sub_40B542(__int64 a1, __int64 a2, __int64 *a3)\n{\nreturn sub_40B48B(a1, a2, a3, 0xA8u);\n} -__int64 __fastcall sub_40E99D(__int64 a1)\n{\n__int64 result; // rax\nunsigned int i; // [rsp+1Ch] [rbp-4h]\n\nfor ( i = 0; i <= 0x12B; ++i )\nresult = sub_40E5FC(a1, i);\nreturn result;\n} -unsigned __int64 __fastcall sub_429C64(__int64 a1, unsigned __int64 a2, __int64 a3, __int64 a4, __int64 a5)\n{\n__int64 v5; // rdx\n__int64 v6; // rdx\n__int64 v7; // rdx\n__int64 v8; // rdx\nunsigned __int64 v12; // [rsp+30h] [rbp-20h]\n__int64 v13; // [rsp+30h] [rbp-20h]\n__int64 v14; // [rsp+38h] [rbp-18h]\nunsigned __int64 v15; // [rsp+40h] [rbp-10h]\nunsigned __int64 v16; // [rsp+48h] [rbp-8h]\n\nv12 = 0x9E3779B185EBCA87LL * a2;\nv14 = 0LL;\nif ( a2 > 0x20 )\n{\nif ( a2 > 0x40 )\n{\nif ( a2 > 0x60 )\n{\nv12 = sub_429B82(v12, 0LL, a1 + 48, a2 - 64 + a1, a3 + 96, a5);\nv14 = v5;\n}\nv12 = sub_429B82(v12, v14, a1 + 32, a2 - 48 + a1, a3 + 64, a5);\nv14 = v6;\n}\nv12 = sub_429B82(v12, v14, a1 + 16, a2 - 32 + a1, a3 + 32, a5);\nv14 = v7;\n}\nv13 = sub_429B82(v12, v14, a1, a2 - 16 + a1, a3, a5);\nv16 = 0x85EBCA77C2B2AE63LL * v8 - 0x61C8864E7A143579LL * v13 - 0x3D4D51C2D82B14B1LL * (a2 - a5);\nv15 = sub_427858(v13 + v8);\nsub_427858(v16);\nreturn v15;\n} -__int64 __fastcall sub_427D88(__int64 a1, int a2, void *a3)\n{\n__int64 v3; // rax\nunsigned __int8 v6; // [rsp+23h] [rbp-Dh]\nunsigned __int8 *i; // [rsp+28h] [rbp-8h]\n\nfor ( i = (unsigned __int8 *)(a2 - 1LL + a1); (unsigned __int64)i >= a1 + 2; --i )\n{\nv6 = *i;\nv3 = sub_42642E(*i);\nLOBYTE(v3) = 0;\nif ( (_DWORD)v3 && v6 == 103 && *(i - 1) == 45 )\nreturn sub_426D94((__int64)(i + 1), a2 - ((int)i + 1 - (int)a1), a3, 3);\n}\nreturn 0xFFFFFFFFLL;\n} -void *__fastcall start_routine(void *a1)\n{\n__int64 v2; // rax\nvoid (__fastcall *v3)(__int64); // [rsp+10h] [rbp-20h]\n__int64 v4; // [rsp+18h] [rbp-18h]\n\nif ( !a1 )\nreturn 0LL;\nLABEL_3:\npthread_mutex_lock((pthread_mutex_t *)((char *)a1 + 96));\nwhile ( 1 )\n{\nif ( !*((_DWORD *)a1 + 22) && *((_QWORD *)a1 + 10) < *((_QWORD *)a1 + 5) )\n{\nv2 = *((_QWORD *)a1 + 6) + 16LL * *((_QWORD *)a1 + 7);\nv3 = *(void (__fastcall **)(__int64))v2;\nv4 = *(_QWORD *)(v2 + 8);\n*((_QWORD *)a1 + 7) = (unsigned __int64)(*((_QWORD *)a1 + 7) + 1LL) % *((_QWORD *)a1 + 9);\n++*((_QWORD *)a1 + 10);\n*((_DWORD *)a1 + 22) = *((_QWORD *)a1 + 7) == *((_QWORD *)a1 + 8);\npthread_cond_signal((pthread_cond_t *)((char *)a1 + 136));\npthread_mutex_unlock((pthread_mutex_t *)((char *)a1 + 96));\nv3(v4);\npthread_mutex_lock((pthread_mutex_t *)((char *)a1 + 96));\n--*((_QWORD *)a1 + 10);\nif ( *((_QWORD *)a1 + 9) == 1LL )\npthread_cond_signal((pthread_cond_t *)((char *)a1 + 136));\npthread_mutex_unlock((pthread_mutex_t *)((char *)a1 + 96));\ngoto LABEL_3;\n}\nif ( *((_DWORD *)a1 + 58) )\nbreak;\npthread_cond_wait((pthread_cond_t *)((char *)a1 + 184), (pthread_mutex_t *)((char *)a1 + 96));\n}\npthread_mutex_unlock((pthread_mutex_t *)((char *)a1 + 96));\nreturn a1;\n} -char **__fastcall sub_40E0A3(char **a1, const char *a2)\n{\nchar **result; // rax\n\n*a1 = getenv(a2);\nresult = (char **)*a1;\nif ( !*a1 )\n{\nresult = a1;\n*a1 = (char *)&unk_416F8C;\n}\nreturn result;\n} -_WORD *__fastcall sub_44238A(_WORD *a1, __int64 a2)\n{\n_WORD *result; // rax\n\nif ( !*(_BYTE *)(a2 + 6) )\n{\na1[24] = a1[22];\na1[25] = a1[38];\n}\nresult = a1;\na1[22] += *(_WORD *)(a2 + 4);\nreturn result;\n} -__int64 __fastcall sub_422476(__int64 a1, unsigned __int8 a2)\n{\n __int64 v2; // r15\n __int64 v3; // r14\n __int64 v4; // r13\n __int64 v5; // r12\n __int64 v6; // rbx\n void *v7; // rax\n unsigned int v9; // [rsp+0h] [rbp-60h]\n char v10[4]; // [rsp+10h] [rbp-50h] BYREF\n _BYTE v11[76]; // [rsp+14h] [rbp-4Ch] BYREF\n\n v9 = *(unsigned __int16 *)(a1 + 90);\n v2 = *(unsigned __int16 *)(a1 + 88);\n v3 = *(unsigned __int16 *)(a1 + 86);\n v4 = *(unsigned __int16 *)(a1 + 12);\n v5 = *(unsigned __int16 *)(a1 + 94);\n v6 = *(unsigned __int16 *)(a1 + 72);\n v7 = sub_40D318(a1 + 74);\n sub_419A1D(\n 1,\n \"%s.%u: L2CAP_EVENT_LE_CHANNEL_OPENED status 0x%x addr_type %u addr %s handle 0x%x psm 0x%x local_cid 0x%x remote_cid\"\n \" 0x%x local_mtu %u, remote_mtu %u\",\n (__int64)\"l2cap.c\",\n 3785LL,\n a2,\n *(unsigned int *)(a1 + 80),\n v7,\n v6,\n v5,\n v4,\n v3,\n v2,\n v9);\n v10[0] = 122;\n v10[1] = 21;\n v10[2] = a2;\n v10[3] = *(_DWORD *)(a1 + 80);\n sub_40CE2A(a1 + 74, (__int64)v11);\n sub_40C922((__int64)v10, 0xAu, *(_WORD *)(a1 + 72));\n v11[8] = (*(_DWORD *)(a1 + 68) & 0x8000) != 0;\n sub_40C922((__int64)v10, 0xDu, *(_WORD *)(a1 + 94));\n sub_40C922((__int64)v10, 0xFu, *(_WORD *)(a1 + 12));\n sub_40C922((__int64)v10, 0x11u, *(_WORD *)(a1 + 86));\n sub_40C922((__int64)v10, 0x13u, *(_WORD *)(a1 + 88));\n sub_40C922((__int64)v10, 0x15u, *(_WORD *)(a1 + 90));\n sub_4197B1(4u, 0, v10, 0x17u);\n return sub_41BB0F(a1, 4u, (__int64)v10, 0x17u);\n} -__int64 __fastcall sub_402E37(unsigned int *a1, unsigned __int64 a2)\n{\n__int64 v3[3]; // [rsp+10h] [rbp-60h] BYREF\nunsigned int v4; // [rsp+28h] [rbp-48h]\nint v5; // [rsp+30h] [rbp-40h]\nchar v6[4]; // [rsp+3Ch] [rbp-34h] BYREF\nint v7; // [rsp+40h] [rbp-30h]\nunsigned __int64 v8; // [rsp+48h] [rbp-28h]\n__int64 v9; // [rsp+50h] [rbp-20h]\nunsigned int *v10; // [rsp+58h] [rbp-18h]\nunsigned __int64 v11; // [rsp+60h] [rbp-10h]\nunsigned int *v12; // [rsp+68h] [rbp-8h]\n\nif ( (unsigned int)sub_4019FE(a1, a2) )\nreturn sub_401CFA(a1, a2);\nif ( a2 >= 8 && (sub_401864(a1) & 0xFFFFFFF0) == 407710288 )\nreturn (unsigned int)sub_401864(a1 + 1) + 8LL;\nv12 = a1;\nv10 = a1;\nv11 = a2;\nv9 = sub_402B3A(v3, a1, a2);\nif ( sub_401980(v9) )\nreturn v9;\nif ( v9 )\nreturn -72LL;\nv12 = (unsigned int *)((char *)v12 + v4);\nv11 -= v4;\ndo\n{\nv8 = sub_406681(v12, v11, v6);\nif ( sub_401980(v8) )\nreturn v8;\nif ( v11 < v8 + 3 )\nreturn -72LL;\nv12 = (unsigned int *)((char *)v12 + v8 + 3);\nv11 -= v8 + 3;\n}\nwhile ( !v7 );\nif ( v5 )\n{\nif ( v11 <= 3 )\nreturn -72LL;\n++v12;\n}\nreturn (char *)v12 - (char *)v10;\n} -__int64 __fastcall sub_405884(__int64 a1)\n{\n __int64 result; // rax\n __int64 i; // [rsp+10h] [rbp-8h]\n\n *(_QWORD *)(a1 + 40) = 0LL;\n if ( qword_44C118 )\n {\n for ( i = qword_44C118; *(_QWORD *)(i + 40); i = *(_QWORD *)(i + 40) )\n ;\n result = i;\n *(_QWORD *)(i + 40) = a1;\n }\n else\n {\n result = a1;\n qword_44C118 = a1;\n }\n return result;\n} -__int64 __fastcall sub_409E81(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, double a7)\n{\n __int64 result; // rax\n int v8; // eax\n int v9; // ecx\n int v10; // er8\n int v11; // er9\n double v12; // rdx\n int v13; // ecx\n int v14; // er8\n int v15; // er9\n int v16; // eax\n int v17; // ecx\n int v18; // er8\n int v19; // er9\n int v20; // edx\n int v21; // ecx\n int v22; // er8\n int v23; // er9\n const char *v24; // rsi\n __int64 v25; // rdx\n __int64 v26; // rcx\n __int64 v27; // r8\n __int64 v28; // r9\n __int64 v29; // rdx\n __int64 v30; // rcx\n __int64 v31; // r8\n __int64 v32; // r9\n char v33; // [rsp+0h] [rbp-20h]\n unsigned int *v34; // [rsp+0h] [rbp-20h]\n unsigned int *v35; // [rsp+18h] [rbp-8h]\n\n v33 = a2;\n if ( !a2 )\n return sub_40B7BB(a1, (unsigned int)\"[null]\", a3, a4, a5, a6, 0);\n switch ( *(_DWORD *)a2 )\n {\n case 1:\n v8 = sub_409927(a2, a2, a3, a4, a5, a6);\n result = sub_40B7BB(a1, (unsigned int)\"%d\", v8, v9, v10, v11, a2);\n break;\n case 3:\n v12 = sub_4099E8(a2, a7, a2, a3, a4, a5, a6);\n result = sub_40B7BB(a1, (unsigned int)\"%f\", LODWORD(v12), v13, v14, v15, a2);\n break;\n case 5:\n v16 = sub_409AB6(a2, a2, a3, a4, a5, a6);\n result = sub_40B7BB(a1, (unsigned int)\"%s\", v16, v17, v18, v19, a2);\n break;\n default:\n if ( sub_409D3D((_DWORD *)a2) )\n {\n v24 = \"(\";\n sub_40B7BB(a1, (unsigned int)\"(\", v20, v21, v22, v23, v33);\n v35 = v34;\n while ( v35 )\n {\n v24 = (const char *)sub_409B2F(v35, (__int64)v24, v25, v26, v27, v28);\n sub_409E81(a1, v24);\n v35 = (unsigned int *)sub_409BAC((__int64)v35, (__int64)v24, v29, v30, v31, v32);\n if ( v35 )\n {\n v24 = \" \";\n sub_40B7BB(a1, (unsigned int)\" \", v25, v26, v27, v28, (char)v34);\n }\n if ( v35 && !sub_409D3D(v35) )\n {\n sub_40B7BB(a1, (unsigned int)\". \", v25, v26, v27, v28, (char)v34);\n sub_409E81(a1, v35);\n break;\n }\n }\n result = sub_40B7BB(a1, (unsigned int)\")\", v25, v26, v27, v28, (char)v34);\n }\n else\n {\n result = sub_40B7BB(\n a1,\n (unsigned int)\"[Val %s 0x%p]\",\n *((_QWORD *)&unk_786020 + 2 * (*(_DWORD *)a2 / 2)),\n *(_QWORD *)(a2 + 8),\n v22,\n v23,\n a2);\n }\n break;\n }\n return result;\n} -void *__fastcall sub_42BE32(int a1, char *a2, int a3, char *a4)\n{\n void *result; // rax\n\n if ( a3 >= a1 )\n result = memmove(a2, &a4[(a3 - a1) / 2], a1);\n else\n result = memmove(&a2[(a1 - a3) / 2], a4, a3);\n return result;\n} -__int64 __fastcall sub_42ADC4(pthread_mutex_t *a1, __int64 a2)\n{\n unsigned __int8 v3; // [rsp+1Fh] [rbp-1h]\n\n pthread_mutex_lock(a1);\n v3 = sub_450644(&a1[1], a2);\n pthread_mutex_unlock(a1);\n return v3;\n} -__int64 __fastcall sub_47D4A8(const char *a1)\n{\n int i; // eax\n int *v2; // rax\n char *v3; // rax\n int *v5; // rax\n char *v6; // rax\n int *v7; // rax\n char *v8; // rax\n char v9; // [rsp+1Fh] [rbp-1h]\n\n v9 = 0;\n for ( i = mount(&byte_4A38EF, a1, \"none\", 0x44000uLL, 0LL); i; i = mount(&byte_4A38EF, a1, \"none\", 0x44000uLL, 0LL) )\n {\n if ( *__errno_location() != 22 || v9 )\n {\n v2 = __errno_location();\n v3 = strerror(*v2);\n fprintf(stderr, \"mount --make-private %s failed: %s\\n\", a1, v3);\n return 0xFFFFFFFFLL;\n }\n if ( mount(a1, a1, \"none\", 0x1000uLL, 0LL) )\n {\n v5 = __errno_location();\n v6 = strerror(*v5);\n fprintf(stderr, \"mount --bind %s %s failed: %s\\n\", a1, a1, v6);\n return 0xFFFFFFFFLL;\n }\n v9 = 1;\n }\n if ( !mount(\"bpf\", a1, \"bpf\", 0LL, \"mode=0700\") )\n return 0LL;\n v7 = __errno_location();\n v8 = strerror(*v7);\n fprintf(stderr, \"mount -t bpf bpf %s failed: %s\\n\", a1, v8);\n return 0xFFFFFFFFLL;\n} -__int64 __fastcall sub_402EC7(__int64 a1, _DWORD *a2)\n{\nint v3; // [rsp+1Ch] [rbp-4h] BYREF\n\nv3 = 0;\nmemset(a2, 0, 0x18uLL);\n*a2 = sub_40541A(a1, &v3, 16LL);\nmemcpy(a2 + 1, (const void *)(v3 / 8 + a1), 5uLL);\nv3 += 40;\nmemcpy((char *)a2 + 9, (const void *)(v3 / 8 + a1), 3uLL);\nv3 += 24;\na2[3] = sub_40541A(a1, &v3, 3LL);\na2[4] = sub_40541A(a1, &v3, 1LL);\na2[5] = sub_40541A(a1, &v3, 12LL);\nreturn 12LL;\n} -__int64 __fastcall sub_41BB53(__int64 a1)\n{\n unsigned __int8 v1; // bl\n int v2; // edx\n __int64 result; // rax\n\n if ( (unsigned __int8)sub_41BB44(a1) )\n {\n v1 = sub_41755B((__int64)off_44B2A0 + 78);\n if ( (v1 & (unsigned __int8)sub_41755B((__int64)off_44B2A0 + 85) & 0x20) != 0 )\n v2 = 78;\n else\n v2 = 77;\n result = a1;\n *(_DWORD *)(a1 + 12) = v2;\n }\n else\n {\n *(_DWORD *)(a1 + 12) = 26;\n sub_417D1A(a1, 0, 0);\n result = sub_418A73(*(_WORD *)a1);\n }\n return result;\n} -int __fastcall sub_4015A2(const void *a1, unsigned int a2)\n{\nint result; // eax\nint v3; // [rsp+1Ch] [rbp-Ch]\n\nv3 = sub_401418((__int64)a1, a2);\nresult = sub_401467(a1, a2, v3);\nif ( !result )\n{\nsub_4014F5(a1, a2, v3);\nresult = sub_4012F6((__int64)a1, a2);\n}\nreturn result;\n} -void *__fastcall start_routine(void *a1)\n{\nint v1; // eax\n__int64 v3; // [rsp+10h] [rbp-30h] BYREF\n__int64 v4; // [rsp+18h] [rbp-28h]\n__int64 v5; // [rsp+20h] [rbp-20h]\n__int64 v6; // [rsp+28h] [rbp-18h]\n__int64 v7; // [rsp+30h] [rbp-10h]\n__int64 v8; // [rsp+38h] [rbp-8h]\n\nv8 = 0LL;\nv4 = (int)sub_405220(a1);\nwhile ( *(_DWORD *)(qword_40A268 + 4) )\n{\nv3 = 0LL;\nv1 = sub_40245E((__int64)a1);\nv4 += v1;\nif ( dword_4091F4 )\n{\nv7 = sub_403D1D();\nif ( v7 - v8 > 75000000 )\n{\npoll(0LL, 0LL, 10);\nv8 = v7;\n}\n}\nsub_4039F8(qword_40A268, 0LL);\nv5 = sub_403D1D();\nsub_4024F3((__int64)a1, &v3);\nv6 = sub_403D1D();\nif ( v6 > *(_QWORD *)(qword_40A268 + 8) && (!dword_409188 || *(_DWORD *)(qword_40A268 + 52) > dword_409188) )\n*(_DWORD *)(qword_40A268 + 4) = 0;\nsub_4039F8(qword_40A268, &v3);\nsub_40259B((__int64)a1);\nv4 = 0LL;\n}\nsub_40522F(a1);\nreturn 0LL;\n} -__int64 __fastcall sub_46825C(__int64 a1, char *a2, signed __int64 a3, __int64 a4, __int64 a5, __int64 a6)\n{\n__int64 v6; // r8\n__int64 v7; // r9\nint v10; // [rsp+2Ch] [rbp-14h]\n\nv10 = sub_468135(a2, a3, *(_QWORD *)(a1 + 72), *(_DWORD *)(a1 + 68), a5, a6);\nreturn v10 + (unsigned int)sub_467CB7(a1, (__int64)&a2[v10], a3 - v10, (__int64)&a2[v10], v6, v7);\n} -__int64 __fastcall sub_42599F(__int64 a1, __int64 a2)\n{\n__int64 result; // rax\nchar v3[32]; // [rsp+10h] [rbp-50h] BYREF\nchar v4[48]; // [rsp+30h] [rbp-30h] BYREF\n\nsub_4312F7(v4, a1, a2);\ndo\nresult = sub_4314C2(v4, v3);\nwhile ( (_DWORD)result );\nreturn result;\n} -__int64 __fastcall sub_476335(_DWORD *a1, __int64 a2, int a3)\n{\n__int64 result; // rax\nsigned int i; // [rsp+20h] [rbp-4h]\n\nfor ( i = 0; i < a3; ++i )\n{\nif ( a1[2] + *(_DWORD *)(24LL * i + a2 + 12) > *a1 )\n{\na1[2] = 0;\na1[3] = a1[4];\n}\nif ( a1[3] + *(_DWORD *)(24LL * i + a2 + 16) > a1[1] )\nbreak;\n*(_DWORD *)(a2 + 24LL * i) = a1[2];\n*(_DWORD *)(a2 + 24LL * i + 4) = a1[3];\n*(_DWORD *)(24LL * i + a2 + 20) = 1;\na1[2] += *(_DWORD *)(24LL * i + a2 + 12);\nif ( a1[3] + *(_DWORD *)(24LL * i + a2 + 16) > a1[4] )\na1[4] = a1[3] + *(_DWORD *)(24LL * i + a2 + 16);\n}\nwhile ( 1 )\n{\nresult = (unsigned int)i;\nif ( i >= a3 )\nbreak;\n*(_DWORD *)(24LL * i++ + a2 + 20) = 0;\n}\nreturn result;\n} -char *__fastcall sub_4A670D(char *a1, char *a2, __int64 a3)\n{\nunsigned __int64 v4; // rax\nchar *v6; // [rsp+20h] [rbp-10h]\nchar *v7; // [rsp+28h] [rbp-8h]\n\nv7 = sub_4A6614(a1);\nif ( *v7 != 37 )\nreturn a1;\nv6 = sub_4A665F(v7);\nif ( !*v6 )\nreturn v7;\nv4 = sub_4BE543(v6 - v7 + 1, a3);\nsub_406376(a2, v7, v4);\nreturn a2;\n} -__int64 __fastcall sub_401199(__int64 a1, __int64 a2)\n{\n__int64 result; // rax\n\n*(_QWORD *)(a2 + 8) = *(_QWORD *)(a1 + 264);\nresult = a1;\n*(_QWORD *)(a1 + 264) = a2;\nreturn result;\n} -__int64 __fastcall sub_47F388(_QWORD *a1, const void *a2, unsigned __int64 a3)\n{\nint v5; // [rsp+2Ch] [rbp-14h]\n__int64 v6; // [rsp+30h] [rbp-10h]\n__int64 *i; // [rsp+38h] [rbp-8h]\n\nv6 = a1[3];\nv5 = sub_47EFD2((__int64)a2, a3, *(_DWORD *)(v6 + 80));\nfor ( i = *(__int64 **)(*(_QWORD *)(v6 + 48) + 8LL * (v5 & (*(_DWORD *)(v6 + 60) - 1))); ; i = (__int64 *)*i )\n{\nif ( !i )\nreturn sub_47F2C7(a1, a2, a3, v5);\nif ( v5 == *((_DWORD *)i + 3) && a3 == i[2] && !memcmp(a2, i + 3, a3) )\nbreak;\n}\nif ( ((*((_BYTE *)i + 9) ^ 3) & (*(_BYTE *)(a1[3] + 84LL) ^ 3)) == 0 )\n*((_BYTE *)i + 9) ^= 3u;\nreturn (__int64)i;\n} -__int64 __fastcall sub_401638(int a1)\n{\n__int64 result; // rax\n\nif ( a1 )\nresult = (unsigned int)(a1 / 2);\nelse\nresult = 0xFFFFFFFFLL;\nreturn result;\n} -__int64 __fastcall sub_41ECBA(void **a1, char *a2, __int64 a3, unsigned int a4, char a5)\n{\n _BYTE *v5; // rax\n unsigned __int8 v6; // al\n char v11[16]; // [rsp+20h] [rbp-A0h] BYREF\n char v12[4]; // [rsp+30h] [rbp-90h] BYREF\n int v13; // [rsp+34h] [rbp-8Ch]\n void *v14; // [rsp+38h] [rbp-88h]\n __int64 v15; // [rsp+48h] [rbp-78h] BYREF\n unsigned __int64 v16; // [rsp+50h] [rbp-70h] BYREF\n void *v17; // [rsp+58h] [rbp-68h]\n double v18; // [rsp+60h] [rbp-60h]\n void *v19; // [rsp+68h] [rbp-58h]\n bool v20; // [rsp+73h] [rbp-4Dh]\n unsigned int v21; // [rsp+74h] [rbp-4Ch]\n void *v22; // [rsp+78h] [rbp-48h]\n void *v23; // [rsp+80h] [rbp-40h]\n size_t v24; // [rsp+88h] [rbp-38h]\n unsigned __int16 v25; // [rsp+96h] [rbp-2Ah]\n void *v26; // [rsp+98h] [rbp-28h]\n size_t n; // [rsp+A0h] [rbp-20h]\n int v28; // [rsp+A8h] [rbp-18h]\n unsigned int v29; // [rsp+ACh] [rbp-14h]\n void *dest; // [rsp+B0h] [rbp-10h]\n void *src; // [rsp+B8h] [rbp-8h]\n\n src = *a1;\n dest = *(void **)(a3 + 200);\n *(_WORD *)(a3 + 210) = 0;\n v29 = 0;\n while ( v29 < a4 )\n {\n v28 = sub_41B64B(*(_DWORD *)src);\n src = (char *)src + 5;\n HIBYTE(n) = *(_BYTE *)src;\n src = (char *)src + 2;\n v5 = src;\n src = (char *)src + 1;\n BYTE6(n) = *v5;\n v6 = BYTE6(n);\n if ( BYTE6(n) > 0xFu )\n v6 = 15;\n BYTE5(n) = v6;\n memcpy(dest, src, v6);\n *((_BYTE *)dest + BYTE5(n)) = 0;\n src = (char *)src + BYTE6(n);\n LODWORD(n) = v28 - BYTE6(n) - 4;\n switch ( HIBYTE(n) )\n {\n case 0:\n *((_QWORD *)dest + 6) = &unk_4A1188;\n goto LABEL_25;\n case 1:\n if ( !(unsigned int)sub_41DF13((unsigned __int64 *)src, n, &v16) )\n {\n sub_4480B4((char *)dest + 16, v16);\n *((_QWORD *)dest + 6) = (char *)dest + 16;\n }\n goto LABEL_25;\n case 2:\n v18 = sub_41B6E4(*(double *)src);\n sub_447AD1((char *)dest + 16, v18);\n *((_QWORD *)dest + 6) = (char *)dest + 16;\n goto LABEL_25;\n case 3:\n v19 = (void *)sub_457659((unsigned int)(n + 1));\n if ( !v19 )\n return sub_41EC68(a2, a3, (unsigned int)(n + 1));\n memcpy(v19, src, (unsigned int)n);\n *((_BYTE *)v19 + (unsigned int)n) = 0;\n sub_450D82((char *)dest + 16, v19, (unsigned int)n, 1LL);\n *((_QWORD *)dest + 6) = (char *)dest + 16;\n goto LABEL_25;\n case 0x11:\n v20 = *(_BYTE *)src != 0;\n sub_446E20((char *)dest + 16, v20);\n *((_QWORD *)dest + 6) = (char *)dest + 16;\n goto LABEL_25;\n case 0x13:\n case 0x14:\n if ( a5 )\n {\n v15 = 0LL;\n v14 = src;\n v13 = n;\n sub_44E66B(v11);\n v21 = sub_41BF89((__int64)v11, (__int64)v12, (__int64)&v15);\n sub_450C40(v11);\n if ( v21 )\n return sub_41B396(\n a2,\n -1,\n (__int64)\"as_command_parse_bins\",\n (__int64)\"src/main/aerospike/as_command.c\",\n 0x584u,\n \"deserialize error: %d\",\n v21);\n *((_QWORD *)dest + 6) = v15;\n }\n else\n {\n v22 = (void *)sub_457659((unsigned int)n);\n if ( !v22 )\n return sub_41EC68(a2, a3, (unsigned int)n);\n memcpy(v22, src, (unsigned int)n);\n sub_447143((char *)dest + 16, v22, (unsigned int)n, 1LL);\n *((_DWORD *)dest + 11) = HIBYTE(n);\n *((_QWORD *)dest + 6) = (char *)dest + 16;\n }\nLABEL_25:\n ++*(_WORD *)(a3 + 210);\n src = (char *)src + (unsigned int)n;\n ++v29;\n dest = (char *)dest + 56;\n break;\n case 0x17:\n v26 = (char *)src + 1;\n v25 = sub_41B619(*(_WORD *)((char *)src + 1));\n v26 = (char *)v26 + 2;\n v26 = (char *)v26 + 8 * v25;\n v24 = (unsigned int)(n - 3) - 8LL * v25;\n v23 = (void *)sub_457659(v24 + 1);\n if ( !v23 )\n return sub_41EC68(a2, a3, v24 + 1);\n memcpy(v23, v26, v24);\n *((_BYTE *)v23 + v24) = 0;\n sub_447D1E((char *)dest + 16, v23, v24, 1LL);\n *((_QWORD *)dest + 6) = (char *)dest + 16;\n goto LABEL_25;\n default:\n v17 = (void *)sub_457659((unsigned int)n);\n if ( !v17 )\n return sub_41EC68(a2, a3, (unsigned int)n);\n memcpy(v17, src, (unsigned int)n);\n sub_447143((char *)dest + 16, v17, (unsigned int)n, 1LL);\n *((_DWORD *)dest + 11) = HIBYTE(n);\n *((_QWORD *)dest + 6) = (char *)dest + 16;\n goto LABEL_25;\n }\n }\n *a1 = src;\n return 0LL;\n} -__int64 __fastcall sub_4022CD(_QWORD *a1, __int64 a2)\n{\n__int64 result; // rax\n\nif ( a2 < 0 )\nreturn sub_401AC6(a1, 4, -(int)a2);\nif ( a2 > 0 )\nresult = sub_401A3D(a1, 4, a2);\nreturn result;\n} -__int64 __fastcall sub_4552DC(_BYTE *a1, __int64 a2)\n{\n_BYTE *v2; // rax\n__int64 result; // rax\n\nwhile ( 1 )\n{\nresult = a2--;\nif ( !result )\nbreak;\nv2 = a1++;\n*v2 = 0;\n}\nreturn result;\n} -char *__fastcall sub_45FF6F(__int64 a1, __int64 a2, __int64 a3)\n{\nint v5; // [rsp+2Ch] [rbp-34h] BYREF\n__int64 v6[2]; // [rsp+30h] [rbp-30h] BYREF\nint v7; // [rsp+40h] [rbp-20h]\n__int64 v8; // [rsp+48h] [rbp-18h]\n__int64 v9; // [rsp+50h] [rbp-10h]\nchar v10; // [rsp+58h] [rbp-8h]\nchar v11; // [rsp+59h] [rbp-7h]\n\nv6[0] = ++*(_QWORD *)(a1 + 72);\nv6[1] = (__int64)sub_426FEA(*(_DWORD *)(a1 + 36) + 1);\nv7 = 0;\nv8 = a2;\nv9 = a3;\nv10 = 1;\nv11 = 0;\nsub_4076A8(*(_QWORD *)(a1 + 96), (char *)v6, 8, v6, 48);\nreturn sub_40853F(*(_QWORD *)(a1 + 96), (char *)v6, 8, &v5);\n} -_QWORD *__fastcall sub_469D2C(_QWORD *a1, _QWORD *a2, __int64 a3)\n{\n_QWORD *result; // rax\nunsigned __int64 v4; // [rsp+20h] [rbp-18h]\n_QWORD *v5; // [rsp+28h] [rbp-10h]\n\nv5 = a1;\nv4 = (unsigned __int64)a1 + a3;\nwhile ( 1 )\n{\nresult = v5;\nif ( (unsigned __int64)v5 >= v4 )\nbreak;\nsub_469D0F(v5++, a2++);\n}\nreturn result;\n} -__int64 __fastcall sub_429897(__int64 a1, _QWORD *a2)\n{\n__int64 v3; // [rsp+10h] [rbp-20h]\n__int64 v4; // [rsp+28h] [rbp-8h]\n\nv4 = a2[54];\nif ( a2[36] )\n{\nsub_429897(a1, a2[36]);\na2[36] = 0LL;\n}\na2[56] = 0LL;\na2[57] = 0LL;\nwhile ( v4 )\n{\nv3 = *(_QWORD *)(v4 + 480);\nsub_426DEF((__int64)a2, v4);\nsub_426CE7(a1, v4);\nif ( v4 == a2[54] )\na2[54] = v3;\nv4 = v3;\n}\nreturn sub_426C0A(a1, (__int64)a2);\n} -__int64 __fastcall sub_4048D1(__int64 a1, __int64 a2, unsigned __int16 a3)\n{\n__int64 result; // rax\nchar v4[208]; // [rsp+20h] [rbp-438h] BYREF\nchar v5[848]; // [rsp+F0h] [rbp-368h] BYREF\nunsigned int v6; // [rsp+440h] [rbp-18h]\nunsigned int v7; // [rsp+444h] [rbp-14h]\nunsigned int i; // [rsp+448h] [rbp-10h]\nunsigned int j; // [rsp+44Ch] [rbp-Ch]\n\nv7 = 840;\nsub_408984(v4, a2, a3);\nsub_40850E(v5, 5LL, v4);\nresult = sub_4047F2(a1, 0x100u, (__int64)v5, v7);\nfor ( i = result; i <= 0xFF; i += result )\n{\nv6 = v7 % 3;\nfor ( j = 0; j < v6; ++j )\nv5[j] = v5[v7 - v6 + j];\nsub_40850E(&v5[v6], 1LL, v4);\nv7 = v6 + 168;\nresult = sub_4047F2(a1 + 4LL * i, 256 - i, (__int64)v5, v6 + 168);\n}\nreturn result;\n} -__int64 __fastcall sub_412F3D(__int64 a1, unsigned int a2, unsigned int a3, unsigned int a4, int a5)\n{\nunsigned int v5; // eax\nchar v10[28]; // [rsp+20h] [rbp-30h] BYREF\nunsigned int v11; // [rsp+3Ch] [rbp-14h]\n__int64 v12; // [rsp+40h] [rbp-10h]\nunsigned int v13; // [rsp+4Ch] [rbp-4h]\n\nv12 = *(_QWORD *)(a1 + 48);\nsub_410246(a1, 3);\nsub_40FDE7(a1, 0x103u);\nif ( a5 )\nv5 = sub_4206E9(v12, 40LL, a2, 131070LL);\nelse\nv5 = sub_420191(v12);\nv11 = v5;\nsub_410DC6(v12, (__int64)v10, 0);\nsub_410246(a1, a4);\nsub_420814(v12, a4);\nsub_412733(a1);\nsub_410F54(v12);\nsub_420482(v12, v11);\nif ( a5 )\n{\nv13 = sub_4206E9(v12, 39LL, a2, 131070LL);\n}\nelse\n{\nsub_4206A5(v12, 41LL, a2, 0LL, a4);\nsub_42247E(v12, a3);\nv13 = sub_4206E9(v12, 42LL, a2 + 2, 131070LL);\n}\nsub_4204BA(v12, v13, v11 + 1);\nreturn sub_42247E(v12, a3);\n} -__int64 __fastcall sub_419B8D(__int64 a1)\n{\n__int64 result; // rax\n__int64 v2; // [rsp+18h] [rbp-8h]\n\nif ( !a1 )\nreturn 0LL;\nif ( *(_WORD *)a1 == 58 )\n{\nv2 = sub_419B8D(*(_QWORD *)(a1 + 56));\nsub_419C7A(*(_QWORD *)(a1 + 32), v2);\nresult = v2;\n}\nelse\n{\nqword_50AF18 = a1;\nresult = sub_419194((_WORD *)a1);\n}\nreturn result;\n} -void __fastcall sub_403A92(void *a1, void *a2)\n{\nif ( a2 )\nfree(a2);\nif ( a1 )\nfree(a1);\n} -char __fastcall sub_4189A7(__int16 a1, unsigned int a2)\n{\n unsigned int v2; // eax\n __int16 v3; // ax\n unsigned int v5; // [rsp+14h] [rbp-Ch]\n __int64 v6; // [rsp+18h] [rbp-8h]\n\n v6 = sub_40E26D(a1);\n if ( v6 )\n {\n if ( sub_40E839(v6) )\n __assert_fail(\"hci_is_le_connection(connection) == 0\", \"../../src/hci.c\", 0x151Bu, \"gap_request_security_level\");\n v5 = sub_41896E(a1);\n sub_41ADD2(\n 1,\n (unsigned int)\"%s.%u: gap_request_security_level requested level %u, planned level %u, current level %u\",\n (unsigned int)\"hci.c\",\n 5406,\n a2,\n *(_DWORD *)(v6 + 32));\n if ( *(_DWORD *)(v6 + 32) )\n {\n v2 = *(_DWORD *)(v6 + 32);\n if ( a2 > v2 )\n {\n LOBYTE(v2) = v6;\n *(_DWORD *)(v6 + 32) = a2;\n }\n }\n else if ( a2 > v5 )\n {\n *(_DWORD *)(v6 + 32) = a2;\n v3 = *(_WORD *)(v6 + 28);\n HIBYTE(v3) |= 4u;\n *(_WORD *)(v6 + 28) = v3;\n LOBYTE(v2) = sub_417156(\n 1LL,\n \"%s.%u: gap_request_security_level requested level %u, planned level %u, current level %u\");\n }\n else\n {\n LOBYTE(v2) = sub_41860A(a1, v5);\n }\n }\n else\n {\n LOBYTE(v2) = sub_41860A(a1, 0);\n }\n return v2;\n} -__int64 __fastcall sub_434746(__int64 a1, __int64 a2, __int64 a3, __int64 a4, int a5, int a6)\n{\n _BYTE *v7; // [rsp+18h] [rbp-8h]\n\n if ( *(_DWORD *)(a1 + 8) == 1 )\n return 0xFFFFFFFFLL;\n sub_41738C(a1, a2, a3, a4, a5, a6);\n v7 = (_BYTE *)sub_41737D();\n *v7 = 1;\n v7[1] = 0;\n v7[2] = a2;\n return (unsigned int)sub_4180C7(*(_WORD *)(a1 + 44), 3LL);\n} -_BOOL8 __fastcall sub_405746(__int64 a1, __int64 a2, unsigned int a3)\n{\nsub_427055(a1, a3, 0LL);\n*(_QWORD *)(a1 + 8) = 0x200u / *(_DWORD *)(a2 + 2316);\nreturn *(_DWORD *)(a2 + 2312)\n&& !(unsigned int)sub_45A02E(a1 + 16, a2 + 4, 0x200u / *(_DWORD *)(a2 + 2316))\n&& !(unsigned int)sub_45A02E(a1 + 40, a2 + 516, 3LL)\n&& !(unsigned int)sub_42750A(a1)\n&& (*(_DWORD *)(a2 + 2312) != 1\n|| !(unsigned int)sub_45A02E(a1 + 64, a2 + 519, 0x200u / *(_DWORD *)(a2 + 2316))\n&& !(unsigned int)sub_45A02E(a1 + 88, a2 + 1031, 0x100u / *(_DWORD *)(a2 + 2316))\n&& !(unsigned int)sub_45A02E(a1 + 112, a2 + 1287, 0x100u / *(_DWORD *)(a2 + 2316))\n&& !(unsigned int)sub_45A02E(a1 + 136, a2 + 1543, 0x100u / *(_DWORD *)(a2 + 2316))\n&& !(unsigned int)sub_45A02E(a1 + 160, a2 + 1799, 0x100u / *(_DWORD *)(a2 + 2316))\n&& !(unsigned int)sub_45A02E(a1 + 184, a2 + 2055, 0x100u / *(_DWORD *)(a2 + 2316))\n&& !(unsigned int)sub_4275DF(a1));\n} -__int64 sub_40DED5()\n{\n float v1[3]; // [rsp+4h] [rbp-D4h] BYREF\n int v2[4]; // [rsp+10h] [rbp-C8h] BYREF\n float v3; // [rsp+20h] [rbp-B8h]\n int v4; // [rsp+24h] [rbp-B4h]\n int v5; // [rsp+28h] [rbp-B0h]\n int v6; // [rsp+2Ch] [rbp-ACh]\n int v7; // [rsp+30h] [rbp-A8h]\n int v8; // [rsp+34h] [rbp-A4h]\n float v9; // [rsp+38h] [rbp-A0h]\n int v10; // [rsp+40h] [rbp-98h]\n int v11[3]; // [rsp+48h] [rbp-90h] BYREF\n int v12; // [rsp+54h] [rbp-84h]\n int v13; // [rsp+58h] [rbp-80h]\n int v14; // [rsp+5Ch] [rbp-7Ch]\n float v15; // [rsp+60h] [rbp-78h] BYREF\n float v16; // [rsp+64h] [rbp-74h]\n float v17; // [rsp+68h] [rbp-70h]\n float v18; // [rsp+6Ch] [rbp-6Ch]\n float v19; // [rsp+70h] [rbp-68h]\n float v20; // [rsp+74h] [rbp-64h]\n float v21; // [rsp+A4h] [rbp-34h]\n float v22; // [rsp+A8h] [rbp-30h]\n float v23; // [rsp+ACh] [rbp-2Ch]\n float v24; // [rsp+B0h] [rbp-28h]\n int v25; // [rsp+B4h] [rbp-24h]\n unsigned int v26; // [rsp+B8h] [rbp-20h]\n float v27; // [rsp+BCh] [rbp-1Ch]\n int k; // [rsp+C0h] [rbp-18h]\n int j; // [rsp+C4h] [rbp-14h]\n int v30; // [rsp+C8h] [rbp-10h]\n int i; // [rsp+CCh] [rbp-Ch]\n\n v25 = 4;\n v26 = 0;\n v11[0] = dword_47169C;\n v11[1] = dword_4716A0;\n v11[2] = dword_4716A4;\n v12 = dword_47169C;\n v13 = dword_4716A0;\n v14 = dword_4716A4;\n v30 = 0;\n v27 = *(float *)&dword_4727FC;\n for ( i = 0; i < v25; ++i )\n {\n for ( j = 0; j <= 2; ++j )\n v1[j] = (float)(*(float *)&dword_47168C[j + 4] * v27) + *(float *)&dword_471684[j];\n sub_41150E(v2, dword_471684, v1);\n if ( v2[1] || v2[0] )\n {\n dword_47169C = 0;\n dword_4716A0 = 0;\n dword_4716A4 = 0;\n return 3LL;\n }\n if ( v3 > 0.0 )\n {\n dword_471684[0] = v4;\n dword_471688 = v5;\n dword_47168C[0] = v6;\n v30 = 0;\n }\n if ( v3 == 1.0 )\n break;\n dword_471680[dword_4726EC++ + 1052] = v10;\n if ( v9 > 0.7 )\n v26 |= 1u;\n if ( v9 == 0.0 )\n v26 |= 2u;\n v27 = (float)(1.0 - v3) * v27;\n if ( v30 > 4 )\n {\n dword_47169C = 0;\n dword_4716A0 = 0;\n dword_4716A4 = 0;\n break;\n }\n *((_DWORD *)&v15 + 3 * v30) = v7;\n *((_DWORD *)&v16 + 3 * v30) = v8;\n *(&v17 + 3 * v30++) = v9;\n for ( j = 0; j < v30; ++j )\n {\n sub_40DD1C((float *)v11, &v15 + 3 * j, (__int64)&dword_47169C, 1.0);\n for ( k = 0;\n k < v30\n && (k == j\n || (float)((float)((float)(*(float *)&dword_47169C * *(&v15 + 3 * k))\n + (float)(*(&v16 + 3 * k) * *(float *)&dword_4716A0))\n + (float)(*(&v17 + 3 * k) * *(float *)&dword_4716A4)) >= 0.0);\n ++k )\n {\n ;\n }\n if ( k == v30 )\n break;\n }\n if ( j == v30 )\n {\n if ( v30 != 2 )\n {\n dword_47169C = 0;\n dword_4716A0 = 0;\n dword_4716A4 = 0;\n break;\n }\n v21 = (float)(v20 * v16) - (float)(v19 * v17);\n v22 = (float)(v18 * v17) - (float)(v20 * v15);\n v23 = (float)(v19 * v15) - (float)(v18 * v16);\n v24 = (float)(*(float *)&dword_4716A4 * v23)\n + (float)((float)(v21 * *(float *)&dword_47169C) + (float)(*(float *)&dword_4716A0 * v22));\n *(float *)&dword_47169C = v21 * v24;\n *(float *)&dword_4716A0 = v22 * v24;\n *(float *)&dword_4716A4 = v23 * v24;\n }\n if ( (float)((float)((float)(*(float *)&dword_47169C * *(float *)&v12)\n + (float)(*(float *)&v13 * *(float *)&dword_4716A0))\n + (float)(*(float *)&v14 * *(float *)&dword_4716A4)) <= 0.0 )\n {\n dword_47169C = 0;\n dword_4716A0 = 0;\n dword_4716A4 = 0;\n break;\n }\n }\n if ( *(float *)&dword_4716AC != 0.0 )\n {\n dword_47169C = v12;\n dword_4716A0 = v13;\n dword_4716A4 = v14;\n }\n return v26;\n} -__int64 __fastcall sub_4177BB(__int64 a1, unsigned __int64 a2)\n{\n __int64 v3; // [rsp+10h] [rbp-30h]\n char v4; // [rsp+18h] [rbp-28h]\n unsigned __int64 v5; // [rsp+20h] [rbp-20h]\n __int64 v6; // [rsp+28h] [rbp-18h]\n unsigned __int64 v7; // [rsp+30h] [rbp-10h]\n unsigned __int64 i; // [rsp+30h] [rbp-10h]\n unsigned __int64 j; // [rsp+30h] [rbp-10h]\n unsigned int v10; // [rsp+3Ch] [rbp-4h]\n\n v6 = 0LL;\n v5 = a2 >> 6;\n v4 = a2 & 0x3F;\n v7 = a2 + sub_41680E(a1);\n if ( v7 <= *(_QWORD *)(a1 + 8) << 6 || (v10 = sub_415E93(a1, ((v7 & 0x3F) != 0) + (v7 >> 6))) == 0 )\n {\n v10 = 0;\n if ( v5 )\n {\n for ( i = *(_QWORD *)(a1 + 8); i > v5; --i )\n *(_QWORD *)(8 * i - 8 + *(_QWORD *)(a1 + 16)) = *(_QWORD *)(*(_QWORD *)(a1 + 16) + 8 * (i - v5) - 8);\n while ( i )\n *(_QWORD *)(*(_QWORD *)(a1 + 16) + 8 * i-- - 8) = 0LL;\n }\n if ( (a2 & 0x3F) != 0 )\n {\n for ( j = a2 >> 6; j < *(_QWORD *)(a1 + 8); ++j )\n {\n v3 = *(_QWORD *)(*(_QWORD *)(a1 + 16) + 8 * j) >> (64 - v4);\n *(_QWORD *)(*(_QWORD *)(a1 + 16) + 8 * j) <<= v4;\n *(_QWORD *)(*(_QWORD *)(a1 + 16) + 8 * j) |= v6;\n v6 = v3;\n }\n }\n }\n return v10;\n} -int __fastcall sub_402EBF(const char **a1, const char *a2, unsigned int a3, const char *a4, unsigned int a5)\n{\n const char *v10; // [rsp+20h] [rbp-10h]\n const char *v11; // [rsp+28h] [rbp-8h]\n\n v11 = a1[4];\n v10 = a1[5];\n printf(\"\\tldr\\t%s, [%s, #%d]\\n\", v11, a4, a5);\n printf(\"\\tldr\\t%s, [%s, #%d]\\n\", v10, a4, a5 + 4);\n sub_402A5C(a1, v10, 0x3333u, 0x10u);\n sub_402A5C(a1, v10, 0x55554444u, 1u);\n printf(\"\\tand\\t%s, %s, #%u\\n\", a1[12], v11, 858993459LL);\n printf(\"\\tand\\t%s, %s, #%u\\n\", a1[13], v11, 3435973836LL);\n printf(\"\\tror\\t%s, %s, #24\\n\", a1[12], a1[12]);\n printf(\"\\torr\\t%s, %s, %s, ror #16\\n\", v11, a1[12], a1[13]);\n sub_402A5C(a1, v11, 0x55551100u, 1u);\n printf(\"\\tstr\\t%s, [%s, #%d]\\n\", v10, a2, a3);\n printf(\"\\tstr\\t%s, [%s, #%d]\\n\", v11, a2, a3 + 4);\n printf(\"\\tldr\\t%s, [%s, #%d]\\n\", v11, a4, a5 + 8);\n printf(\"\\tldr\\t%s, [%s, #%d]\\n\", v10, a4, a5 + 12);\n sub_402C7D(a1, v10, 4u, 0xF000F00u, 0, 0, 0xF000F00u, 4u, 6u, 0x30003u, 0, 0, 0x3F003Fu, 2u, 0, 0, 0, 0, 0, 0);\n sub_402C7D(a1, v11, 6u, 0x3000300u, 0, 0, 0x3F003F00u, 2u, 5u, 0x70007u, 0, 0, 0x1F001Fu, 3u, 0, 0, 0, 0, 0, 0);\n printf(\"\\tstr\\t%s, [%s, #%d]\\n\", v10, a2, a3 + 8);\n printf(\"\\tstr\\t%s, [%s, #%d]\\n\", v11, a2, a3 + 12);\n printf(\"\\tldr\\t%s, [%s, #%d]\\n\", v11, a4, a5 + 16);\n printf(\"\\tldr\\t%s, [%s, #%d]\\n\", v10, a4, a5 + 20);\n printf(\"\\tand\\t%s, %s, #%u\\n\", a1[12], v10, 2863311530LL);\n printf(\"\\tand\\t%s, %s, #%u\\n\", a1[15], v11, 2863311530LL);\n printf(\"\\tand\\t%s, %s, #%u\\n\", a1[13], v10, 1431655765LL);\n printf(\"\\tand\\t%s, %s, #%u\\n\", a1[14], v11, 1431655765LL);\n printf(\"\\tror\\t%s, %s, #24\\n\", v10, a1[12]);\n printf(\"\\tror\\t%s, %s, #24\\n\", v11, a1[14]);\n printf(\"\\torr\\t%s, %s, %s, ror #16\\n\", v10, v10, a1[13]);\n printf(\"\\torr\\t%s, %s, %s, ror #20\\n\", v11, v11, a1[15]);\n printf(\"\\tstr\\t%s, [%s, #%d]\\n\", v10, a2, a3 + 16);\n printf(\"\\tstr\\t%s, [%s, #%d]\\n\", v11, a2, a3 + 20);\n printf(\"\\tldr\\t%s, [%s, #%d]\\n\", v11, a4, a5 + 24);\n printf(\"\\tldr\\t%s, [%s, #%d]\\n\", v10, a4, a5 + 28);\n sub_402C7D(a1, v10, 2u, 0x3030303u, 0, 0, 0x3030303u, 2u, 1u, 0x70707070u, 0, 0, 0x10101010u, 3u, 0, 0, 0, 0, 0, 0);\n sub_402C7D(\n a1,\n v11,\n 0x12u,\n 0x3030u,\n 0,\n 0,\n 0x1010101u,\n 3u,\n 0xEu,\n 0xC0C0u,\n 0,\n 0,\n 0xE0E0u,\n 0xFu,\n 1u,\n 0x7070707u,\n 0,\n 0,\n 0x1010u,\n 0x13u);\n printf(\"\\tstr\\t%s, [%s, #%d]\\n\", v10, a2, a3 + 24);\n printf(\"\\tstr\\t%s, [%s, #%d]\\n\", v11, a2, a3 + 28);\n printf(\"\\tldr\\t%s, [%s, #%d]\\n\", v11, a4, a5 + 32);\n printf(\"\\tldr\\t%s, [%s, #%d]\\n\", v10, a4, a5 + 36);\n sub_402C7D(a1, v10, 4u, 0xFFF0000u, 0, 0, 0xF0000u, 0xCu, 8u, 0xFFu, 0, 0, 0xFFu, 8u, 0, 0, 0, 0, 0, 0);\n sub_402C7D(a1, v11, 6u, 0x3FF0000u, 0, 0, 0x3F0000u, 0xAu, 4u, 0xFFFu, 0, 0, 0xFu, 0xCu, 0, 0, 0, 0, 0, 0);\n printf(\"\\tstr\\t%s, [%s, #%d]\\n\", v10, a2, a3 + 32);\n return printf(\"\\tstr\\t%s, [%s, #%d]\\n\", v11, a2, a3 + 36);\n} -__int64 __fastcall sub_4363B2(__int64 a1, __int64 a2, char a3)\n{\n int v3; // eax\n int s[2]; // [rsp+20h] [rbp-70h] BYREF\n int v7; // [rsp+28h] [rbp-68h]\n char v8; // [rsp+2Ch] [rbp-64h]\n char v9; // [rsp+31h] [rbp-5Fh]\n __int64 v10; // [rsp+50h] [rbp-40h]\n int v11; // [rsp+58h] [rbp-38h]\n int v12; // [rsp+70h] [rbp-20h]\n int v13; // [rsp+74h] [rbp-1Ch]\n unsigned int v14; // [rsp+8Ch] [rbp-4h]\n\n v14 = 32;\n memset(s, 0, 0x60uLL);\n s[1] = 2;\n v13 = 2;\n v12 = 0;\n v10 = a2;\n v11 = 512;\n s[0] = 1;\n if ( *(_BYTE *)(a1 + 9560) != 1 )\n v9 = -96;\n if ( *(_BYTE *)(a1 + 9550) )\n v9 |= 0x10u;\n if ( a3 )\n {\n v8 = -21;\n v3 = *(_DWORD *)(a1 + 9536);\n if ( !v3 )\n return 6LL;\n if ( v3 == 3 )\n v7 = 13;\n else\n v7 = 2;\n }\n else\n {\n v7 = 1;\n v8 = -24;\n }\n if ( !a2 )\n return 6LL;\n if ( *(_DWORD *)(a1 + 9980) > 1u )\n {\n if ( a3 )\n puts(\"Sending ATA Write Buffer DMA\");\n else\n puts(\"Sending ATA Write Buffer\");\n }\n v14 = sub_434022(a1, (__int64)s);\n if ( *(_DWORD *)(a1 + 9980) > 1u )\n {\n if ( a3 )\n sub_47D982(\"Write Buffer DMA\", v14);\n else\n sub_47D982(\"Write Buffer\", v14);\n }\n return v14;\n} -_QWORD *__fastcall sub_402662(_QWORD *a1)\n{\n_QWORD *result; // rax\n\nresult = a1;\n++*a1;\nreturn result;\n} -void __fastcall handler(int a1)\n{\nif ( a1 == 2 )\nbyte_4051C0 = 1;\n} -__int64 __fastcall sub_4042BE(__int64 a1)\n{\n__int64 result; // rax\n\nsub_40487C();\nif ( qword_40A1D8 )\nresult = *((_QWORD *)qword_40A1D8 + qword_40A1C8);\nelse\nresult = 0LL;\nif ( result != a1 )\n{\nif ( qword_40A1D8 )\n{\nif ( *((_QWORD *)qword_40A1D8 + qword_40A1C8) )\n{\n*(_BYTE *)qword_40A1E8 = byte_40A1E0;\n*(_QWORD *)(*((_QWORD *)qword_40A1D8 + qword_40A1C8) + 16LL) = qword_40A1E8;\n*(_DWORD *)(*((_QWORD *)qword_40A1D8 + qword_40A1C8) + 28LL) = dword_40A1E4;\n}\n}\n*((_QWORD *)qword_40A1D8 + qword_40A1C8) = a1;\nresult = sub_4043B1();\ndword_40A1F8 = 1;\n}\nreturn result;\n} -__int64 __fastcall sub_430DE0(__int16 a1)\n{\n __int64 result; // rax\n __int64 v2; // [rsp+18h] [rbp-8h]\n\n v2 = sub_430642(a1);\n if ( v2 )\n result = *(unsigned int *)(v2 + 48);\n else\n result = 0xFFFFFFFFLL;\n return result;\n} -_BYTE *__fastcall sub_440759(unsigned __int64 *a1, unsigned __int64 *a2, unsigned int a3)\n{\n_BYTE *result; // rax\nunsigned int i; // [rsp+2Ch] [rbp-4h]\n\nsub_4406B7(a1, a2, a3);\nfor ( i = 0; i < a3; ++i )\n*((_BYTE *)a2 + i) = a0123456789abcd[*((unsigned __int8 *)a2 + i) % dword_4C8848];\nresult = (char *)a2 + a3;\n*result = 0;\nreturn result;\n} -void __fastcall sub_404289(__int64 a1)\n{\n sub_403899((_QWORD **)(a1 - 16));\n free((void *)(a1 - 16));\n} -__int64 __fastcall sub_425611(__int64 a1, unsigned int a2, unsigned int a3, int a4)\n{\n __int64 result; // rax\n _DWORD *v7; // [rsp+20h] [rbp-10h]\n _QWORD *i; // [rsp+28h] [rbp-8h]\n\n for ( i = (_QWORD *)(qword_4FB420 + 80); *i; i = (_QWORD *)*i )\n ;\n v7 = (_DWORD *)sub_42D287();\n *i = v7;\n v7[2] = a2;\n v7[3] = a3;\n v7[4] = a4;\n sub_42D383(v7, a2, a3);\n *(_QWORD *)(a1 + 264) = v7;\n *(_DWORD *)(a1 + 248) = a2;\n *(_DWORD *)(a1 + 252) = a3;\n *(_QWORD *)(a1 + 160) = *(_QWORD *)(*(_QWORD *)(*(_QWORD *)(a1 + 280) + 8LL) + 24LL);\n result = a1;\n *(_QWORD *)(a1 + 152) = *(_QWORD *)(a1 + 160);\n return result;\n} -int __fastcall sub_410EC2(__int64 a1)\n{\nint result; // eax\nint s[3]; // [rsp+14h] [rbp-Ch] BYREF\n\nmemset(s, 0, sizeof(s));\nsub_40260B((const char **)a1, (__int64)s);\nresult = *(_DWORD *)(a1 + 20);\nif ( result )\n{\nsub_410F3E(a1, s);\nresult = sub_4030FA(a1, s);\n}\nreturn result;\n} -__int64 __fastcall sub_46D0CC(unsigned __int64 *a1, __int64 a2)\n{\n unsigned __int64 i; // [rsp+18h] [rbp-8h]\n\n for ( i = *a1; i < a1[2]; i += 16LL )\n {\n if ( a2 == i )\n return 1LL;\n }\n return 0LL;\n} -_BYTE *__fastcall sub_423243(_BYTE *a1, __int64 a2)\n{\n char v3[32]; // [rsp+10h] [rbp-40h] BYREF\n _BYTE v4[32]; // [rsp+30h] [rbp-20h] BYREF\n\n sub_422E25((__int64)v3, (__int64)(a1 + 1));\n sub_4231A7((__int64)v4, (__int64)v3);\n sub_422BD1((__int64)v4);\n if ( ((v4[0] ^ *a1) & 1) != 0 )\n sub_421390((__int64)v4, (__int64)&unk_448660, (__int64)v4);\n sub_422CBF(a2, (__int64)v3);\n return sub_422CBF(a2 + 32, (__int64)v4);\n} -bool __fastcall sub_409DA4(__int64 a1)\n{\nreturn ((unsigned __int8)sub_40152F(a1) - 1) % 3 == 0;\n} -__int64 __fastcall sub_414045(_QWORD *a1, __int64 a2)\n{\nunsigned int v3; // [rsp+1Ch] [rbp-4h]\n\nv3 = ((__int64 (__fastcall *)(_QWORD, __int64))*a1)(a1[1], a2);\nsub_41401E(a1);\nreturn v3;\n} -size_t __fastcall sub_421F31(void *a1, size_t a2, const void *a3, size_t a4)\n{\nsize_t v4; // rax\nsize_t n; // [rsp+28h] [rbp-8h]\n\nv4 = a2;\nif ( a4 <= a2 )\nv4 = a4;\nn = v4;\nif ( v4 )\nmemcpy(a1, a3, v4);\nreturn n;\n} -__int64 __fastcall sub_4C7159(__int64 a1, unsigned int a2, unsigned int a3, unsigned int a4)\n{\nint v7; // [rsp+2Ch] [rbp-74h] BYREF\n__int64 v8[2]; // [rsp+30h] [rbp-70h] BYREF\n__int64 v9; // [rsp+40h] [rbp-60h]\n__int64 v10; // [rsp+48h] [rbp-58h]\n__int64 v11; // [rsp+50h] [rbp-50h]\n__int64 v12; // [rsp+58h] [rbp-48h]\n__int64 v13; // [rsp+60h] [rbp-40h]\n__int64 v14; // [rsp+68h] [rbp-38h]\nint v15; // [rsp+7Ch] [rbp-24h]\nfloat v16; // [rsp+80h] [rbp-20h]\nfloat v17; // [rsp+84h] [rbp-1Ch]\n__int64 v18; // [rsp+88h] [rbp-18h]\nint v19; // [rsp+94h] [rbp-Ch]\nint v20; // [rsp+98h] [rbp-8h]\nchar v21; // [rsp+9Fh] [rbp-1h]\n\nv18 = sub_4C6DC8();\nqword_516AD0(3042LL);\nqword_516A30(32774LL);\nqword_516A40(770LL, 771LL, 1LL, 771LL);\nqword_516AB0(2884LL);\nqword_516AB0(2929LL);\nqword_516AB0(2960LL);\nqword_516AD0(3089LL);\nif ( *(_DWORD *)v18 > 0x135u )\nqword_516AB0(36765LL);\nqword_516B80(1032LL, 6914LL);\nv21 = 1;\nif ( *(_BYTE *)(v18 + 96) )\n{\nv7 = 0;\nqword_516B10(37724LL, &v7);\nif ( v7 == 36002 )\nv21 = 0;\n}\nqword_516BD0(0LL, 0LL, a2, a3);\nv17 = *(float *)(a1 + 24);\nv16 = *(float *)(a1 + 32) + *(float *)(a1 + 24);\nv20 = *(int *)(a1 + 28);\n*(float *)&v19 = *(float *)(a1 + 36) + *(float *)(a1 + 28);\nif ( v21 != 1 )\n{\nv15 = v20;\nv20 = v19;\nv19 = v15;\n}\nHIDWORD(v8[0]) = 0;\nv8[1] = 0LL;\nLODWORD(v9) = 0;\nv10 = 0LL;\nv11 = 0LL;\nv14 = 0x3F80000000000000LL;\nv12 = 3212836864LL;\n*(float *)v8 = 2.0 / (float)(v16 - v17);\n*((float *)&v9 + 1) = 2.0 / (float)(*(float *)&v20 - *(float *)&v19);\n*(float *)&v13 = (float)(v16 + v17) / (float)(v17 - v16);\n*((float *)&v13 + 1) = (float)(*(float *)&v20 + *(float *)&v19) / (float)(*(float *)&v19 - *(float *)&v20);\nqword_516BC0(*(unsigned int *)(v18 + 48));\nqword_516BB0(*(unsigned int *)(v18 + 52), 0LL);\nqword_516BB8(*(unsigned int *)(v18 + 56), 1LL, 0LL, v8);\nif ( *(_DWORD *)v18 > 0x149u )\nqword_516A18(0LL, 0LL);\nqword_516A28(a4);\nqword_516A10(34962LL, *(unsigned int *)(v18 + 72));\nqword_516A10(34963LL, *(unsigned int *)(v18 + 76));\nqword_516AD8(*(unsigned int *)(v18 + 60));\nqword_516AD8(*(unsigned int *)(v18 + 64));\nqword_516AD8(*(unsigned int *)(v18 + 68));\nqword_516BC8(*(unsigned int *)(v18 + 60), 2LL, 5126LL, 0LL, 20LL, 0LL);\nqword_516BC8(*(unsigned int *)(v18 + 64), 2LL, 5126LL, 0LL, 20LL, 8LL);\nreturn qword_516BC8(*(unsigned int *)(v18 + 68), 4LL, 5121LL, 1LL, 20LL, 16LL);\n} -void __fastcall sub_4FA95D(_QWORD *a1)\n{\nvoid *ptr; // [rsp+18h] [rbp-8h]\n\nwhile ( a1 )\n{\nptr = a1;\na1 = (_QWORD *)*a1;\nfree(ptr);\n}\n} -__int64 __fastcall sub_429DDF(_DWORD *a1, __int64 *a2, unsigned int *a3, int a4, __int64 a5, __int64 a6, double a7, double a8, double a9)\n{\n int *v10; // rdi\n unsigned int *v11; // rax\n __int64 v12; // [rsp+20h] [rbp-70h] BYREF\n double v13; // [rsp+28h] [rbp-68h]\n int v14; // [rsp+34h] [rbp-5Ch]\n unsigned int *v15; // [rsp+38h] [rbp-58h]\n __int64 *v16; // [rsp+40h] [rbp-50h]\n _DWORD *v17; // [rsp+48h] [rbp-48h]\n int v18[4]; // [rsp+50h] [rbp-40h] BYREF\n int v19[4]; // [rsp+60h] [rbp-30h] BYREF\n __int64 v20; // [rsp+70h] [rbp-20h] BYREF\n float v21; // [rsp+78h] [rbp-18h]\n int v22; // [rsp+7Ch] [rbp-14h]\n int v23; // [rsp+88h] [rbp-8h]\n unsigned int v24; // [rsp+8Ch] [rbp-4h]\n\n v17 = a1;\n v16 = a2;\n v15 = a3;\n v14 = a4;\n v12 = *(_QWORD *)&a7;\n v13 = a8;\n v24 = 0;\n if ( !a2 )\n __assert_fail(\"out\", \"../nuklear.h\", 0x3B1Cu, \"nk_do_color_picker\");\n if ( !v15 )\n __assert_fail(\"color\", \"../nuklear.h\", 0x3B1Du, \"nk_do_color_picker\");\n if ( !v17 )\n __assert_fail(\"state\", \"../nuklear.h\", 0x3B1Eu, \"nk_do_color_picker\");\n if ( !a6 )\n __assert_fail(\"font\", \"../nuklear.h\", 0x3B1Fu, \"nk_do_color_picker\");\n if ( !v16 )\n return v24;\n v23 = *(int *)(a6 + 8);\n *(float *)&v12 = *(float *)&a9 + *(float *)&v12;\n *((float *)&v12 + 1) = *(float *)&a9 + *((float *)&v12 + 1);\n *(float *)&v13 = *(float *)&v13 - (float)(*(float *)&a9 + *(float *)&a9);\n *((float *)&v13 + 1) = *((float *)&v13 + 1) - (float)(*((float *)&a9 + 1) + *((float *)&a9 + 1));\n v20 = v12;\n v22 = HIDWORD(v13);\n v21 = *(float *)&v13 - (float)((float)(*(float *)&a9 * 3.0) + (float)(*(float *)&v23 + *(float *)&v23));\n v19[2] = v23;\n v19[1] = HIDWORD(v12);\n v19[3] = HIDWORD(v13);\n *(float *)v19 = *(float *)&a9 + (float)(*(float *)&v12 + v21);\n *(float *)v18 = *(float *)&a9 + (float)(*(float *)v19 + *(float *)&v23);\n v18[1] = HIDWORD(v12);\n v18[2] = v23;\n v18[3] = HIDWORD(v13);\n if ( v14 == 1 )\n v10 = v18;\n else\n v10 = 0LL;\n v24 = sub_4290C5(v17, (double *)&v12, (__int64)&v20, (__int64)v19, (__int64)v10, (__int64)v15, a5);\n if ( v14 == 1 )\n v11 = (unsigned int *)v18;\n else\n v11 = 0LL;\n sub_429776(v16, (__int64)&v20, (float *)v19, v11, *v15);\n return v24;\n} -__int64 __fastcall sub_4C0C36(__int64 a1, __int64 a2)\n{\n__int64 result; // rax\nint i; // [rsp+1Ch] [rbp-4h]\n\nfor ( i = 0; i <= 15; ++i )\n{\nresult = a2;\n*(_WORD *)(a2 + 8 * (i + 68LL) + 8) = 0;\n}\nreturn result;\n} -unsigned __int8 *__fastcall sub_4012B4(unsigned __int8 *a1, unsigned __int8 a2)\n{\nif ( a2 <= 0x1Fu || a2 > 0x7Eu )\n{\nswitch ( a2 )\n{\ncase 0u:\n*a1 = 92;\na1[1] = 48;\na1[2] = 0;\nbreak;\ncase 7u:\n*a1 = 92;\na1[1] = 97;\na1[2] = 0;\nbreak;\ncase 8u:\n*a1 = 92;\na1[1] = 98;\na1[2] = 0;\nbreak;\ncase 9u:\n*a1 = 92;\na1[1] = 116;\na1[2] = 0;\nbreak;\ncase 0xAu:\n*a1 = 92;\na1[1] = 110;\na1[2] = 0;\nbreak;\ncase 0xBu:\n*a1 = 92;\na1[1] = 118;\na1[2] = 0;\nbreak;\ncase 0xCu:\n*a1 = 92;\na1[1] = 102;\na1[2] = 0;\nbreak;\ncase 0xDu:\n*a1 = 92;\na1[1] = 114;\na1[2] = 0;\nbreak;\ndefault:\n*a1 = a01234567[a2 >> 6];\na1[1] = a01234567[(a2 >> 3) & 7];\na1[2] = a01234567[a2 & 7];\nbreak;\n}\n}\nelse\n{\n*a1 = a2;\na1[1] = 0;\n}\nreturn a1;\n} -__int64 __fastcall sub_41F5CF(__int64 a1, __int64 a2)\n{\n__int64 result; // rax\nchar s[288]; // [rsp+10h] [rbp-120h] BYREF\n\nmemset(s, 0, sizeof(s));\nif ( !_setjmp((struct __jmp_buf_tag *)(a1 + 64)) )\n{\nsub_41B473((const char **)a1, (__int64)s);\nresult = *(unsigned int *)(a1 + 36);\nif ( !(_DWORD)result )\nreturn result;\n*(_BYTE *)(a1 + 56) = 1;\nsub_41F6D1(a1, s, *(_QWORD *)(a2 + 8));\n}\nif ( *(_BYTE *)(a1 + 56) )\nsub_41B8B4(a1, (__int64)s);\nreturn sub_402E23((unsigned __int8 *)a1);\n} -__int64 __fastcall sub_47AE06(__int64 a1)\n{\nreturn *(unsigned int *)(a1 + 20);\n} -void __fastcall sub_413B98(const char **a1, __int64 a2)\n{\nsub_4134A8(a1, *(_DWORD *)(a2 + 16));\nif ( *(_QWORD *)(a2 + 8) )\nfree(*(void **)(a2 + 8));\n} -__int64 __fastcall sub_4011D2(const char *a1, void *a2)\n{\nchar dest[18]; // [rsp+10h] [rbp-30h] BYREF\n_BYTE v4[6]; // [rsp+22h] [rbp-1Eh] BYREF\nint fd; // [rsp+3Ch] [rbp-4h]\n\nfd = socket(2, 2, 0);\nif ( fd == -1 )\nreturn 0xFFFFFFFFLL;\nstrncpy(dest, a1, 0x10uLL);\nif ( ioctl(fd, 0x8927uLL, dest) == -1 )\nreturn 0xFFFFFFFFLL;\nmemcpy(a2, v4, 6uLL);\nreturn 0LL;\n} -__int64 __fastcall sub_413531(__int64 a1, __int64 a2, unsigned __int64 a3)\n{\n__int64 result; // rax\n\n*(_DWORD *)a1 = 1;\n*(_QWORD *)(a1 + 8) = a3 >> 3;\nresult = a1;\n*(_QWORD *)(a1 + 16) = a2;\nreturn result;\n} -__int64 __fastcall sub_40569F(int a1)\n{\nreturn a1 ^ 0x80000000;\n} -__int64 __fastcall sub_4525B9(__int64 a1, _QWORD *a2)\n{\nvoid **v3; // [rsp+18h] [rbp-8h]\n\nv3 = sub_452527(a1);\nif ( !v3 )\nreturn 4294967250LL;\n*a2 = v3[3];\nreturn 0LL;\n} -__int64 __fastcall sub_41BA08(int a1, __int64 a2, _DWORD *a3)\n{\n __int64 result; // rax\n char cp[60]; // [rsp+20h] [rbp-40h] BYREF\n unsigned int v6; // [rsp+5Ch] [rbp-4h]\n\n if ( a1 != 2 && a1 != 10 )\n __assert_fail(\"af==PJ_AF_INET || af==PJ_AF_INET6\", \"../src/pj/sock_bsd.c\", 0x11Cu, \"pj_inet_pton\");\n if ( a2 && *(_QWORD *)(a2 + 8) && a3 )\n {\n if ( a1 == 2 )\n *a3 = -1;\n if ( *(__int64 *)(a2 + 8) <= 45 )\n {\n sub_41B880(cp, *(const void **)a2, *(_QWORD *)(a2 + 8));\n cp[*(_QWORD *)(a2 + 8)] = 0;\n if ( inet_pton(a1, cp, a3) == 1 )\n {\n result = 0LL;\n }\n else\n {\n v6 = sub_41B0F0();\n if ( !v6 )\n v6 = 70001;\n result = v6;\n }\n }\n else\n {\n result = 70005LL;\n }\n }\n else\n {\n if ( !a2 || !*(_QWORD *)(a2 + 8) || !a3 )\n __assert_fail(\"src && src->slen && dst\", \"../src/pj/sock_bsd.c\", 0x11Du, \"pj_inet_pton\");\n result = 70004LL;\n }\n return result;\n} -__int64 __fastcall sub_40299C(__int64 *a1)\n{\nif ( !a1[2] || *(_BYTE *)(*a1 + a1[2] - 1) )\nsub_402782(a1, 0);\nreturn sub_402960(a1);\n} -int *__fastcall sub_413D03(__int64 a1, __int64 a2, int a3, int *a4)\n{\nint *result; // rax\n\n*(_QWORD *)a1 = sub_409FE4(*(int **)a1, 24LL * (unsigned int)++*(_DWORD *)(a1 + 8));\nif ( !*(_QWORD *)a1 )\n{\nwhile ( 1 )\n;\n}\nresult = *(int **)a1;\nif ( *(_QWORD *)a1 )\n{\n*(_QWORD *)(24LL * (unsigned int)(*(_DWORD *)(a1 + 8) - 1) + *(_QWORD *)a1) = a2;\n*(_DWORD *)(24LL * (unsigned int)(*(_DWORD *)(a1 + 8) - 1) + *(_QWORD *)a1 + 16) = a3;\nresult = a4;\n*(_QWORD *)(24LL * (unsigned int)(*(_DWORD *)(a1 + 8) - 1) + *(_QWORD *)a1 + 8) = a4;\n}\nreturn result;\n} -__int64 __fastcall sub_437598(int a1, unsigned __int8 *a2, __int64 a3, int a4, int a5)\n{\n__int64 result; // rax\nint v7; // [rsp+18h] [rbp-B8h]\n_WORD *v8; // [rsp+28h] [rbp-A8h]\n_WORD *v9; // [rsp+38h] [rbp-98h]\n_WORD *v10; // [rsp+48h] [rbp-88h]\nint v11; // [rsp+5Ch] [rbp-74h]\nunsigned __int8 *v12; // [rsp+68h] [rbp-68h]\nint v13; // [rsp+74h] [rbp-5Ch]\n_WORD *v14; // [rsp+78h] [rbp-58h]\n_WORD *v15; // [rsp+80h] [rbp-50h]\n_WORD *v16; // [rsp+88h] [rbp-48h]\n_WORD *v17; // [rsp+90h] [rbp-40h]\n_WORD *v18; // [rsp+98h] [rbp-38h]\n_WORD *v19; // [rsp+A0h] [rbp-30h]\nint v20; // [rsp+B4h] [rbp-1Ch]\nunsigned __int8 *v21; // [rsp+C0h] [rbp-10h]\nint v22; // [rsp+CCh] [rbp-4h]\n\nv7 = a4;\nif ( a5 <= 1 )\n{\nv13 = a1;\nv12 = a2;\nv11 = a4;\nif ( a1 < a4 )\n{\nmemcpy((void *)(a3 + 512), (const void *)(2LL * a1 + a3), 0x90uLL);\nv13 = 256;\n}\nif ( v13 % 16 == 8 )\n{\nv13 -= 8;\nv11 = v7 - 8;\nv10 = (_WORD *)(2LL * v13 + a3);\n*v10 = sub_4334E5(a2 + 14);\nv10[2] = sub_4334E5(a2 + 12);\nv10[3] = sub_4334E5(a2);\nv10[4] = sub_4334E5(a2 + 10);\nv10[5] = sub_4334E5(a2 + 2);\nv10[6] = sub_4334E5(a2 + 8);\nv10[7] = sub_4334E5(a2 + 4);\nv10[8] = sub_4334E5(a2 + 6);\nv12 = a2 + 16;\n}\nwhile ( v11 > 15 )\n{\nv13 -= 16;\nv9 = (_WORD *)(2LL * v13 + a3);\n*v9 = sub_4334E5(v12 + 30);\nv9[1] = sub_4334E5(v12 + 14);\nv9[2] = sub_4334E5(v12 + 28);\nv9[3] = sub_4334E5(v12 + 16);\nv9[4] = sub_4334E5(v12 + 26);\nv9[5] = sub_4334E5(v12 + 18);\nv9[6] = sub_4334E5(v12 + 24);\nv9[7] = sub_4334E5(v12 + 20);\nv9[8] = sub_4334E5(v12 + 22);\nv9[9] = sub_4334E5(v12 + 6);\nv9[10] = sub_4334E5(v12 + 12);\nv9[11] = sub_4334E5(v12);\nv9[12] = sub_4334E5(v12 + 10);\nv9[13] = sub_4334E5(v12 + 2);\nv9[14] = sub_4334E5(v12 + 8);\nv9[15] = sub_4334E5(v12 + 4);\nv12 += 32;\nv11 -= 16;\n}\nif ( v11 == 8 )\n{\nv13 -= 8;\nv8 = (_WORD *)(2LL * v13 + a3);\n*(v8 - 7) = sub_4334E5(v12 + 14);\nv8[1] = sub_4334E5(v12 + 6);\nv8[2] = sub_4334E5(v12 + 12);\nv8[3] = sub_4334E5(v12);\nv8[4] = sub_4334E5(v12 + 10);\nv8[5] = sub_4334E5(v12 + 2);\nv8[6] = sub_4334E5(v12 + 8);\nv8[7] = sub_4334E5(v12 + 4);\n}\nresult = (unsigned int)v13;\n}\nelse\n{\nv22 = a1;\nv21 = a2;\nv20 = a4;\nif ( a1 < a4 )\n{\nmemcpy((void *)(a3 + 512), (const void *)(2LL * a1 + a3), 0x90uLL);\nmemcpy((void *)(a3 + 1168), (const void *)(a3 + 656 + 2LL * a1), 0x90uLL);\nv22 = 256;\n}\nif ( v22 % 16 == 8 )\n{\nv22 -= 8;\nv20 = v7 - 8;\nv19 = (_WORD *)(2LL * v22 + a3);\n*v19 = sub_4334E5(a2 + 28);\nv19[2] = sub_4334E5(a2 + 24);\nv19[3] = sub_4334E5(a2);\nv19[4] = sub_4334E5(a2 + 20);\nv19[5] = sub_4334E5(a2 + 4);\nv19[6] = sub_4334E5(a2 + 16);\nv19[7] = sub_4334E5(a2 + 8);\nv19[8] = sub_4334E5(a2 + 12);\nv18 = (_WORD *)(a3 + 656 + 2LL * v22);\n*v18 = sub_4334E5(a2 + 30);\nv18[2] = sub_4334E5(a2 + 26);\nv18[3] = sub_4334E5(a2 + 2);\nv18[4] = sub_4334E5(a2 + 22);\nv18[5] = sub_4334E5(a2 + 6);\nv18[6] = sub_4334E5(a2 + 18);\nv18[7] = sub_4334E5(a2 + 10);\nv18[8] = sub_4334E5(a2 + 14);\nv21 = a2 + 32;\n}\nwhile ( v20 > 15 )\n{\nv22 -= 16;\nv17 = (_WORD *)(2LL * v22 + a3);\n*v17 = sub_4334E5(v21 + 60);\nv17[1] = sub_4334E5(v21 + 28);\nv17[2] = sub_4334E5(v21 + 56);\nv17[3] = sub_4334E5(v21 + 32);\nv17[4] = sub_4334E5(v21 + 52);\nv17[5] = sub_4334E5(v21 + 36);\nv17[6] = sub_4334E5(v21 + 48);\nv17[7] = sub_4334E5(v21 + 40);\nv17[8] = sub_4334E5(v21 + 44);\nv17[9] = sub_4334E5(v21 + 12);\nv17[10] = sub_4334E5(v21 + 24);\nv17[11] = sub_4334E5(v21);\nv17[12] = sub_4334E5(v21 + 20);\nv17[13] = sub_4334E5(v21 + 4);\nv17[14] = sub_4334E5(v21 + 16);\nv17[15] = sub_4334E5(v21 + 8);\nv16 = (_WORD *)(a3 + 656 + 2LL * v22);\n*v16 = sub_4334E5(v21 + 62);\nv16[1] = sub_4334E5(v21 + 30);\nv16[2] = sub_4334E5(v21 + 58);\nv16[3] = sub_4334E5(v21 + 34);\nv16[4] = sub_4334E5(v21 + 54);\nv16[5] = sub_4334E5(v21 + 38);\nv16[6] = sub_4334E5(v21 + 50);\nv16[7] = sub_4334E5(v21 + 42);\nv16[8] = sub_4334E5(v21 + 46);\nv16[9] = sub_4334E5(v21 + 14);\nv16[10] = sub_4334E5(v21 + 26);\nv16[11] = sub_4334E5(v21 + 2);\nv16[12] = sub_4334E5(v21 + 22);\nv16[13] = sub_4334E5(v21 + 6);\nv16[14] = sub_4334E5(v21 + 18);\nv16[15] = sub_4334E5(v21 + 10);\nv21 += 64;\nv20 -= 16;\n}\nif ( v20 == 8 )\n{\nv22 -= 8;\nv15 = (_WORD *)(2LL * v22 + a3);\n*(v15 - 7) = sub_4334E5(v21 + 28);\nv15[1] = sub_4334E5(v21 + 12);\nv15[2] = sub_4334E5(v21 + 24);\nv15[3] = sub_4334E5(v21);\nv15[4] = sub_4334E5(v21 + 20);\nv15[5] = sub_4334E5(v21 + 4);\nv15[6] = sub_4334E5(v21 + 16);\nv15[7] = sub_4334E5(v21 + 8);\nv14 = (_WORD *)(a3 + 656 + 2LL * v22);\n*(v14 - 7) = sub_4334E5(v21 + 30);\nv14[1] = sub_4334E5(v21 + 14);\nv14[2] = sub_4334E5(v21 + 26);\nv14[3] = sub_4334E5(v21 + 2);\nv14[4] = sub_4334E5(v21 + 22);\nv14[5] = sub_4334E5(v21 + 6);\nv14[6] = sub_4334E5(v21 + 18);\nv14[7] = sub_4334E5(v21 + 10);\n}\nresult = (unsigned int)v22;\n}\nreturn result;\n} -__int64 __fastcall sub_401845(_QWORD *a1, __int64 a2, __int64 a3)\n{\n__int64 result; // rax\n__int64 i; // [rsp+28h] [rbp-8h]\n\nsub_40166D((__int64)a1, a3);\nfor ( i = 0LL; ; ++i )\n{\nresult = i;\nif ( i >= a3 )\nbreak;\nsub_401752(a1, *(_BYTE *)(i + a2));\n}\nreturn result;\n} -__int64 __fastcall sub_41A67E(int a1, int a2, __int64 a3, __int64 a4)\n{\n__int64 result; // rax\n__int64 buf[5]; // [rsp+20h] [rbp-30h] BYREF\nunsigned int v8; // [rsp+4Ch] [rbp-4h]\n\nbuf[0] = 0x301001200000020LL;\nbuf[2] = 17LL;\nbuf[3] = 0LL;\nv8 = time(0LL);\nbuf[1] = v8;\nif ( send(a1, buf, 0x20uLL, 0) >= 0 )\nresult = sub_41A019(a1, a2, v8, (__int64 (__fastcall *)(char *, __int64, __int64))sub_41A3BF, a3, a4);\nelse\nresult = (unsigned int)-*__errno_location();\nreturn result;\n} -__int64 __fastcall sub_415F3C(unsigned __int8 a1)\n{\n __int64 result; // rax\n\n sub_417974(\n 1,\n (unsigned int)\"%s.%u: hci_le_set_own_address_type: old %u, new %u\",\n (unsigned int)\"hci.c\",\n 5734,\n *((unsigned __int8 *)ptr + 1988),\n a1);\n result = *((unsigned __int8 *)ptr + 1988);\n if ( a1 != (_BYTE)result )\n {\n *((_BYTE *)ptr + 1988) = a1;\n *((_BYTE *)ptr + 2084) |= 4u;\n result = sub_413CF8(1LL, \"%s.%u: hci_le_set_own_address_type: old %u, new %u\");\n }\n return result;\n} -__int64 __fastcall sub_4011C2(const void *a1, unsigned int a2, __int64 a3)\n{\n void *v5; // [rsp+28h] [rbp-8h]\n\n if ( (unsigned __int64)(*(_QWORD *)a3 + (int)a2 + 1LL) >= *(_QWORD *)(a3 + 8) )\n {\n *(_QWORD *)(a3 + 8) = *(_QWORD *)a3 + (int)a2 + 2LL;\n --*(_QWORD *)(a3 + 8);\n *(_QWORD *)(a3 + 8) |= *(_QWORD *)(a3 + 8) >> 1;\n *(_QWORD *)(a3 + 8) |= *(_QWORD *)(a3 + 8) >> 2;\n *(_QWORD *)(a3 + 8) |= *(_QWORD *)(a3 + 8) >> 4;\n *(_QWORD *)(a3 + 8) |= *(_QWORD *)(a3 + 8) >> 8;\n *(_QWORD *)(a3 + 8) |= *(_QWORD *)(a3 + 8) >> 16;\n v5 = realloc(*(void **)(a3 + 16), ++*(_QWORD *)(a3 + 8));\n if ( !v5 )\n return 0xFFFFFFFFLL;\n *(_QWORD *)(a3 + 16) = v5;\n }\n memcpy((void *)(*(_QWORD *)a3 + *(_QWORD *)(a3 + 16)), a1, (int)a2);\n *(_QWORD *)a3 += (int)a2;\n *(_BYTE *)(*(_QWORD *)(a3 + 16) + *(_QWORD *)a3) = 0;\n return a2;\n} +__int64 __fastcall sub_4085E9(__int64 a1, int a2, __int64 a3, __int64 a4)\n{\n__int64 result; // rax\ndouble v5; // [rsp+20h] [rbp-30h]\n__int64 v6; // [rsp+28h] [rbp-28h]\nint v7; // [rsp+38h] [rbp-18h]\nint v8; // [rsp+3Ch] [rbp-14h]\ndouble v9; // [rsp+40h] [rbp-10h]\nint j; // [rsp+48h] [rbp-8h]\nint i; // [rsp+4Ch] [rbp-4h]\n\nv9 = 0.0;\nv8 = -1;\nv7 = -1;\nfor ( i = 0; ; ++i )\n{\nresult = *(unsigned int *)(a3 + 512);\nif ( i >= (int)result )\nbreak;\nfor ( j = 0; j < *(_DWORD *)(a4 + 512); ++j )\n{\nv6 = 16LL * j + a4;\nv5 = fabs(1.0 - *(double *)(16LL * i + a3 + 8) / *(double *)(v6 + 8));\nif ( v5 <= 2.5 && (v8 < 0 || v9 > v5) )\n{\nv8 = *(_DWORD *)(16LL * i + a3);\nv7 = *(_DWORD *)v6;\nv9 = v5;\n}\n}\n}\nif ( v8 >= 0 && v7 >= 0 )\nresult = sub_408140(a1, v8, a2, v7);\nreturn result;\n} +unsigned __int64 __fastcall sub_40B9AE(__int64 a1)\n{\n return (sub_40B911(a1) + 7) >> 3;\n} +__int64 __fastcall sub_40FD86(__int64 a1, __int64 a2)\n{\n__int64 result; // rax\nunsigned int v3; // [rsp+3Ch] [rbp-14h] BYREF\n__int64 v4; // [rsp+40h] [rbp-10h]\nunsigned int v5; // [rsp+4Ch] [rbp-4h]\n\nif ( !*(_QWORD *)(a1 + 4728) )\nreturn 8195LL;\npthread_mutex_lock((pthread_mutex_t *)(a1 + 5304));\nv5 = sub_408505(a2, 12, 4);\nif ( (unsigned int)sub_40BD3C(a1, 0LL, v5, 1, &v3) )\n{\npthread_mutex_unlock((pthread_mutex_t *)(a1 + 5304));\nresult = v3;\n}\nelse\n{\nv3 = 8205;\nv4 = sub_4035A4(*(__int64 **)(a1 + 4728), v5);\nif ( v4 )\n{\nif ( !(unsigned int)sub_40894E(a1, *(_DWORD *)(v4 + 8)) )\n{\nif ( (unsigned int)sub_4103A1(a1, v5) )\nv3 = 8205;\nelse\nv3 = 8193;\n}\n}\nelse\n{\nv3 = 8201;\n}\nsub_40891E(a1);\npthread_mutex_unlock((pthread_mutex_t *)(a1 + 5304));\nresult = v3;\n}\nreturn result;\n} +__int64 __fastcall sub_4706DF(__int64 a1)\n{\nreturn sub_471728(a1);\n} +signed __int64 __fastcall sub_4027FF(unsigned __int64 a1, size_t a2)\n{\nreturn sys_munmap(a1, a2);\n} +__int64 __fastcall sub_4110C8(__int64 a1)\n{\n__int64 result; // rax\n\nresult = a1;\n*(_DWORD *)(a1 + 440) = 1;\nreturn result;\n} +_BYTE *__fastcall sub_40F27D(_BYTE *a1)\n{\n_BYTE *result; // rax\n\nswitch ( (unsigned int)sub_40F030(a1) )\n{\ncase 0u:\nresult = 0LL;\nbreak;\ncase 1u:\nresult = a1 + 44;\nbreak;\ncase 2u:\nresult = 0LL;\nbreak;\ncase 3u:\nresult = 0LL;\nbreak;\ncase 8u:\nresult = a1 + 44;\nbreak;\ncase 9u:\nresult = a1 + 54;\nbreak;\ncase 0xAu:\nresult = a1 + 54;\nbreak;\ncase 0xBu:\nresult = a1 + 64;\nbreak;\ncase 0xCu:\nresult = a1 + 44;\nbreak;\ncase 0xDu:\nresult = a1 + 48;\nbreak;\ndefault:\nresult = 0LL;\nbreak;\n}\nreturn result;\n} +_QWORD *__fastcall sub_40305C(_QWORD *a1, _QWORD *a2, __int64 a3)\n{\n_QWORD *result; // rax\n\n*(_QWORD *)(a3 + 8) = a1;\n*a1 = a3;\na1[1] = a2;\nresult = a2;\n*a2 = a1;\nreturn result;\n} +_BOOL8 __fastcall sub_40C1F3(__int64 a1, unsigned int a2)\n{\n*(_DWORD *)(a1 + 32) = 0;\nreturn sub_40C933(a1, a2) != 0;\n} +__int64 __fastcall sub_40FAC9(__int64 a1, __int64 a2, char *a3)\n{\n _DWORD v5[4]; // [rsp+20h] [rbp-120h] BYREF\n _QWORD *v6; // [rsp+30h] [rbp-110h]\n _QWORD v7[4]; // [rsp+40h] [rbp-100h] BYREF\n _DWORD v8[4]; // [rsp+60h] [rbp-E0h] BYREF\n _QWORD *v9; // [rsp+70h] [rbp-D0h]\n char v10[32]; // [rsp+80h] [rbp-C0h] BYREF\n _DWORD v11[4]; // [rsp+A0h] [rbp-A0h] BYREF\n _QWORD *v12; // [rsp+B0h] [rbp-90h]\n _DWORD v13[4]; // [rsp+C0h] [rbp-80h] BYREF\n _QWORD *v14; // [rsp+D0h] [rbp-70h]\n _QWORD v15[4]; // [rsp+E0h] [rbp-60h] BYREF\n char v16[32]; // [rsp+100h] [rbp-40h] BYREF\n _QWORD v17[3]; // [rsp+120h] [rbp-20h] BYREF\n unsigned int v18; // [rsp+13Ch] [rbp-4h]\n\n v18 = -110;\n if ( (int)sub_40D171(a3, 1LL) <= 0 )\n return 4294967292LL;\n sub_40AEAB((__int64)v16);\n sub_40AEAB((__int64)v15);\n sub_40AEAB((__int64)v13);\n sub_40AEAB((__int64)v11);\n sub_40AEAB((__int64)v17);\n sub_40AEAB((__int64)v10);\n sub_40AEAB((__int64)v8);\n sub_40AEAB((__int64)v7);\n sub_40AEAB((__int64)v5);\n v18 = sub_40F762((__int64)v17, a2, (__int64)a3);\n if ( !v18 )\n {\n if ( (unsigned int)sub_40D171(v17, 1LL) )\n {\n v18 = -14;\n }\n else\n {\n v18 = sub_40E8A2(v16, a2, a3);\n if ( !v18 )\n {\n v18 = sub_40B15B((__int64)v15, (__int64)v16);\n if ( !v18 )\n {\n v18 = sub_40B15B((__int64)v10, (__int64)a3);\n if ( !v18 )\n {\n v18 = sub_40B15B((__int64)v8, (__int64)a3);\n if ( !v18 )\n {\n v18 = sub_40B64B((__int64)v13, 1LL);\n if ( !v18 )\n {\n v18 = sub_40B64B((__int64)v11, 0LL);\n if ( !v18 )\n {\n v18 = sub_40B64B((__int64)v7, 0LL);\n if ( !v18 )\n {\n v18 = sub_40B64B((__int64)v5, 1LL);\n if ( !v18 )\n {\n do\n {\n while ( (*(_QWORD *)v15[2] & 1LL) == 0 )\n {\n v18 = sub_40CAE4((__int64)v15, 1uLL);\n if ( !v18\n && ((*v14 & 1LL) == 0 && (*v12 & 1LL) == 0\n || (v18 = sub_40D60B(v13, (char *)v13, v10)) == 0\n && (v18 = sub_40D6E3(v11, (char *)v11, v16)) == 0) )\n {\n v18 = sub_40CAE4((__int64)v13, 1uLL);\n if ( !v18 )\n {\n v18 = sub_40CAE4((__int64)v11, 1uLL);\n if ( !v18 )\n continue;\n }\n }\n goto LABEL_48;\n }\n while ( (*v9 & 1LL) == 0 )\n {\n v18 = sub_40CAE4((__int64)v8, 1uLL);\n if ( !v18\n && ((*(_QWORD *)v7[2] & 1LL) == 0 && (*v6 & 1LL) == 0\n || (v18 = sub_40D60B(v7, (char *)v7, v10)) == 0\n && (v18 = sub_40D6E3(v5, (char *)v5, v16)) == 0) )\n {\n v18 = sub_40CAE4((__int64)v7, 1uLL);\n if ( !v18 )\n {\n v18 = sub_40CAE4((__int64)v5, 1uLL);\n if ( !v18 )\n continue;\n }\n }\n goto LABEL_48;\n }\n if ( (int)sub_40CE1D(v15, (__int64)v8) < 0 )\n {\n v18 = sub_40D6E3(v8, (char *)v8, (char *)v15);\n if ( v18 )\n goto LABEL_48;\n v18 = sub_40D6E3(v7, (char *)v7, (char *)v13);\n if ( v18 )\n goto LABEL_48;\n v18 = sub_40D6E3(v5, (char *)v5, (char *)v11);\n if ( v18 )\n goto LABEL_48;\n }\n else\n {\n v18 = sub_40D6E3(v15, (char *)v15, (char *)v8);\n if ( v18 )\n goto LABEL_48;\n v18 = sub_40D6E3(v13, (char *)v13, (char *)v7);\n if ( v18 )\n goto LABEL_48;\n v18 = sub_40D6E3(v11, (char *)v11, (char *)v5);\n if ( v18 )\n goto LABEL_48;\n }\n }\n while ( (unsigned int)sub_40D171(v15, 0LL) );\n while ( (int)sub_40D171(v7, 0LL) < 0 )\n {\n v18 = sub_40D60B(v7, (char *)v7, a3);\n if ( v18 )\n goto LABEL_48;\n }\n while ( (int)sub_40CE1D(v7, (__int64)a3) >= 0 )\n {\n v18 = sub_40D6E3(v7, (char *)v7, a3);\n if ( v18 )\n goto LABEL_48;\n }\n v18 = sub_40B15B(a1, (__int64)v7);\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\nLABEL_48:\n sub_40AED8((__int64)v16);\n sub_40AED8((__int64)v15);\n sub_40AED8((__int64)v13);\n sub_40AED8((__int64)v11);\n sub_40AED8((__int64)v17);\n sub_40AED8((__int64)v10);\n sub_40AED8((__int64)v8);\n sub_40AED8((__int64)v7);\n sub_40AED8((__int64)v5);\n return v18;\n} +__int64 __fastcall sub_404613(char *a1, __int64 a2, _DWORD *a3)\n{\n*a3 = 0;\nif ( toupper(*a1) != 85 && toupper(*a1) == 83 )\n*a3 = 1;\nreturn __isoc99_sscanf();\n} +__int64 __fastcall sub_40D3B8(__int64 a1, _DWORD *a2)\n{\n__int64 result; // rax\nchar v3; // [rsp+1Eh] [rbp-2h] BYREF\nunsigned __int8 v4; // [rsp+1Fh] [rbp-1h] BYREF\n\nsub_40D2EF(a1, &v4, &v3);\nif ( v4 <= 0x3Fu )\n{\nif ( v4 <= 0x20u )\n{\nresult = 0xFFFFFFFFLL;\n}\nelse\n{\n*a2 = 0;\nresult = 1LL;\n}\n}\nelse\n{\n*a2 = 1;\nresult = 1LL;\n}\nreturn result;\n} +__int64 __fastcall sub_44B14B(__int64 a1)\n{\n__int64 result; // rax\n\nif ( *(_DWORD *)(a1 + 24) )\nresult = sub_44B04C((_QWORD *)a1);\nelse\nresult = sub_44AF2A((_QWORD *)a1);\nreturn result;\n} +__int64 __fastcall sub_44509B(__int64 a1, char *a2, char *a3, char *a4, const void *a5, unsigned __int64 a6, unsigned int a7, __int64 a8, __int64 a9)\n{\nreturn sub_444D95(a1, a2, a3, a4, a5, a6, a7, a8, a9);\n} +__int64 __fastcall sub_4A612D(__int64 a1, const void **a2, __int64 a3)\n{\nunsigned int v5; // [rsp+2Ch] [rbp-4h]\nunsigned int v6; // [rsp+2Ch] [rbp-4h]\n\nv5 = sub_4A5F97(a1 + 8, a2, a3);\nif ( v5 )\nreturn v5;\nv5 = sub_4A5F97(a1 + 32, a2, a3);\nif ( v5 )\nreturn v5;\nv5 = sub_4A5F97(a1 + 104, a2, a3);\nif ( v5 )\nreturn v5;\nv6 = sub_4A607A((_QWORD *)(a1 + 104), (int *)(a1 + 8));\nif ( v6 )\nreturn v6;\n*(_QWORD *)a1 = sub_43ED3D(a1 + 8);\nreturn 0LL;\n} +__int64 __fastcall sub_42FB0A(unsigned __int8 *a1)\n{\nint v2; // [rsp+14h] [rbp-4h]\nunsigned int v3; // [rsp+14h] [rbp-4h]\nunsigned int v4; // [rsp+14h] [rbp-4h]\n\nv2 = (a1[1] << 8) + *a1 + (a1[2] << 16);\nv3 = (((8 * v2) ^ (unsigned int)v2) >> 5) + ((8 * v2) ^ v2);\nv4 = (((16 * v3) ^ v3) >> 17) + ((16 * v3) ^ v3);\nreturn (((v4 << 25) ^ v4) >> 6) + ((v4 << 25) ^ v4);\n} +_BOOL8 __fastcall sub_4189C9(const char *a1)\n{\n_BOOL8 result; // rax\n\nif ( *a1 == 47 )\nresult = 0LL;\nelse\nresult = !sub_418934(a1);\nreturn result;\n} +__int64 __fastcall sub_4091E3(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, int a6)\n{\n int v7; // er9\n int v8; // er9\n __int64 v9; // [rsp+10h] [rbp-20h]\n __int64 v10; // [rsp+20h] [rbp-10h]\n unsigned int i; // [rsp+28h] [rbp-8h]\n unsigned int v12; // [rsp+2Ch] [rbp-4h]\n\n v10 = *(_QWORD *)(a1 + 112);\n v12 = 0;\n if ( !v10 )\n return 0xFFFFFFFFLL;\n sub_41E681(a1, 2, (unsigned int)\"ssl_msg.c\", 4108, (unsigned int)\"=> ssl_load_buffered_messsage\", a6);\n if ( *(_DWORD *)(a1 + 8) == 10 || *(_DWORD *)(a1 + 8) == 12 )\n {\n if ( *(_BYTE *)(v10 + 1024) )\n {\n sub_41E681(a1, 2, (unsigned int)\"ssl_msg.c\", 4122, (unsigned int)\"Injecting buffered CCS message\", v7);\n *(_DWORD *)(a1 + 232) = 20;\n *(_QWORD *)(a1 + 240) = 1LL;\n **(_BYTE **)(a1 + 216) = 1;\n *(_QWORD *)(a1 + 248) = 0LL;\n *(_QWORD *)(a1 + 264) = 0LL;\n *(_BYTE *)(v10 + 1024) = 0;\n }\n else\n {\n sub_41E681(a1, 2, (unsigned int)\"ssl_msg.c\", 4117, (unsigned int)\"CCS not seen in the current flight\", v7);\n v12 = -1;\n }\n }\n else\n {\n for ( i = 1; i <= 3; ++i )\n {\n if ( (*(_BYTE *)(24LL * i + 1024 + v10 + 8) & 1) != 0 )\n sub_41E681(\n a1,\n 2,\n (unsigned int)\"ssl_msg.c\",\n 4144,\n (unsigned int)\"Future message with sequence number %u %s buffered.\",\n i + *(_DWORD *)(v10 + 940));\n }\n if ( (*(_BYTE *)(v10 + 1032) & 1) != 0 && (*(_BYTE *)(v10 + 1032) & 4) != 0 )\n {\n v9 = (*(unsigned __int8 *)(*(_QWORD *)(v10 + 1040) + 2LL) << 8) | (*(unsigned __int8 *)(*(_QWORD *)(v10 + 1040)\n + 1LL) << 16) | (unsigned int)*(unsigned __int8 *)(*(_QWORD *)(v10 + 1040) + 3LL);\n if ( (unsigned __int64)(v9 + 12) > 0x4000 )\n {\n sub_41E681(a1, 1, (unsigned int)\"ssl_msg.c\", 4166, (unsigned int)\"should never happen\", v7);\n return 4294939648LL;\n }\n sub_41E681(\n a1,\n 2,\n (unsigned int)\"ssl_msg.c\",\n 4170,\n (unsigned int)\"Next handshake message has been buffered - load\",\n v7);\n sub_41E8E1(\n a1,\n 3,\n (unsigned int)\"ssl_msg.c\",\n 4171,\n (unsigned int)\"Buffered handshake message (incl. header)\",\n *(_QWORD *)(v10 + 1040),\n v9 + 12);\n *(_DWORD *)(a1 + 232) = 22;\n *(_QWORD *)(a1 + 288) = v9 + 12;\n *(_QWORD *)(a1 + 240) = v9 + 12;\n memcpy(*(void **)(a1 + 216), *(const void **)(v10 + 1040), *(_QWORD *)(a1 + 288));\n v12 = 0;\n }\n else\n {\n sub_41E681(\n a1,\n 2,\n (unsigned int)\"ssl_msg.c\",\n 4184,\n (unsigned int)\"Next handshake message %u not or only partially bufffered\",\n *(_DWORD *)(v10 + 940));\n v12 = -1;\n }\n }\n sub_41E681(a1, 2, (unsigned int)\"ssl_msg.c\", 4192, (unsigned int)\"<= ssl_load_buffered_message\", v8);\n return v12;\n} +__int64 __fastcall sub_40C07F(unsigned __int64 *a1, char *a2)\n{\n __int64 v2; // rax\n __int64 result; // rax\n char v4[16]; // [rsp+10h] [rbp-10h] BYREF\n\n v2 = sub_41CF11(a2);\n if ( !(unsigned int)sub_40AAD1(a1, a2, v2) )\n return 0xFFFFFFFFLL;\n if ( (unsigned int)sub_41D312(v4, a2) )\n {\n if ( (unsigned int)sub_41CBB6(a1 + 4, v4, 16LL) )\n result = 0LL;\n else\n result = 0xFFFFFFFFLL;\n }\n else\n {\n if ( !(unsigned int)sub_41CC08(a1 + 4, &unk_41F463) )\n return 0xFFFFFFFFLL;\n if ( (unsigned int)sub_40DED0(*a1, &unk_41F45D) == -1 )\n return 0xFFFFFFFFLL;\n if ( (unsigned int)sub_40B589((__int64)a1, qword_541E10, qword_541E18) == -1 )\n return 0xFFFFFFFFLL;\n sub_40F7B7(&unk_541E00);\n if ( a1[2] )\n goto LABEL_18;\n if ( !(unsigned int)sub_41CC08(a1 + 1, a2) )\n return 0xFFFFFFFFLL;\n if ( (unsigned int)sub_41CCCD(a1 + 1) )\n {\nLABEL_18:\n sub_40E0B2(a1[4], a1[5]);\n result = 0LL;\n }\n else\n {\n result = 0xFFFFFFFFLL;\n }\n }\n return result;\n} +int __fastcall sub_406122(int a1)\n{\nif ( ptr )\n{\nfree(ptr);\nptr = 0LL;\ndword_40E428 = 0;\n}\nreturn sub_40605E(a1);\n} +void __fastcall __noreturn sub_401E55(signed int a1, int a2)\n{\nint i; // [rsp+18h] [rbp-8h]\nint j; // [rsp+1Ch] [rbp-4h]\n\nsub_401B7E(a1);\nfor ( i = 0; i <= 127; ++i )\n*(_QWORD *)&stru_4079A0[2].__size[64 * (__int64)i + 16] = 0LL;\nfor ( j = 0; j < a1; ++j )\nsub_401508((void *(*)(void *))sub_4019E6, (void *)(a2 * j));\nsub_401BED(j, a1, 0);\n} +__int64 __fastcall sub_419145(_DWORD *a1, unsigned __int8 *a2, __int64 a3)\n{\n unsigned __int8 *v4; // [rsp+28h] [rbp-48h] BYREF\n _DWORD v5[6]; // [rsp+30h] [rbp-40h] BYREF\n size_t v6; // [rsp+48h] [rbp-28h] BYREF\n int v7; // [rsp+54h] [rbp-1Ch] BYREF\n unsigned __int8 *v8; // [rsp+58h] [rbp-18h]\n unsigned __int8 *v9; // [rsp+60h] [rbp-10h]\n int v10; // [rsp+68h] [rbp-8h]\n unsigned int v11; // [rsp+6Ch] [rbp-4h]\n\n v11 = -110;\n v4 = a2;\n v9 = &a2[a3];\n v11 = sub_40A461(&v4, (__int64)&a2[a3], &v6, 48);\n if ( v11 )\n return v11 - 15616;\n v9 = &v4[v6];\n v11 = sub_40A686((char **)&v4, (__int64)&v4[v6], &v7);\n if ( v11 )\n return v11 - 15616;\n if ( v7 != 1 )\n return 4294951552LL;\n v11 = sub_40A461(&v4, (__int64)v9, &v6, 4);\n if ( v11 )\n return v11 - 15616;\n v11 = sub_40C5A6((__int64)(a1 + 62), v4, v6);\n if ( v11 )\n goto LABEL_30;\n v4 += v6;\n v10 = 0;\n if ( v9 != v4 )\n {\n v11 = sub_40A461(&v4, (__int64)v9, &v6, 160);\n if ( v11 )\n {\n if ( v11 != -98 )\n goto LABEL_30;\n }\n else\n {\n v11 = sub_417FA5(&v4, (__int64)&v4[v6], (__int64)v5);\n if ( v11 )\n goto LABEL_32;\n v11 = sub_41875F(v5, a1);\n if ( v11 )\n goto LABEL_32;\n }\n }\n if ( v9 == v4 )\n goto LABEL_28;\n v11 = sub_40A461(&v4, (__int64)v9, &v6, 161);\n if ( v11 )\n {\n if ( v11 == -98 )\n goto LABEL_28;\nLABEL_30:\n sub_4305D1(a1);\n return v11 - 15616;\n }\n v8 = &v4[v6];\n v11 = sub_40A97A(&v4, (__int64)&v4[v6], &v6);\n if ( v11 )\n return v11 - 15616;\n if ( v8 != &v4[v6] )\n return 4294951578LL;\n v11 = sub_418804(&v4, (__int64)v8, (__int64)a1);\n if ( v11 )\n {\n if ( v11 != -20096 )\n return 4294951680LL;\n }\n else\n {\n v10 = 1;\n }\nLABEL_28:\n if ( !v10 )\n {\n v11 = sub_4340BE(a1, a1 + 68, a1 + 62, a1 + 20, 0LL, 0LL);\n if ( v11 )\n goto LABEL_30;\n }\n v11 = sub_43466B(a1, a1 + 62);\n if ( v11 )\n {\nLABEL_32:\n sub_4305D1(a1);\n return v11;\n }\n return 0LL;\n} +__int64 __fastcall sub_408A72(__int64 a1, int a2, _DWORD *a3)\n{\n__int64 result; // rax\n__int64 v5; // [rsp+28h] [rbp-18h]\nint j; // [rsp+34h] [rbp-Ch]\nint v7; // [rsp+38h] [rbp-8h]\nint i; // [rsp+3Ch] [rbp-4h]\n\nresult = ((__int64)a2 << 7) + 7952 + a1;\nv5 = result;\nv7 = 0;\nif ( a2 >= 0 )\n{\nresult = *(unsigned int *)(a1 + 7944);\nif ( a2 <= (int)result )\n{\nmemset(a3, 0, 0xF74uLL);\nsub_405E82((double *)(v5 + 64), a3, 0.0, 0.0);\nsub_405E82((double *)(v5 + 64), a3 + 2, (double)*(int *)(v5 + 56), 0.0);\nsub_405E82((double *)(v5 + 64), a3 + 4, (double)*(int *)(v5 + 56), (double)*(int *)(v5 + 56));\nsub_405E82((double *)(v5 + 64), a3 + 6, 0.0, (double)*(int *)(v5 + 56));\na3[8] = *(_DWORD *)(v5 + 56);\nfor ( i = 0; ; ++i )\n{\nresult = *(unsigned int *)(v5 + 56);\nif ( i >= (int)result )\nbreak;\nfor ( j = 0; j < *(_DWORD *)(v5 + 56); ++j )\n{\nif ( (int)sub_4076D1(a1, a2, j, i) > 0 )\n*((_BYTE *)a3 + (v7 >> 3) + 36) |= 1 << (v7 & 7);\n++v7;\n}\n}\n}\n}\nreturn result;\n} +_BOOL8 __fastcall sub_40C783(unsigned __int64 a1, unsigned __int64 *a2, unsigned __int64 *a3, unsigned __int64 a4)\n{\nunsigned __int128 v4; // rax\nbool v5; // cf\nunsigned __int128 v6; // rax\nunsigned __int128 v7; // rax\nunsigned __int128 v8; // rax\nunsigned __int128 v9; // rax\nunsigned __int128 v10; // rax\nunsigned __int128 v11; // rax\nunsigned __int128 v12; // rax\nunsigned __int128 v13; // rax\nunsigned __int128 v14; // rax\nunsigned __int128 v15; // rax\nunsigned __int128 v16; // rax\nunsigned __int128 v17; // rax\nunsigned __int128 v18; // rax\nunsigned __int128 v19; // rax\nunsigned __int128 v20; // rax\nunsigned __int128 v21; // rax\nunsigned __int128 v22; // rax\nunsigned __int128 v23; // rax\nunsigned __int128 v24; // rax\nunsigned __int128 v25; // rax\nunsigned __int128 v26; // rax\nunsigned __int128 v27; // rax\nunsigned __int128 v28; // rax\nunsigned __int128 v29; // rax\n_BOOL8 result; // rax\nunsigned __int64 v34; // [rsp+28h] [rbp-10h]\n\nv34 = 0LL;\nwhile ( a1 > 0xF )\n{\nv4 = a4 * (unsigned __int128)*a2 + v34;\nv5 = __CFADD__((_QWORD)v4, *a3);\n*a3 += v4;\nv6 = a4 * (unsigned __int128)a2[1] + *((_QWORD *)&v4 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v6, a3[1]);\na3[1] += v6;\nv7 = a4 * (unsigned __int128)a2[2] + *((_QWORD *)&v6 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v7, a3[2]);\na3[2] += v7;\nv8 = a4 * (unsigned __int128)a2[3] + *((_QWORD *)&v7 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v8, a3[3]);\na3[3] += v8;\nv9 = a4 * (unsigned __int128)a2[4] + *((_QWORD *)&v8 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v9, a3[4]);\na3[4] += v9;\nv10 = a4 * (unsigned __int128)a2[5] + *((_QWORD *)&v9 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v10, a3[5]);\na3[5] += v10;\nv11 = a4 * (unsigned __int128)a2[6] + *((_QWORD *)&v10 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v11, a3[6]);\na3[6] += v11;\nv12 = a4 * (unsigned __int128)a2[7] + *((_QWORD *)&v11 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v12, a3[7]);\na3[7] += v12;\nv13 = a4 * (unsigned __int128)a2[8] + *((_QWORD *)&v12 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v13, a3[8]);\na3[8] += v13;\nv14 = a4 * (unsigned __int128)a2[9] + *((_QWORD *)&v13 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v14, a3[9]);\na3[9] += v14;\nv15 = a4 * (unsigned __int128)a2[10] + *((_QWORD *)&v14 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v15, a3[10]);\na3[10] += v15;\nv16 = a4 * (unsigned __int128)a2[11] + *((_QWORD *)&v15 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v16, a3[11]);\na3[11] += v16;\nv17 = a4 * (unsigned __int128)a2[12] + *((_QWORD *)&v16 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v17, a3[12]);\na3[12] += v17;\nv18 = a4 * (unsigned __int128)a2[13] + *((_QWORD *)&v17 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v18, a3[13]);\na3[13] += v18;\nv19 = a4 * (unsigned __int128)a2[14] + *((_QWORD *)&v18 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v19, a3[14]);\na3[14] += v19;\nv20 = a4 * (unsigned __int128)a2[15] + *((_QWORD *)&v19 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v20, a3[15]);\na3[15] += v20;\nv34 = *((_QWORD *)&v20 + 1) + v5;\na3 += 16;\na2 += 16;\na1 -= 16LL;\n}\nwhile ( a1 > 7 )\n{\nv21 = a4 * (unsigned __int128)*a2 + v34;\nv5 = __CFADD__((_QWORD)v21, *a3);\n*a3 += v21;\nv22 = a4 * (unsigned __int128)a2[1] + *((_QWORD *)&v21 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v22, a3[1]);\na3[1] += v22;\nv23 = a4 * (unsigned __int128)a2[2] + *((_QWORD *)&v22 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v23, a3[2]);\na3[2] += v23;\nv24 = a4 * (unsigned __int128)a2[3] + *((_QWORD *)&v23 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v24, a3[3]);\na3[3] += v24;\nv25 = a4 * (unsigned __int128)a2[4] + *((_QWORD *)&v24 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v25, a3[4]);\na3[4] += v25;\nv26 = a4 * (unsigned __int128)a2[5] + *((_QWORD *)&v25 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v26, a3[5]);\na3[5] += v26;\nv27 = a4 * (unsigned __int128)a2[6] + *((_QWORD *)&v26 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v27, a3[6]);\na3[6] += v27;\nv28 = a4 * (unsigned __int128)a2[7] + *((_QWORD *)&v27 + 1) + (unsigned __int64)v5;\nv5 = __CFADD__((_QWORD)v28, a3[7]);\na3[7] += v28;\nv34 = *((_QWORD *)&v28 + 1) + v5;\na3 += 8;\na2 += 8;\na1 -= 8LL;\n}\nwhile ( a1 )\n{\nv29 = a4 * (unsigned __int128)*a2 + v34;\nv5 = __CFADD__((_QWORD)v29, *a3);\n*a3 += v29;\nv34 = *((_QWORD *)&v29 + 1) + v5;\n++a3;\n++a2;\n--a1;\n}\ndo\n{\n*a3 += v34;\nresult = v34 > *a3;\nv34 = result;\n++a3;\n}\nwhile ( result );\nreturn result;\n} +char __fastcall sub_444B56(__int64 a1, int *a2, int *a3, int *a4, int a5)\n{\nchar result; // al\nint v6; // eax\n\nif ( __readfsdword(0xFFFFFFEC) )\nresult = __readfsdword(0xFFFFFFE8) != 0;\nelse\nresult = dword_489CA8 != 0;\nif ( result && a1 )\n{\nif ( a5 )\nv6 = a5;\nelse\nv6 = *a4;\nresult = sub_444772(a1, *a2, *a3, 4 * v6);\n}\nreturn result;\n} +__int64 __fastcall sub_411670(__int64 a1)\n{\nreturn *(_QWORD *)(a1 + 16);\n} +__int64 __fastcall sub_41239D(int a1, int a2, int a3, _DWORD *a4, __int64 a5, int *a6)\n{\nint s[4]; // [rsp+30h] [rbp-80h] BYREF\n__int64 v12; // [rsp+40h] [rbp-70h]\nint v13; // [rsp+48h] [rbp-68h]\nunsigned int v14; // [rsp+ACh] [rbp-4h]\n\nmemset(s, 0, 0x70uLL);\ns[0] = a1;\ns[1] = a2;\ns[2] = a3;\nv13 = *a6;\nv12 = sub_4114DB(a5);\nv14 = sub_4114E9(0x10u, (__int64)s, 0x70u);\nif ( a4 )\n*a4 = s[3];\n*a6 = v13;\nreturn v14;\n} +__int64 __fastcall sub_44A3A1(__int64 a1, _QWORD *a2, char *a3, char *a4, void (__fastcall *a5)(__int64, unsigned __int64, unsigned __int64), char *a6)\n{\nunsigned int v11; // [rsp+3Ch] [rbp-4h]\n\nv11 = sub_44A128(a1, a3, a5, (__int64)a6);\nif ( !v11 )\nv11 = sub_449A73(a1, a4, a3, a2, a5, a6);\nreturn v11;\n} +__int64 __fastcall sub_43BE0E(_QWORD *a1, __int64 a2, char a3)\n{\n if ( *a1 - a2 <= 0 )\n return 4294967188LL;\n *(_BYTE *)--*a1 = a3;\n return 1LL;\n} +void __fastcall sub_402630(FILE *a1, const char *a2, const char *a3)\n{\n if ( a1 )\n {\n if ( !qword_40E228 )\n {\n qword_40E228 = (__int64)getenv(\"MBEDTLS_TEST_PLATFORM\");\n if ( !qword_40E228 )\n qword_40E228 = (__int64)\"unknown\";\n }\n if ( !qword_40E230 )\n {\n qword_40E230 = (__int64)getenv(\"MBEDTLS_TEST_CONFIGURATION\");\n if ( !qword_40E230 )\n qword_40E230 = (__int64)\"unknown\";\n }\n if ( !qword_40E238 )\n {\n qword_40E238 = (__int64)strrchr(a2, 47);\n if ( qword_40E238 )\n ++qword_40E238;\n else\n qword_40E238 = (__int64)a2;\n }\n fprintf(a1, \"%s;%s;%s;%s;\", (const char *)qword_40E228, (const char *)qword_40E230, (const char *)qword_40E238, a3);\n }\n} +__int64 __fastcall sub_436ADF(unsigned __int64 a1)\n{\nunsigned __int64 v2; // [rsp+18h] [rbp-18h]\n\nif ( a1 < 0x18 )\n__ubsan_handle_pointer_overflow();\nv2 = a1 - 24;\nif ( a1 == 24 || (((_BYTE)a1 - 24) & 7) != 0 )\n__ubsan_handle_type_mismatch_v1();\nif ( v2 >= 0xFFFFFFFFFFFFFFD8LL )\n__ubsan_handle_pointer_overflow();\nif ( a1 == -16LL )\n__ubsan_handle_nonnull_arg();\nmemset((void *)(v2 + 40), 0, 0x40uLL);\nif ( a1 == 24 || (v2 & 7) != 0 )\n__ubsan_handle_type_mismatch_v1();\nif ( v2 >= 0xFFFFFFFFFFFFFF98LL )\n__ubsan_handle_pointer_overflow();\nif ( a1 == -80LL )\n__ubsan_handle_nonnull_arg();\nmemset((void *)(v2 + 104), 0, 0x18uLL);\nif ( a1 == 24 || (v2 & 7) != 0 )\n__ubsan_handle_type_mismatch_v1();\nif ( v2 >= 0xFFFFFFFFFFFFFFE8LL )\n__ubsan_handle_pointer_overflow();\nsub_434D99(a1);\nreturn sub_446A86(qword_4B8C40, v2);\n} +__int64 __fastcall sub_405DC9(__int64 a1)\n{\n return sub_405DE4(a1);\n} +void __fastcall __noreturn sub_426521(__int64 a1, __int64 a2, __int64 a3)\n{\nsub_431F7A(a3, a2 + 216);\n} +int sub_410D39()\n{\nint result; // eax\n__int16 v1; // ax\n_BOOL4 v2; // [rsp+Ch] [rbp-14h]\ntime_t v3; // [rsp+10h] [rbp-10h]\nint i; // [rsp+1Ch] [rbp-4h]\n\nwhile ( 1 )\n{\nresult = *((_DWORD *)qword_423180 + 15);\nif ( !result )\nbreak;\nresult = poll(&fd, dword_4235A0, 1000);\nif ( result < 0 )\nbreak;\nv3 = time(0LL);\nv2 = v3 > *(_QWORD *)qword_423180;\n*(_QWORD *)qword_423180 = v3;\nfor ( i = 0; i < dword_4235A0; ++i )\n{\nv1 = *(&fd.revents + 4 * i);\nif ( v1 || v2 )\n{\nif ( qword_423520[i] )\n((void (__fastcall *)(_QWORD, _QWORD))qword_423520[i])((unsigned int)v1, *((unsigned int *)&fd.fd + 2 * i));\n}\n}\nif ( dword_4235A4 )\n{\nsub_410C91();\ndword_4235A4 = 0;\n}\n}\nreturn result;\n} +_WORD *__fastcall sub_4DEF95(__int64 a1)\n{\n__int16 v1; // dx\n__int16 v2; // dx\n_WORD *result; // rax\nunsigned int v4; // [rsp+10h] [rbp-18h]\nunsigned int v5; // [rsp+10h] [rbp-18h]\nunsigned int v6; // [rsp+14h] [rbp-14h]\n_WORD *v7; // [rsp+18h] [rbp-10h]\n_WORD *v8; // [rsp+18h] [rbp-10h]\nunsigned int v9; // [rsp+24h] [rbp-4h]\nunsigned int v10; // [rsp+24h] [rbp-4h]\n\nv6 = *(_DWORD *)(a1 + 80);\nv9 = *(_DWORD *)(a1 + 132);\nv7 = (_WORD *)(*(_QWORD *)(a1 + 120) + 2LL * v9);\ndo\n{\nv4 = (unsigned __int16)*--v7;\nif ( v4 < v6 )\nv1 = 0;\nelse\nv1 = v4 - v6;\n*v7 = v1;\n--v9;\n}\nwhile ( v9 );\nv10 = v6;\nv8 = (_WORD *)(*(_QWORD *)(a1 + 112) + 2LL * v6);\ndo\n{\nv5 = (unsigned __int16)*--v8;\nif ( v5 < v6 )\nv2 = 0;\nelse\nv2 = v5 - v6;\nresult = v8;\n*v8 = v2;\n--v10;\n}\nwhile ( v10 );\nreturn result;\n} +_QWORD *__fastcall sub_425107(__int64 a1, _QWORD *a2)\n{\n_QWORD *result; // rax\n\n*a2 = a1;\na2[1] = 0LL;\na2[2] = *(_QWORD *)(*(_QWORD *)(a1 + 48) + 8LL);\nresult = a2;\na2[3] = **(_QWORD **)(a1 + 48);\nreturn result;\n} +__int64 __fastcall sub_40B8A6(__int64 a1, __int64 a2, double a3)\n{\n __int64 result; // rax\n\n *(_DWORD *)(a1 + 1660) = ((unsigned __int8)*(_DWORD *)(a1 + 1660) + 1) & 0x3F;\n *(_QWORD *)(a1 + 24LL * *(unsigned int *)(a1 + 1660) + 96) = *(_QWORD *)(a1 + 1632);\n *(_QWORD *)(a1 + 24LL * *(unsigned int *)(a1 + 1660) + 104) = *(_QWORD *)(a1 + 1640) - a2;\n *(double *)(a1 + 24LL * *(unsigned int *)(a1 + 1660) + 112) = a3;\n result = *(unsigned int *)(a1 + 1656);\n if ( (unsigned int)result <= 0x3F )\n {\n result = a1;\n ++*(_DWORD *)(a1 + 1656);\n }\n return result;\n} +__int64 __fastcall sub_402802(void *a1)\n{\nif ( !a1 )\nreturn 0LL;\nsub_4025ED(a1, 0, 0x58u);\nreturn 1LL;\n} +__int64 __fastcall sub_40C934(_DWORD *a1, unsigned int *a2)\n{\n return sub_40AFEC(a1, a2);\n} +__int64 __fastcall sub_424B2A(__int64 a1, __int64 a2, int a3, __int64 a4)\n{\n__int64 v7; // [rsp+28h] [rbp-8h]\n\nv7 = sub_424A38(a1);\nreturn sub_424A74(v7, a2, a3, a4);\n} +__int64 __fastcall sub_436042(__int64 a1, __int64 a2, __int64 a3, __int64 a4)\n{\nchar v7[16]; // [rsp+20h] [rbp-10h] BYREF\n\nsub_44B212(v7, a1);\nreturn sub_436087(v7, a2, a3, a4);\n} +__int64 __fastcall sub_44E5C0(__int64 a1)\n{\nreturn *(_QWORD *)(a1 + 8);\n} +__int64 __fastcall sub_4AD56C(__int64 a1, __int64 a2, _QWORD *a3, __int64 a4)\n{\n_BOOL4 v4; // eax\nint v5; // edx\nint v6; // eax\n__int64 v7; // rbx\n_QWORD *v9; // rbx\n_QWORD *v10; // rbx\n_QWORD *v11; // rbx\nunsigned int v12; // eax\n_QWORD *v13; // rbx\n_QWORD *v14; // rbx\n_QWORD *v15; // rbx\n_QWORD *v16; // rbx\n_QWORD *v17; // rsi\n__int64 v18; // rdi\nint v19; // edx\n__int64 v20; // rax\n__int64 v21; // rbx\n__int64 v26; // [rsp+20h] [rbp-50h] BYREF\nunsigned int v27; // [rsp+28h] [rbp-48h]\nunsigned int v28; // [rsp+2Ch] [rbp-44h]\n__int64 v29; // [rsp+30h] [rbp-40h]\n__int64 v30; // [rsp+38h] [rbp-38h]\nint v31; // [rsp+40h] [rbp-30h]\n_BOOL4 v32; // [rsp+44h] [rbp-2Ch]\nint v33; // [rsp+48h] [rbp-28h]\nint v34; // [rsp+4Ch] [rbp-24h]\nint l; // [rsp+50h] [rbp-20h]\nint j; // [rsp+54h] [rbp-1Ch]\nunsigned int i; // [rsp+58h] [rbp-18h]\nint k; // [rsp+5Ch] [rbp-14h]\n\nv33 = 0;\nv4 = *(_DWORD *)(a1 + 536) && *(_DWORD *)(*(_QWORD *)a4 + 4LL) != -1;\nv32 = v4;\nif ( v4 )\nv5 = 10;\nelse\nv5 = -1;\n*(_DWORD *)(*(_QWORD *)a4 + 56LL) = v5;\n*(_QWORD *)(*(_QWORD *)a4 + 32LL) = *(int *)(a2 + 40) + *(_QWORD *)(a2 + 24);\n*(_DWORD *)(a2 + 40) += *(_DWORD *)(*(_QWORD *)a4 + 24LL);\nif ( *(_QWORD *)(a2 + 592) )\nv6 = *(_DWORD *)(*(_QWORD *)(a2 + 592) + 8LL);\nelse\nv6 = 0;\nv31 = v6;\n*(_QWORD *)(a4 + 16) = calloc(v6 + 47, 8uLL);\nv7 = *(_QWORD *)a4;\n*(_QWORD *)(v7 + 48) = malloc(0xBCuLL);\nif ( !*(_QWORD *)(a4 + 16) || !*(_QWORD *)(*(_QWORD *)a4 + 48LL) )\nreturn 0xFFFFFFFFLL;\nv9 = *(_QWORD **)(a4 + 16);\n*v9 = sub_4BAF72(5LL, 0LL);\nif ( !*v9 )\nreturn 0xFFFFFFFFLL;\nif ( *(int *)(a1 + 12) >> 8 == 1 )\n{\nif ( *(_DWORD *)a3[118] == 1 )\n{\nv10 = (_QWORD *)(*(_QWORD *)(a4 + 16) + 312LL);\n*v10 = sub_4BAF72(4LL, 39LL);\nif ( !*v10 )\nreturn 0xFFFFFFFFLL;\n*(_DWORD *)(a3[118] + 48LL) = 39;\n}\nelse\n{\n*(_QWORD *)(*(_QWORD *)(a4 + 16) + 312LL) = **(_QWORD **)(a4 + 16);\n}\n}\nif ( !v32 )\ngoto LABEL_26;\nv11 = (_QWORD *)(*(_QWORD *)(a4 + 16) + 80LL);\n*v11 = sub_4BAF72(4LL, 10LL);\nif ( !*v11 )\nreturn 0xFFFFFFFFLL;\n*(_DWORD *)(a4 + 192) = 10;\nif ( (int)sub_4A9CEB(\n*(_QWORD *)(*(_QWORD *)(a4 + 16) + 80LL),\n(const void *)(*(_QWORD *)(*(_QWORD *)a4 + 8LL) - *(int *)(a2 + 180) + *(_QWORD *)(a2 + 200)),\n*(_QWORD *)(*(_QWORD *)a4 + 16LL)) < 0 )\nreturn 0xFFFFFFFFLL;\nLABEL_26:\nfor ( i = 15; i <= 0x26; ++i )\n{\nif ( a3[i + 79] && (*(_DWORD *)a3[i + 79] == 1 || *(_DWORD *)a3[i + 79] == 5 || *(_DWORD *)a3[i + 79] == 4) )\n{\nv12 = *(_DWORD *)a3[i + 79];\nif ( v12 == 5 )\n{\nv14 = (_QWORD *)(*(_QWORD *)(a4 + 16) + 8LL * i);\n*v14 = sub_4BAF72(4LL, i);\nif ( !*v14 )\nreturn 0xFFFFFFFFLL;\n*(_DWORD *)(a3[i + 79] + 52LL) = i;\n}\nelse if ( v12 <= 5 )\n{\nif ( v12 == 1 )\n{\nv13 = (_QWORD *)(*(_QWORD *)(a4 + 16) + 8LL * i);\n*v13 = sub_4BAF72(4LL, i);\nif ( !*v13 )\nreturn 0xFFFFFFFFLL;\n*(_DWORD *)(a3[i + 79] + 48LL) = i;\n}\nelse if ( v12 == 4 )\n{\nv29 = *(_QWORD *)(a3[i + 79] + 72LL);\nif ( *(_DWORD *)v29 == 1 )\n{\nv28 = *(_DWORD *)(v29 + 48);\nv15 = (_QWORD *)(*(_QWORD *)(a4 + 16) + 8LL * (int)v28);\n*v15 = sub_4BAF72(4LL, v28);\nif ( !*v15 )\nreturn 0xFFFFFFFFLL;\n*(_DWORD *)(v29 + 48) = v28;\n*(_QWORD *)(v29 + 8) = *(_QWORD *)(*(_QWORD *)(a4 + 16) + 8LL * (int)v28);\n}\nv29 = *(_QWORD *)(a3[i + 79] + 80LL);\nif ( *(_DWORD *)v29 == 1 )\n{\nv27 = *(_DWORD *)(v29 + 48);\nif ( !*(_QWORD *)(*(_QWORD *)(a4 + 16) + 8LL * (int)v27) )\n{\nv16 = (_QWORD *)(*(_QWORD *)(a4 + 16) + 8LL * (int)v27);\n*v16 = sub_4BAF72(4LL, v27);\nif ( !*v16 )\nreturn 0xFFFFFFFFLL;\n}\n*(_DWORD *)(v29 + 48) = v27;\n*(_QWORD *)(v29 + 8) = *(_QWORD *)(*(_QWORD *)(a4 + 16) + 8LL * (int)v27);\n}\n}\n}\n}\nelse if ( i != 37 || a3[116] )\n{\n*(_QWORD *)(*(_QWORD *)(a4 + 16) + 8LL * i) = **(_QWORD **)(a4 + 16);\n}\nif ( a3[i + 79] )\n*(_QWORD *)(a3[i + 79] + 8LL) = *(_QWORD *)(8LL * i + *(_QWORD *)(a4 + 16));\n}\nif ( *(_QWORD *)(a2 + 592) )\n{\n*(_DWORD *)(*(_QWORD *)a4 + 40LL) = 47;\nfor ( j = 0; j < *(_DWORD *)(a4 + 196); ++j )\n{\nv17 = (_QWORD *)(*(_QWORD *)(a4 + 200) + 8LL * j);\nv18 = *(_QWORD *)(a4 + 16);\nv19 = *(_DWORD *)(*(_QWORD *)a4 + 40LL);\n*(_DWORD *)(*(_QWORD *)a4 + 40LL) = v19 + 1;\n*(_QWORD *)(v18 + 8LL * v19) = *v17;\n}\n}\nv26 = *(_QWORD *)(*(_QWORD *)a4 + 8LL);\nfor ( k = 0; k < *(_DWORD *)(*(_QWORD *)a4 + 24LL); ++k )\n{\nv30 = *(_QWORD *)(a4 + 48) + 136LL * k;\nif ( (unsigned int)sub_4AC615(a1, a2, a3, (_QWORD *)a4, v30, &v26) == -1 )\nreturn 0xFFFFFFFFLL;\n}\n*(_DWORD *)(**(_QWORD **)(a4 + 16) + 20LL) = (*(_DWORD *)(**(_QWORD **)(a4 + 16) + 56LL) <= 6)\n+ (unsigned int)*(_QWORD *)(**(_QWORD **)(a4 + 16) + 48LL);\n*(_DWORD *)(**(_QWORD **)(a4 + 16) + 16LL) = *(_DWORD *)(**(_QWORD **)(a4 + 16) + 20LL);\n*(_QWORD *)(*(_QWORD *)(a4 + 16) + 104LL) = *(_QWORD *)(a4 + 128);\n*(_QWORD *)(a4 + 128) = 0LL;\n*(_QWORD *)(*(_QWORD *)(a4 + 16) + 96LL) = *(_QWORD *)(a4 + 120);\n*(_QWORD *)(a4 + 120) = 0LL;\n*(_QWORD *)(*(_QWORD *)(a4 + 16) + 88LL) = *(_QWORD *)(a4 + 104);\n*(_QWORD *)(a4 + 104) = 0LL;\n*(_QWORD *)(*(_QWORD *)(a4 + 16) + 112LL) = *(_QWORD *)(a4 + 136);\n*(_QWORD *)(a4 + 136) = 0LL;\nfor ( i = 1; i < *(_DWORD *)(*(_QWORD *)a4 + 40LL); ++i )\n{\nif ( *(_QWORD *)(*(_QWORD *)(a4 + 16) + 8LL * i)\n&& *(_QWORD *)(*(_QWORD *)(a4 + 16) + 8LL * i) != **(_QWORD **)(a4 + 16)\n&& !*(_DWORD *)(*(_QWORD *)(*(_QWORD *)(a4 + 16) + 8LL * i) + 20LL) )\n{\nv20 = *(_QWORD *)(*(_QWORD *)(a4 + 16) + 8LL * i);\n*(_DWORD *)(v20 + 20) = *(_QWORD *)(v20 + 48);\n*(_DWORD *)(*(_QWORD *)(*(_QWORD *)(a4 + 16) + 8LL * i) + 16LL) = *(_DWORD *)(v20 + 20);\n}\n}\nif ( (unsigned int)sub_4ACE5B(a1, a2, a4) == -1 )\nreturn 0xFFFFFFFFLL;\nv21 = *(_QWORD *)a4;\n*(_QWORD *)(v21 + 48) = realloc(*(void **)(*(_QWORD *)a4 + 48LL), 4LL * *(int *)(*(_QWORD *)a4 + 40LL));\nif ( !*(_QWORD *)(*(_QWORD *)a4 + 48LL) )\nreturn 0xFFFFFFFFLL;\nv34 = 1;\nfor ( l = 1; l < *(_DWORD *)(*(_QWORD *)a4 + 40LL); ++l )\n{\nif ( *(_QWORD *)(*(_QWORD *)(a4 + 16) + 8LL * l)\n&& *(_QWORD *)(*(_QWORD *)(a4 + 16) + 8LL * l) != **(_QWORD **)(a4 + 16) )\n{\nif ( *(_DWORD *)(*(_QWORD *)(*(_QWORD *)(a4 + 16) + 8LL * l) + 20LL) )\n{\n*(_QWORD *)(8LL * v34 + *(_QWORD *)(a4 + 16)) = *(_QWORD *)(*(_QWORD *)(a4 + 16) + 8LL * l);\n*(_DWORD *)(*(_QWORD *)(*(_QWORD *)a4 + 48LL) + 4LL * v34++ - 4) = *(_DWORD *)(*(_QWORD *)(*(_QWORD *)(a4 + 16)\n+ 8LL * l)\n+ 12LL);\n}\nelse\n{\nsub_4BB8F5(*(_QWORD *)(*(_QWORD *)(a4 + 16) + 8LL * l));\n*(_QWORD *)(*(_QWORD *)(a4 + 16) + 8LL * l) = 0LL;\n}\n}\n}\n*(_DWORD *)(*(_QWORD *)a4 + 44LL) = v34 - 1;\n*(_DWORD *)(*(_QWORD *)a4 + 40LL) = v34;\n*(_QWORD *)(a4 + 8) = sub_4AC363(a1, a4);\nif ( !*(_QWORD *)(a4 + 8) )\nreturn 0xFFFFFFFFLL;\nif ( v33 )\nreturn 0xFFFFFFFFLL;\nreturn 0LL;\n} +int __fastcall sub_405F0D(__int64 *a1)\n{\n__int64 v2; // [rsp+20h] [rbp-10h]\n__int64 v3; // [rsp+28h] [rbp-8h]\n\nv2 = qword_413508;\nwhile ( 1 )\n{\nsub_404D9E();\nsub_4049C7();\nif ( !a1[2] )\nbreak;\nv3 = a1[2];\nwhile ( v3 && *(_BYTE *)(v3 + 19) < *(_BYTE *)(v2 + 19) )\n{\n*(_BYTE *)(v3 + 19) = *(_BYTE *)(v2 + 19);\nif ( (*(_BYTE *)(v3 + 16) & 0xF) == 4 || (*(_BYTE *)(v3 + 16) & 0xF) == 6 )\n{\n*(_QWORD *)(v3 + 32) = 1LL;\nif ( *(__int64 **)(v3 + 24) == &qword_413520 )\nsub_4053C3((__int64 **)v3);\nsub_404C23(v3);\nv3 = 0LL;\n}\nelse\n{\nv3 = sub_405DD5(v3);\n}\n}\nif ( *(char *)(v2 + 16) < 0 )\nsub_4053C3((__int64 **)v2);\nsub_404B2E(v2, a1);\n*(_BYTE *)(v2 + 16) = *(_BYTE *)(v2 + 16) & 0xF0 | 2;\nsub_4049D2();\nsub_4050D5(0);\n}\na1[2] = v2;\na1[3] = *(_QWORD *)(v2 + 1008);\n*(_QWORD *)(v2 + 1008) = a1;\nsub_4049D2();\nreturn sub_404DCB();\n} +__int64 __fastcall sub_40D1A6(_BYTE *a1, unsigned int a2)\n{\n_BYTE *v2; // rax\nunsigned int i; // [rsp+18h] [rbp-4h]\n\nfor ( i = 5381; ; i = 33 * i + (char)*v2 )\n{\nv2 = a1++;\nif ( !*v2 )\nbreak;\n}\nreturn i % a2;\n} +__int64 __fastcall sub_4188FF(int a1, int a2, int a3, __int64 (__fastcall *a4)(char *, __int64, __int64), __int64 a5, __int64 a6)\n{\nint v6; // eax\nunsigned int v8; // eax\nchar buf[4096]; // [rsp+30h] [rbp-1020h] BYREF\nint *v14; // [rsp+1030h] [rbp-20h]\nunsigned int v15; // [rsp+1038h] [rbp-18h]\nunsigned int v16; // [rsp+103Ch] [rbp-14h]\nchar *i; // [rsp+1040h] [rbp-10h]\nchar v18; // [rsp+104Fh] [rbp-1h]\n\nv18 = 1;\nwhile ( v18 )\n{\nv18 = 0;\nv16 = recv(a1, buf, 0x1000uLL, 0);\nif ( (v16 & 0x80000000) != 0 )\nreturn (unsigned int)-*__errno_location();\nif ( !v16 )\nbreak;\nfor ( i = buf; (int)v16 > 15 && *(_DWORD *)i > 0xFu && *(_DWORD *)i <= v16; i += (*(_DWORD *)i + 3) & 0xFFFFFFFC )\n{\nif ( a2 != *((_DWORD *)i + 3) )\nreturn (unsigned int)-4011;\nif ( *((_DWORD *)i + 2) != a3 )\nreturn (unsigned int)-4012;\nif ( (*((_WORD *)i + 3) & 2) != 0 )\nv18 = 1;\nv6 = *((unsigned __int16 *)i + 2);\nif ( v6 == 2 )\n{\nv14 = (int *)(i + 16);\nif ( *((_DWORD *)i + 4) )\n{\nv15 = *v14;\nsub_412E6F((__int64)i);\nreturn v15;\n}\n}\nelse\n{\nif ( v6 == 3 )\nreturn 0LL;\nif ( a4 )\n{\nv8 = a4(i, a5, a6);\nv15 = v8;\nif ( v8 )\nreturn v15;\n}\n}\nv16 -= (*(_DWORD *)i + 3) & 0xFFFFFFFC;\n}\n}\nreturn 0;\n} +void *__fastcall sub_45749C(unsigned __int64 a1, size_t a2)\n{\n void *v3; // [rsp+18h] [rbp-8h]\n\n if ( (a1 > 0xFFFFFFFF || a2 > 0xFFFFFFFF) && a2 && a1 >= 0xFFFFFFFFFFFFFFFFLL / a2 )\n {\n fwrite(\"[-] alloc too large, aborting\\n\", 1uLL, 0x1EuLL, stderr);\n abort();\n }\n v3 = calloc(a1, a2);\n if ( !v3 && a2 * a1 )\n {\n fwrite(\"[-] out of memory, aborting\\n\", 1uLL, 0x1CuLL, stderr);\n abort();\n }\n return v3;\n} +__int64 __fastcall sub_4388DA(__int64 a1, __int64 a2, __int64 a3)\n{\nreturn sub_438672(a1, a2, a3, 0LL, 0LL);\n} +_BOOL8 __fastcall sub_418FC4(int a1)\n{\n return a1 == 2 || a1 == 3;\n} +__int64 __fastcall sub_4017CE(__int64 a1, __int64 a2, unsigned __int64 a3)\n{\nunsigned __int64 i; // [rsp+28h] [rbp-8h]\n\nfor ( i = 0LL; i < a3; ++i )\n*(_BYTE *)(a2 + i) = rand();\nreturn 0LL;\n} +__int64 __fastcall sub_434C14(_QWORD *a1)\n{\n if ( !*a1 )\n return 0LL;\n if ( a1[9] )\n return a1[9];\n return *(unsigned int *)(*a1 + 24LL);\n} +__int64 __fastcall sub_4052A4(__int64 a1)\n{\nint v2; // [rsp+Ch] [rbp-Ch]\nint v3; // [rsp+Ch] [rbp-Ch]\nint v4; // [rsp+Ch] [rbp-Ch]\n__int64 v5; // [rsp+10h] [rbp-8h]\n\nif ( !*(_QWORD *)(a1 + 80) || !*(_QWORD *)(a1 + 56) || !*(_QWORD *)(a1 + 168) )\nreturn 4294967274LL;\nv5 = 64LL;\nif ( (*(_DWORD *)(a1 + 192) & 0x400) != 0 )\nv5 = 128LL;\nv2 = sub_404D24(*(_QWORD *)(a1 + 56), *(unsigned int *)(a1 + 92) * v5, 10);\nif ( v2 < 0 )\nreturn (unsigned int)v2;\nv3 = sub_404D24(*(_QWORD *)(a1 + 80), *(_QWORD *)(a1 + 72), 10);\nif ( v3 < 0 )\nreturn (unsigned int)v3;\nif ( *(_QWORD *)(a1 + 168) == *(_QWORD *)(a1 + 80) )\nreturn 0LL;\nv4 = sub_404D24(*(_QWORD *)(a1 + 168), *(_QWORD *)(a1 + 160), 10);\nif ( v4 >= 0 )\nreturn 0LL;\nreturn (unsigned int)v4;\n} +__int64 __fastcall sub_40184C(unsigned int a1)\n{\nunsigned int *v1; // rdx\n__int64 result; // rax\n\nv1 = &dword_406580[16 * (__int64)(int)sub_4014EA()];\nresult = a1;\n*v1 = a1;\nreturn result;\n} +__int64 __fastcall sub_405396(unsigned int a1)\n{\nif ( !(unsigned int)sub_40519B(a1) )\nreturn 0LL;\nsub_404E7B(a1);\nreturn 1LL;\n} +__int64 __fastcall sub_4324D2(__int64 a1, __int64 a2)\n{\nchar v3[16]; // [rsp+10h] [rbp-10h] BYREF\n\nsub_44B17E(v3, a1);\nreturn sub_4325EA(v3, a2);\n} +__int64 __fastcall sub_44403B(__int64 a1)\n{\n__int64 result; // rax\n__int64 v2; // rax\n__int64 v3[2]; // [rsp+10h] [rbp-40h] BYREF\n_QWORD *v4; // [rsp+20h] [rbp-30h] BYREF\n__int64 v5; // [rsp+28h] [rbp-28h] BYREF\n__int64 v6; // [rsp+30h] [rbp-20h]\nunsigned __int64 v7; // [rsp+38h] [rbp-18h]\n__int64 v8; // [rsp+40h] [rbp-10h]\nunsigned __int64 i; // [rsp+48h] [rbp-8h]\n\nif ( sub_4411B4(a1) == 1 )\n{\nv6 = sub_4412C5(a1, 0LL);\nresult = sub_448C68(v6);\n}\nelse\n{\n*(_QWORD *)(sub_441529(a1) + 8) = 0LL;\nv7 = sub_4411B4(a1);\nv4 = 0LL;\nsub_44321F(a1, v3);\nwhile ( 1 )\n{\nresult = sub_443245(v3, &v5, &v4);\nif ( !(_DWORD)result )\nbreak;\nv8 = 0LL;\nfor ( i = 0LL; i < v7; ++i )\n{\nv2 = sub_41675D(*(_QWORD *)(v5 + 8 * i));\nv8 += v2;\n}\n*v4 = v8;\nsub_441705(a1, v8);\n}\n}\nreturn result;\n} +int sub_406A52()\n{\n double v0; // xmm0_8\n long double v1; // fst7\n int result; // eax\n unsigned __int64 v3; // [rsp+18h] [rbp-48h]\n float v4; // [rsp+4Ch] [rbp-14h]\n unsigned __int64 v5; // [rsp+50h] [rbp-10h]\n\n printf(\"la=%Ld ula=%Lu\\n\", 0x1234567812345LL, 0xE468ACF000000000LL);\n printf(\"lltof: %f %f %Lf\\n\", (float)1736516421, (double)1736516421, (long double)0x1234567812345LL);\n printf(\n \"ftoll: %Ld %Ld %Ld\\n\",\n (unsigned int)(int)(float)1736516421,\n (unsigned int)(int)(double)1736516421,\n (__int64)(long double)0x1234567812345LL);\n v4 = (float)0 + (float)0;\n v0 = (double)0 + (double)0;\n v1 = (long double)0xE468ACF000000000LL;\n printf(\"ulltof: %f %f %Lf\\n\", v4, v0, v1);\n if ( v4 >= 9.223372e18 )\n v5 = (unsigned int)(int)(float)(v4 - 9.223372e18) ^ 0x8000000000000000LL;\n else\n v5 = (unsigned int)(int)v4;\n if ( v0 >= 9.223372036854776e18 )\n v3 = (unsigned int)(int)(v0 - 9.223372036854776e18) ^ 0x8000000000000000LL;\n else\n v3 = (unsigned int)(int)v0;\n if ( v1 >= 9.223372036854775808e18 )\n result = printf(\"ftoull: %Lu %Lu %Lu\\n\", v5, v3, (__int64)(v1 - 9.223372036854775808e18) ^ 0x8000000000000000LL);\n else\n result = printf(\"ftoull: %Lu %Lu %Lu\\n\", v5, v3, (__int64)v1);\n return result;\n} +__int64 __fastcall sub_42943F(__int64 a1, unsigned int a2, unsigned __int16 a3, void *a4, size_t a5)\n{\n__int64 result; // rax\n\nif ( a3 == 516 )\nreturn sub_429174(a1, a4, a5);\nif ( a3 > 0x204u )\ngoto LABEL_9;\nif ( a3 == 257 )\nreturn sub_42920A(a1, a2, a4, a5);\nif ( a3 == 513 )\nresult = sub_4293A8(a1, a4, a5);\nelse\nLABEL_9:\nresult = 4294967161LL;\nreturn result;\n} +__int64 __fastcall sub_440FB1(__int64 a1, _QWORD *a2, char *a3, char *a4, void (__fastcall *a5)(__int64, unsigned __int64, unsigned __int64), char *a6)\n{\n unsigned int v11; // [rsp+3Ch] [rbp-4h]\n\n v11 = sub_440D38(a1, a3, a5, (__int64)a6);\n if ( !v11 )\n v11 = sub_440683(a1, a4, a3, a2, a5, a6);\n return v11;\n} +__int64 __fastcall sub_41EFC6(__int64 a1, int a2, int *a3, int a4, __int64 a5, int *a6, int a7, unsigned int a8)\n{\nreturn sub_41EEC2(a1, a2, 0LL, a3, a4, a5, a6, a7, a8);\n} +__int64 __fastcall sub_402A62(_QWORD *a1)\n{\n__int64 result; // rax\nint v2; // [rsp+14h] [rbp-1Ch]\nvoid *dest; // [rsp+18h] [rbp-18h]\n_QWORD *src; // [rsp+20h] [rbp-10h]\n\nresult = *a1 & 1LL;\nif ( !result )\n{\nresult = qword_4080A8;\nif ( *a1 >= (unsigned __int64)qword_4080A8 )\n{\nresult = qword_4080B0;\nif ( *a1 < (unsigned __int64)qword_4080B0 )\n{\nsrc = (_QWORD *)*a1;\nif ( *(_DWORD *)*a1 == -1 )\n{\nresult = (__int64)a1;\n*a1 = src[1];\n}\nelse\n{\ndest = (void *)qword_408098;\nv2 = sub_40296A(*(_DWORD *)src);\nqword_408098 += v2;\nmemcpy(dest, src, v2);\n*(_DWORD *)src = -1;\nsrc[1] = dest;\nresult = (__int64)a1;\n*a1 = dest;\n}\n}\n}\n}\nreturn result;\n} +__int64 __fastcall sub_40438E(__int64 a1, __int64 a2, unsigned int a3, int a4)\n{\nunsigned int i; // [rsp+20h] [rbp-8h]\nunsigned int v6; // [rsp+24h] [rbp-4h]\n\nv6 = 0;\nif ( a3 != a4 )\nreturn 0xFFFFFFFFLL;\nfor ( i = 0; i < a3; ++i )\n{\nif ( *(_BYTE *)(i + a1) != *(_BYTE *)(i + a2) )\nreturn (unsigned int)-1;\n}\nreturn v6;\n} +_QWORD *__fastcall gt_string_reverse_dup(__int64 a1)\n{\n__int64 v1; // rax\n_QWORD *v3; // [rsp+18h] [rbp-8h]\n\nv1 = gt_string_get_length(a1);\nv3 = gt_string_new(v1 + 1);\ngt_string_reverse_copy(v3, a1);\nreturn v3;\n} +int __fastcall sub_40F6DC(__int64 a1)\n{\nreturn close(*(_DWORD *)(a1 + 8));\n} +__int64 __fastcall sub_40EBB9(__int64 a1)\n{\n__int64 v2; // [rsp+10h] [rbp-8h]\n\nif ( !*(_QWORD *)(a1 + 8) )\nreturn 0LL;\nv2 = **(_QWORD **)(a1 + 8);\nif ( *(_QWORD *)a1 == *(_QWORD *)(a1 + 8) )\n{\n*(_QWORD *)(a1 + 8) = 0LL;\n*(_QWORD *)a1 = *(_QWORD *)(a1 + 8);\n}\nelse\n{\n*(_QWORD *)(a1 + 8) = *(_QWORD *)(*(_QWORD *)(a1 + 8) + 32LL);\n*(_QWORD *)(*(_QWORD *)(a1 + 8) + 24LL) = 0LL;\n}\n--*(_DWORD *)(a1 + 16);\nreturn v2;\n} +__int64 __fastcall sub_401839(unsigned int a1)\n{\nunsigned int *v1; // rdx\n__int64 result; // rax\n\nv1 = &dword_405580[16 * (__int64)(int)sub_4014D7()];\nresult = a1;\n*v1 = a1;\nreturn result;\n} +__int64 __fastcall sub_4369A4(__int64 a1, __int64 a2, __int64 a3, __int64 a4)\n{\n return sub_43828D(a1, a3, a4);\n} +__int64 __fastcall sub_42C559(__int64 a1, unsigned __int8 *a2, int a3)\n{\nint v4; // eax\nunsigned int v7; // [rsp+2Ch] [rbp-4h] BYREF\n\nv7 = -1;\nwhile ( 1 )\n{\nv4 = a3--;\nif ( v4 < 0 )\nbreak;\nv7 = *a2;\nif ( (int)v7 > 127 )\n{\na2 += (int)sub_4342DE(&v7, a2);\n}\nelse\n{\nif ( !v7 )\nreturn 0xFFFFFFFFLL;\n++a2;\n}\n}\nreturn v7;\n} +__int64 __fastcall sub_42BF51(unsigned int *a1, int *a2, int *a3, char *a4, const void *a5, unsigned __int64 a6, __int64 a7, __int64 a8)\n{\nreturn sub_42BB02(a1, a2, a3, a4, a5, a6, a7, a8, a7, a8);\n} +__int64 __fastcall sub_47084E(__int64 a1, __int64 a2, __int64 a3)\n{\nchar i; // al\n__int64 *v6; // [rsp+28h] [rbp-8h]\n\nv6 = (__int64 *)sub_47050F(a1);\nfor ( i = sub_471023(v6, a2, a3); i != 1; i = sub_471023(v6, a2, a3) )\n{\nif ( (unsigned __int64)(*(_QWORD *)(a1 + 16) - 1LL) <= *(_QWORD *)(a1 + 24) )\nreturn 0LL;\nsub_47117A(v6);\n++*(_QWORD *)(a1 + 24);\nv6 = (__int64 *)sub_47050F(a1);\n}\nsub_4711B6(v6, a2);\nsub_4711B6(v6, a3);\nsub_417377(a2, *v6);\nsub_417377(a3, *v6);\nreturn 1LL;\n} +__int64 __fastcall sub_4065CE(__int64 a1, __int64 a2)\n{\n__int64 result; // rax\nint v3; // [rsp+24h] [rbp-3Ch]\nunsigned int *v4; // [rsp+28h] [rbp-38h]\n__int64 v5; // [rsp+30h] [rbp-30h]\nbool v6; // [rsp+3Eh] [rbp-22h]\nbool v7; // [rsp+3Fh] [rbp-21h]\n_BYTE *j; // [rsp+40h] [rbp-20h]\n_DWORD *v9; // [rsp+48h] [rbp-18h]\nunsigned int *v10; // [rsp+50h] [rbp-10h]\nint k; // [rsp+58h] [rbp-8h]\nunsigned int i; // [rsp+5Ch] [rbp-4h]\n\nv7 = (*(_BYTE *)(a1 + 376) & 8) != 0;\nv6 = (*(_BYTE *)(a1 + 376) & 4) != 0;\nv5 = *(_QWORD *)(a1 + 344);\nresult = v5;\nif ( v5 && ((*(_BYTE *)(a1 + 376) & 4) == 0 || (*(_BYTE *)(a1 + 376) & 8) == 0) )\n{\nfor ( i = 1; ; ++i )\n{\nresult = sub_41377B(v5, a2);\nif ( (unsigned int)result < i )\nbreak;\na2 = i;\nv4 = (unsigned int *)sub_41378C(v5, i);\nif ( !v7 && sub_4034C0((__int64)v4) )\n{\nv4[1] = 0x1000000;\nv4[2] = 1;\nv4[3] = 8;\n}\nelse if ( !v7 && sub_4034E1((__int64)v4) )\n{\nv10 = (unsigned int *)sub_403621((__int64)v4);\nv9 = (_DWORD *)sub_40353F((__int64)v4);\na2 = *v4;\nfor ( j = (_BYTE *)sub_4145AA(v5, a2); *j; ++j )\n{\nif ( *j == 46 )\n*j = 95;\n}\nv3 = (unsigned __int16)sub_403353((__int64)v4);\nv4[1] = v3 | 0x4000000;\nfor ( k = 0; k < v3; ++k )\n{\nv9[2] = 8 * v10[1];\nv9[1] = *v10;\na2 = *v10;\n*v9 = *(_DWORD *)sub_41378C(v5, a2);\nv10 += 3;\nv9 += 3;\n}\n}\nelse if ( !v6 && sub_40349F((__int64)v4) )\n{\nv4[1] = (unsigned __int16)sub_403353((__int64)v4) | 0x6000000;\nv4[2] = 4;\n}\nelse if ( !v6 && sub_40347E((__int64)v4) )\n{\nv4[1] = 0x8000000;\n}\n}\n}\nreturn result;\n} +__int64 __fastcall sub_42880E(__int64 a1, unsigned __int64 a2)\n{\n__int64 result; // rax\n\nif ( a2 > 7 )\nresult = sub_43E74A(a1);\nif ( a2 > 0xF )\nresult = sub_43E74A(a1 + 8);\nif ( a2 > 0x17 )\nresult = sub_43E74A(a1 + 16);\nreturn result;\n} +char *__fastcall sub_4084D7(int a1, char *a2, size_t a3)\n{\n return strerror_r(a1, a2, a3);\n} +__int64 __fastcall sub_47042A(__int64 *a1, __int64 *a2, __int64 a3, __int64 a4, __int64 *a5)\n{\nsub_414856(a1, *a5, 0LL, (__int64)(a5 + 4186), a5[1], a5[4203]);\nsub_414856(a2, *a5, 0LL, (__int64)(a5 + 4186), 0LL, a5[4203]);\nsub_4147DF(a1, a3);\nreturn sub_4147DF(a2, a4);\n} +void __fastcall sub_4DD0F8(_QWORD *a1)\n{\nif ( a1 )\n{\nif ( a1[9] )\n(*(void (__fastcall **)(_QWORD))(a1[9] + 16LL))(a1[9]);\nif ( a1[10] )\n(*(void (__fastcall **)(_QWORD))(a1[10] + 16LL))(a1[10]);\nfree(a1);\n}\n} +__int64 __fastcall sub_441CF7(__int64 a1)\n{\n__int64 result; // rax\nint i; // [rsp+14h] [rbp-4h]\n\nfor ( i = 0; i <= 7; ++i )\n{\nresult = (unsigned __int8)byte_478000[*(_BYTE *)(i + a1) >> 1];\n*(_BYTE *)(i + a1) = result;\n}\nreturn result;\n} +__int64 __fastcall sub_40C43B(__int64 a1, __int64 a2, int a3)\n{\n__int64 result; // rax\n\n*(_QWORD *)(a1 + 4656) = a2;\nresult = a1;\n*(_DWORD *)(a1 + 4768) = a3;\nreturn result;\n} +void *__fastcall sub_414BAF(size_t a1, size_t a2)\n{\n __int64 v2; // rdx\n __int64 v3; // rcx\n __int64 v4; // r8\n __int64 v5; // r9\n void *v7; // [rsp+18h] [rbp-8h]\n\n v7 = calloc(a1, a2);\n if ( !v7 )\n {\n sub_40B47F(3, \"failed to allocate memory\", v2, v3, v4, v5, a2, a1);\n exit(1);\n }\n return v7;\n} +void __fastcall sub_4115EA(char *a1, int a2, __int64 a3)\n{\nint v3; // eax\nint v5; // [rsp+14h] [rbp-1Ch]\nchar *src; // [rsp+18h] [rbp-18h]\nint v7; // [rsp+2Ch] [rbp-4h]\nint v8; // [rsp+2Ch] [rbp-4h]\n\nsrc = a1;\nv5 = a2;\nif ( a2 == 1 )\n{\nsub_4116E1((unsigned int)*a1, a3);\n}\nelse\n{\nwhile ( v5 > 0 )\n{\nif ( *(_QWORD *)(a3 + 16) )\nv7 = *(_DWORD *)(a3 + 16) - *(_DWORD *)a3;\nelse\nv7 = v5;\nif ( v7 > 0 )\n{\nv3 = v7;\nif ( v5 <= v7 )\nv3 = v5;\nv8 = v3;\nmemmove(*(void **)a3, src, v3);\n*(_QWORD *)a3 += v8;\nsrc += v8;\nv5 -= v8;\n}\nelse\n{\nif ( !*(_QWORD *)(a3 + 24) )\n{\n*(_DWORD *)(a3 + 32) += v5;\nreturn;\n}\nsub_40FA30(a3);\n}\n}\n}\n} +__int64 __fastcall sub_401BE2(__int64 a1, char a2, unsigned __int64 a3)\n{\nunsigned __int64 i; // [rsp+20h] [rbp-8h]\n\nfor ( i = 0LL; i < a3; ++i )\n{\nif ( a2 != *(_BYTE *)(a1 + i) )\nreturn 0LL;\n}\nreturn 1LL;\n} +__int64 __fastcall sub_40D428(unsigned int a1)\n{\nreturn sub_40D449(a1, &unk_414480, 256LL);\n} +_QWORD *__fastcall sub_40222A(_QWORD *a1)\n{\n_QWORD *result; // rax\n\nif ( a1 )\n{\nmemset(a1 + 2, 0, 0xB0uLL);\nmemset(a1, 0, 0x10uLL);\nresult = a1;\na1[24] = 0LL;\n}\nreturn result;\n} +__int64 __fastcall sub_4408C0(__int64 a1, __int64 a2, unsigned int a3)\n{\n return sub_4292A2(a1, a2, a3);\n} +__int64 __fastcall sub_4291BB(unsigned int a1, unsigned int a2)\n{\n if ( a1 == a2 )\n return a1;\n if ( !a1 )\n return a2;\n if ( !a2 )\n return a1;\n if ( a1 == 1 || a2 == 1 )\n return 1LL;\n if ( a1 == 2 || a2 == 2 )\n return 2LL;\n if ( a1 == 4 || a2 == 4 )\n return 1LL;\n return 3LL;\n} +__int64 __fastcall sub_41CA94(__int64 a1, __int64 a2)\n{\ndouble v3; // xmm0_8\n\nif ( !*(_DWORD *)a1 )\nreturn 0xFFFFFFFFLL;\n*(_QWORD *)a2 = *(_QWORD *)(a1 + 8);\n*(_QWORD *)(a2 + 8) = *(_QWORD *)(a1 + 16);\nif ( *(double *)(a1 + 16) <= -*(double *)(a1 + 8) )\nv3 = -*(double *)(a1 + 8);\nelse\nv3 = *(double *)(a1 + 16);\n*(double *)(a2 + 16) = v3;\n*(_QWORD *)(a2 + 24) = *(_QWORD *)(a1 + 24);\n*(double *)(a2 + 32) = sqrt(*(double *)(a1 + 32) / (double)*(int *)a1);\n*(double *)(a2 + 40) = sqrt(*(double *)(a1 + 40) / (double)*(int *)a1);\nreturn 0LL;\n} +__int64 __fastcall sub_420208(__int64 a1, void *a2)\n{\nunsigned int v3; // [rsp+2Ch] [rbp-4h]\n\nv3 = 0;\nif ( *(_DWORD *)(a1 + 80) )\n{\nv3 = 16;\nmemcpy(a2, (const void *)(a1 + 96), 0x10uLL);\n}\nreturn v3;\n} +__int64 __fastcall sub_407EC7(_DWORD *a1, const void *a2, size_t a3)\n{\n__int64 v3; // rax\nvoid (__fastcall __noreturn *v4)(); // rbx\nvoid (__fastcall __noreturn *v5)(); // rbx\nvoid (__fastcall __noreturn *v6)(); // rbx\nvoid (__fastcall __noreturn *v7)(); // rbx\nvoid (__fastcall __noreturn *v8)(); // rbx\n\nsub_406E82((__int64)a1, 1);\nv3 = qword_868B78;\nv4 = off_818428[0];\n*(void (__fastcall __noreturn **)())qword_868B78 = off_818420[0];\n*(_QWORD *)(v3 + 8) = v4;\nv5 = off_818438[0];\n*(void (__fastcall __noreturn **)())(v3 + 16) = off_818430[0];\n*(_QWORD *)(v3 + 24) = v5;\nv6 = off_818448[0];\n*(void (__fastcall __noreturn **)())(v3 + 32) = off_818440[0];\n*(_QWORD *)(v3 + 40) = v6;\nv7 = off_818458[0];\n*(void (__fastcall __noreturn **)())(v3 + 48) = off_818450[0];\n*(_QWORD *)(v3 + 56) = v7;\nv8 = off_818468;\n*(void (__fastcall __noreturn **)())(v3 + 64) = off_818460[0];\n*(_QWORD *)(v3 + 72) = v8;\n*(_QWORD *)(v3 + 80) = qword_818470;\nreturn sub_4073B6(a1, a2, a3);\n} +__int64 __fastcall sub_4800D1(__int64 a1, unsigned __int64 a2, __int64 a3, __int64 a4)\n{\nunsigned int v7; // [rsp+2Ch] [rbp-4h]\nunsigned int v8; // [rsp+2Ch] [rbp-4h]\nunsigned int v9; // [rsp+2Ch] [rbp-4h]\nunsigned int v10; // [rsp+2Ch] [rbp-4h]\nunsigned int v11; // [rsp+2Ch] [rbp-4h]\n\nif ( *(_DWORD *)(a1 + 232) != 1 && *(_DWORD *)(a1 + 232) != 2 )\nreturn 4294967212LL;\nif ( *(_DWORD *)(a1 + 232) == 1 )\n{\n*(_DWORD *)(a1 + 232) = 2;\nv7 = sub_47FDA3(a1);\nif ( v7 )\nreturn v7;\n}\n*(_QWORD *)(a1 + 224) += a2;\nif ( *(_DWORD *)(a1 + 236) )\n{\nv10 = sub_481398(a1 + 136, a3, a2);\nif ( v10 )\nreturn v10;\nv11 = sub_47F7D0(a1, a2, a3, a4);\nif ( v11 )\nreturn v11;\n}\nelse\n{\nv8 = sub_47F7D0(a1, a2, a3, a4);\nif ( v8 )\nreturn v8;\nv9 = sub_481398(a1 + 136, a4, a2);\nif ( v9 )\nreturn v9;\n}\nreturn 0LL;\n} +__int64 __fastcall sub_408E19(__int64 a1, __int64 a2, __int64 a3, __int64 a4)\n{\n__int64 v7; // [rsp+28h] [rbp-8h]\n\nv7 = sub_40A9D9();\nsub_40AD12(a1, a2, a3, a4, v7);\nreturn sub_40AA9A(v7);\n} +unsigned __int64 __fastcall sub_40A903(unsigned __int64 *a1)\n{\n unsigned __int64 result; // rax\n\n result = *a1;\n if ( *a1 )\n {\n sub_4046DE(*a1);\n result = (unsigned __int64)a1;\n *a1 = 0LL;\n }\n return result;\n} +void __fastcall sub_40C40B(unsigned __int64 *a1, __int64 a2)\n{\n unsigned __int64 v2; // [rsp+18h] [rbp-18h]\n unsigned __int64 *i; // [rsp+20h] [rbp-10h]\n unsigned __int64 *v4; // [rsp+28h] [rbp-8h]\n\n if ( a2 )\n {\n v4 = a1;\n for ( i = &a1[a2 - 1]; v4 <= i; --i )\n {\n v2 = sub_40C3FA(*v4);\n *v4 = sub_40C3FA(*i);\n *i = v2;\n ++v4;\n }\n }\n} +__int64 __fastcall pqsignal(int a1, void (*a2)(int))\n{\n__int64 result; // rax\nstruct sigaction v3; // [rsp+10h] [rbp-140h] BYREF\nstruct sigaction v4; // [rsp+B0h] [rbp-A0h] BYREF\n\nv4.sa_handler = a2;\nsigemptyset(&v4.sa_mask);\nv4.sa_flags = 0x10000000;\nif ( a1 == 17 )\nv4.sa_flags |= 1u;\nif ( sigaction(a1, &v4, &v3) >= 0 )\nresult = (__int64)v3.sa_handler;\nelse\nresult = -1LL;\nreturn result;\n} +void *__fastcall sub_408D47(__int64 a1)\n{\n void *dest; // [rsp+18h] [rbp-8h]\n\n dest = sub_407492(&qword_461980, 0LL, 4 * *(_DWORD *)(a1 + 8));\n memcpy(dest, *(const void **)a1, 4LL * *(int *)(a1 + 8));\n return dest;\n} +bool __fastcall sub_402C03(__int64 a1)\n{\nreturn a1 == sub_402991(256LL);\n} +unsigned __int64 __fastcall sub_4014AA(unsigned __int64 a1)\n{\nunsigned __int64 result; // rax\nunsigned __int64 i; // [rsp+18h] [rbp-8h]\n\nfor ( i = 1LL; a1 / i > 9 && 10 * i > i; i *= 10LL )\n;\ndo\n{\nputchar((char)(a1 / i % 0xA + 48));\nresult = i / 0xA;\ni /= 0xAuLL;\n}\nwhile ( i );\nreturn result;\n} +__int64 __fastcall sub_462C0E(unsigned __int8 *a1)\n{\nreturn (a1[2] << 8) + (a1[1] << 16) + (*a1 << 24) + (unsigned int)a1[3];\n} +__int64 __fastcall sub_401946(unsigned int a1)\n{\n__int64 result; // rax\n\nresult = a1;\ndword_41F1EC = a1;\nreturn result;\n} +__int64 __fastcall sub_4296A0(__int64 a1, __int64 a2, __int64 a3)\n{\nint v4; // [rsp+28h] [rbp-8h]\nunsigned int v5; // [rsp+2Ch] [rbp-4h]\n\nif ( (*(_BYTE *)(a1 + 4) & 4) != 0 || (*(_BYTE *)(a1 + 4) & 2) == 0 )\nreturn 4294967159LL;\nif ( (*(_BYTE *)(a1 + 4) & 8) != 0 )\n{\nif ( a3 == *(unsigned __int8 *)(a1 + 5) )\n{\nv4 = sub_43E5CD(a1 + 8, a2, a3);\nv5 = sub_423AD3(v4);\n}\nelse\n{\nv5 = -135;\n}\n}\nelse\n{\nv5 = sub_42D26A(a1 + 8, a2, a3);\n}\nif ( v5 )\nsub_429CAB(a1);\nelse\n*(_BYTE *)(a1 + 4) |= 4u;\nreturn v5;\n} +__int64 __fastcall sub_4012DD(__int64 a1, int a2, __int64 a3)\n{\n__int64 result; // rax\n\ndword_40F1E4 = 2;\nqword_40F1E8 = a1;\ndword_40F1F8 = a2;\nresult = a3;\nqword_40F1F0 = a3;\nreturn result;\n} +__int64 __fastcall sub_42233A(__int64 a1)\n{\nint v1; // eax\nunsigned __int16 *v3; // [rsp+38h] [rbp-8h]\n\nv3 = *(unsigned __int16 **)(a1 + 16);\nv1 = *v3;\nif ( v1 == 7 )\n{\nif ( v3[1] <= 1u )\nreturn 4294967222LL;\nif ( !sub_4222F5(*((_BYTE *)v3 + 4)) )\nreturn 4294967222LL;\n}\nelse if ( *v3 <= 7u )\n{\nswitch ( v1 )\n{\ncase 6:\nif ( v3[1] <= 1u )\nreturn 4294967222LL;\nif ( !sub_4222F5(*((_BYTE *)v3 + 4)) )\nreturn 4294967222LL;\nreturn 0LL;\ncase 4:\nif ( v3[1] <= 5u )\nreturn 4294967222LL;\nif ( !sub_4222F5(*((_BYTE *)v3 + 4)) )\nreturn 4294967222LL;\nbreak;\ncase 5:\nif ( v3[1] <= 7u )\nreturn 4294967222LL;\nif ( !sub_4222F5(*((_BYTE *)v3 + 4)) )\nreturn 4294967222LL;\nbreak;\ndefault:\nreturn 0LL;\n}\n*(_DWORD *)(v3 + 3) = ntohl(*(_DWORD *)(v3 + 3));\n}\nreturn 0LL;\n}