Function at 0x10001650
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x344
mov eax, dword [0x1001a00c]
xor eax, esp
mov dword [esp + 0x340], eax
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0xf8]
push ebx
xor ebx, ebx
mov dword [0x1001b3a0], eax
mov eax, dword [ebp + 0x14]
xorps xmm0, xmm0
push esi
movq qword [esp + 0x100], xmm0
push edi
mov dword [esp + 0x44], ebx
mov dword [0x1001b39c], eax
mov dword [esp + 0x104], ebx
mov dword [esp + 0x108], ebx
mov dword [esp + 0x10c], ebx
call fcn.10001430
mov ecx, dword [esp + 0x108]
mov eax, 0x2aaaaaab
mov esi, dword [esp + 0x104]
sub ecx, esi
imul ecx
mov dword [esp + 0xe4], ebx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x7c], eax
je 0x10001f38
mov dword [esp + 0x40], esi
push 0xffffffffffffffff
push 0
push esi
lea ecx, [esp + 0x11c]
mov dword [esp + 0x130], 0xf
mov dword [esp + 0x12c], 0
mov byte [esp + 0x11c], 0
call fcn.10003e50
mov edi, dword [esp + 0x124]
lea eax, [esp + 0x110]
mov edx, dword [esp + 0x110]
lea ecx, [esp + 0x110]
cmp edi, 0x10
cmovae eax, edx
cmovae ecx, edx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x120]
add eax, ecx
cmp edi, 0x10
lea ecx, [esp + 0x110]
cmovae ecx, edx
xor esi, esi
mov dword [esp + 0x78], ecx
mov ecx, eax
sub ecx, dword [esp + 0x78]
cmp dword [esp + 0x78], eax
cmova ecx, esi
test ecx, ecx
je 0x100017a2
mov ebx, dword [esp + 0x78]
mov edi, ecx
movsx eax, byte [ebx + esi]
push eax
call fcn.1000a042
mov ecx, dword [esp + 0xec]
add esp, 4
mov byte [ecx + esi], al
inc esi
cmp esi, edi
jne 0x10001774
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x124]
mov edx, dword [esp + 0x110]
mov esi, dword [esp + 0x40]
lea eax, [esp + 0x110]
cmp esi, eax
je 0x100017cb
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.10003e50
mov edi, dword [esp + 0x124]
mov edx, dword [esp + 0x110]
cmp edi, 0x10
jb 0x10001812
lea eax, [edi + 1]
cmp eax, 0x1000
jb 0x10001809
test byte [esp + 0x110], 0x1f
jne 0x10003363
mov eax, dword [edx - 4]
cmp eax, edx
jae 0x10003363
sub edx, eax
cmp edx, 4
jb 0x10003363
cmp edx, 0x23
ja 0x10003363
mov edx, eax
push edx
call fcn.100049b9
add esp, 4
mov eax, dword [esp + 0xe4]
add esi, 0x18
mov ecx, dword [esp + 0x7c]
inc eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0x40], esi
cmp eax, ecx
jb 0x100016e6
mov esi, dword [esp + 0x104]
mov word [esp + 0x248], 0x7370
mov word [esp + 0x245], 0x6875
mov dword [esp + 0x24c], 0x6578652e
mov byte [esp + 0x244], 0x71
mov byte [esp + 0x247], 0x6c
mov word [esp + 0x24a], 0x6376
mov byte [esp + 0x250], 0
mov dword [esp + 0x136], 0x78652e63
mov word [esp + 0x134], 0x736e
mov word [esp + 0x13a], 0x65
mov dword [esp + 0x140], 0x2e76616e
mov dword [esp + 0x144], 0x657865
mov dword [esp + 0x169], 0x657865
mov dword [esp + 0x165], 0x2e303633
mov byte [esp + 0x164], 0x6e
mov word [esp + 0x12b], 0x7865
mov word [esp + 0x128], 0x736e
mov byte [esp + 0x12a], 0x2e
mov word [esp + 0x12d], 0x65
mov dword [esp + 0x14d], 0x652e7369
mov word [esp + 0x151], 0x6578
mov byte [esp + 0x14c], 0x6e
mov byte [esp + 0x153], 0
mov dword [esp + 0x172], 0x652e7562
mov word [esp + 0x176], 0x6578
mov word [esp + 0x170], 0x736e
mov byte [esp + 0x178], 0
mov word [esp + 0x1c6], 0x6573
mov dword [esp + 0x1cf], 0x657865
mov dword [esp + 0x1c2], 0x6e6f7472
mov dword [esp + 0x1cb], 0x2e797469
mov word [esp + 0x1c9], 0x7275
mov word [esp + 0x1c0], 0x6f6e
mov byte [esp + 0x1c8], 0x63
mov dword [esp + 0x189], 0x63767363
mov byte [esp + 0x188], 0x63
mov word [esp + 0x18e], 0x7473
mov dword [esp + 0x191], 0x657865
mov byte [esp + 0x18d], 0x68
mov byte [esp + 0x190], 0x2e
mov word [esp + 0x26a], 0x652e
mov dword [esp + 0x265], 0x72657373
mov word [esp + 0x26d], 0x65
mov byte [esp + 0x26c], 0x78
mov byte [esp + 0x264], 0x76
mov byte [esp + 0x269], 0x76
mov dword [esp + 0x234], 0x67616462
mov dword [esp + 0x23a], 0x78652e74
mov word [esp + 0x23e], 0x65
mov word [esp + 0x238], 0x6e65
mov word [esp + 0x19c], 0x6f72
mov word [esp + 0x199], 0x6b76
mov dword [esp + 0x1a0], 0x6578652e
mov byte [esp + 0x19b], 0x70
mov byte [esp + 0x1a4], 0
mov word [esp + 0x19e], 0x7978
mov byte [esp + 0x198], 0x61
mov dword [esp + 0x22c], 0x657865
mov dword [esp + 0x228], 0x2e796172
mov word [esp + 0x225], 0x6b76
mov byte [esp + 0x224], 0x61
mov byte [esp + 0x227], 0x74
mov dword [esp + 0x1e3], 0x657865
mov dword [esp + 0x1d8], 0x776b7661
mov dword [esp + 0x1dd], 0x36786c74
mov word [esp + 0x1e1], 0x2e34
mov byte [esp + 0x1dc], 0x63
mov dword [esp + 0x1b2], 0x79617274
mov word [esp + 0x1ac], 0x6572
mov word [esp + 0x1a9], 0x6664
mov dword [esp + 0x1ae], 0x6c6c6177
mov dword [esp + 0x1b7], 0x657865
mov byte [esp + 0x1ab], 0x69
mov byte [esp + 0x1a8], 0x67
mov byte [esp + 0x1b6], 0x2e
mov dword [esp + 0x1ed], 0x73776664
mov dword [esp + 0x1f5], 0x78652e34
mov word [esp + 0x1f9], 0x65
mov dword [esp + 0x1f1], 0x36786376
mov byte [esp + 0x1ec], 0x67
mov word [esp + 0x203], 0x6662
mov dword [esp + 0x208], 0x32336578
mov dword [esp + 0x20d], 0x657865
mov word [esp + 0x200], 0x6467
mov word [esp + 0x205], 0x746c
mov byte [esp + 0x207], 0x65
mov byte [esp + 0x202], 0x6b
mov byte [esp + 0x20c], 0x2e
mov dword [esp + 0x25a], 0x6578652e
mov word [esp + 0x257], 0x6163
mov byte [esp + 0x25e], 0
mov word [esp + 0x254], 0x6467
mov byte [esp + 0x256], 0x73
mov byte [esp + 0x259], 0x6e
mov dword [esp + 0x218], 0x2e6c7463
mov dword [esp + 0x214], 0x776b7661
mov dword [esp + 0x21c], 0x657865
mov dword [esp + 0x15c], 0x657865
mov dword [esp + 0x158], 0x2e707661
mov dword [esp + 0x279], 0x6578652e
mov dword [esp + 0x274], 0x75707661
mov byte [esp + 0x27d], 0
mov byte [esp + 0x278], 0x69
mov word [esp + 0x17c], 0x736b
mov dword [esp + 0x181], 0x657865
mov word [esp + 0x17f], 0x2e65
mov byte [esp + 0x17e], 0x64
mov word [esp + 0x28c], 0x7765
mov word [esp + 0x285], 0x726f
mov dword [esp + 0x28f], 0x6f686b72
mov dword [esp + 0x294], 0x78652e74
mov byte [esp + 0x28e], 0x6f
mov word [esp + 0x298], 0x65
mov dword [esp + 0x288], 0x6d617266
mov byte [esp + 0x293], 0x73
mov byte [esp + 0x287], 0x65
mov byte [esp + 0x284], 0x63
mov dword [esp + 0x2c8], 0x6c6c6568
mov word [esp + 0x2c0], 0x6573
mov dword [esp + 0x2cd], 0x657865
mov dword [esp + 0x2c3], 0x65636976
mov dword [esp + 0x2bc], 0x65726f63
mov byte [esp + 0x2c7], 0x73
mov byte [esp + 0x2c2], 0x72
mov byte [esp + 0x2cc], 0x2e
mov dword [esp + 0x314], 0x6578652e
mov word [esp + 0x30d], 0x7369
mov dword [esp + 0x310], 0x746e6761
mov byte [esp + 0x30c], 0x75
mov byte [esp + 0x30f], 0x65
mov byte [esp + 0x318], 0
mov dword [esp + 0x2d5], 0x74617769
mov dword [esp + 0x2df], 0x657865
mov dword [esp + 0x2db], 0x2e676f64
mov byte [esp + 0x2d4], 0x75
mov word [esp + 0x2d9], 0x6863
mov dword [esp + 0x2fd], 0x6e697769
mov dword [esp + 0x302], 0x652e7267
mov word [esp + 0x306], 0x6578
mov byte [esp + 0x301], 0x6d
mov byte [esp + 0x308], 0
mov byte [esp + 0x2fc], 0x75
mov dword [esp + 0x2ec], 0x64686374
mov dword [esp + 0x2f2], 0x6578652e
mov word [esp + 0x2e9], 0x7774
mov byte [esp + 0x2f6], 0
mov word [esp + 0x2f0], 0x676f
mov byte [esp + 0x2eb], 0x61
mov byte [esp + 0x2e8], 0x70
mov dword [esp + 0x2a2], 0x61747363
mov word [esp + 0x2b5], 0x6578
mov word [esp + 0x2a9], 0x6f63
mov word [esp + 0x2a6], 0x7574
mov dword [esp + 0x2b0], 0x2e72656c
mov dword [esp + 0x2ab], 0x6f72746e
mov byte [esp + 0x2b7], 0
mov byte [esp + 0x2b4], 0x65
mov byte [esp + 0x2af], 0x6c
mov word [esp + 0x2a0], 0x7377
mov byte [esp + 0x2a8], 0x73
mov dword [esp + 0x325], 0x657865
mov dword [esp + 0x31d], 0x76616566
xor eax, eax
mov dword [esp + 0x321], 0x2e637673
mov byte [esp + 0x31c], 0x6d
mov dword [esp + 0x32f], 0x73707476
mov dword [esp + 0x334], 0x657865
mov byte [esp + 0x333], 0x2e
mov word [esp + 0x32c], 0x666d
mov byte [esp + 0x32e], 0x65
mov dword [esp + 0x33c], 0x6d65666d
mov dword [esp + 0x343], 0x657865
mov word [esp + 0x340], 0x736d
mov byte [esp + 0x342], 0x2e
mov dword [esp + 0x40], eax
test ecx, ecx
je 0x1000330e
nop word [eax + eax]
push 0xffffffffffffffff
lea eax, [eax + eax*2]
mov dword [esp + 0x104], 0xf
lea eax, [esi + eax*8]
mov dword [esp + 0x100], 0
push 0
push eax
lea ecx, [esp + 0xf8]
mov byte [esp + 0xf8], 0
call fcn.10003e50
cmp byte [esp + 0x244], 0
mov dword [esp + 0x74], 0xf
mov dword [esp + 0x70], 0
mov byte [esp + 0x60], 0
jne 0x10001f3f
xor eax, eax
jmp 0x10001f4f
mov ecx, eax
jmp 0x1000183b
lea eax, [esp + 0x244]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x248]
push eax
lea ecx, [esp + 0x68]
call fcn.10003d50
cmp dword [esp + 0x74], 0x10
lea edx, [esp + 0x60]
mov eax, dword [esp + 0xfc]
lea esi, [esp + 0xec]
cmovae edx, dword [esp + 0x60]
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0x70]
mov ecx, edi
cmovae esi, dword [esp + 0xec]
cmp eax, edi
mov dword [esp + 0x44], eax
cmovb ecx, eax
test ecx, ecx
je 0x10001fb5
push ecx
push edx
push esi
call fcn.10007444
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x10001fc2
mov eax, dword [esp + 0x44]
cmp edi, eax
jbe 0x10001fbe
or esi, 0xffffffff
jmp 0x10001fc2
sbb esi, esi
neg esi
lea ecx, [esp + 0x60]
call fcn.10003990
test esi, esi
je 0x10003350
or ebx, 1
mov dword [esp + 0x24], 0xf
cmp byte [esp + 0x134], 0
mov dword [esp + 0x20], 0
mov byte [esp + 0x10], 0
jne 0x10001ff9
xor eax, eax
jmp 0x10002009
lea eax, [esp + 0x134]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x138]
push eax
lea ecx, [esp + 0x18]
call fcn.10003d50
cmp dword [esp + 0x24], 0x10
lea ecx, [esp + 0x10]
mov esi, dword [esp + 0x20]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0x10]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x10002065
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x1000206f
cmp edi, esi
jb 0x1000206f
jbe 0x10002473
or ebx, 2
mov dword [esp + 0x3c], 0xf
cmp byte [esp + 0x140], 0
mov dword [esp + 0x38], 0
mov byte [esp + 0x28], 0
jne 0x10002095
xor eax, eax
jmp 0x100020a5
lea eax, [esp + 0x140]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x144]
push eax
lea ecx, [esp + 0x30]
call fcn.10003d50
cmp dword [esp + 0x3c], 0x10
lea ecx, [esp + 0x28]
mov esi, dword [esp + 0x38]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0x28]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x10002101
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x1000210b
cmp edi, esi
jb 0x1000210b
jbe 0x10002473
or ebx, 4
mov dword [esp + 0xb0], 0xf
cmp byte [esp + 0x164], 0
mov dword [esp + 0xac], 0
mov byte [esp + 0x9c], 0
jne 0x1000213a
xor eax, eax
jmp 0x1000214a
lea eax, [esp + 0x164]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x168]
push eax
lea ecx, [esp + 0xa4]
call fcn.10003d50
cmp dword [esp + 0xb0], 0x10
lea ecx, [esp + 0x9c]
mov esi, dword [esp + 0xac]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0x9c]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x100021b5
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x100021bf
cmp edi, esi
jb 0x100021bf
jbe 0x10002473
or ebx, 8
mov dword [esp + 0x98], 0xf
cmp byte [esp + 0x128], 0
mov dword [esp + 0x94], 0
mov byte [esp + 0x84], 0
jne 0x100021ee
xor eax, eax
jmp 0x100021fe
lea eax, [esp + 0x128]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x12c]
push eax
lea ecx, [esp + 0x8c]
call fcn.10003d50
cmp dword [esp + 0x98], 0x10
lea ecx, [esp + 0x84]
mov esi, dword [esp + 0x94]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0x84]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x10002269
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x10002273
cmp edi, esi
jb 0x10002273
jbe 0x10002473
or ebx, 0x10
mov dword [esp + 0xc8], 0xf
cmp byte [esp + 0x14c], 0
mov dword [esp + 0xc4], 0
mov byte [esp + 0xb4], 0
jne 0x100022a2
xor eax, eax
jmp 0x100022b2
lea eax, [esp + 0x14c]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x150]
push eax
lea ecx, [esp + 0xbc]
call fcn.10003d50
cmp dword [esp + 0xc8], 0x10
lea ecx, [esp + 0xb4]
mov esi, dword [esp + 0xc4]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0xb4]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x1000231d
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x10002327
cmp edi, esi
jb 0x10002327
jbe 0x10002473
or ebx, 0x20
mov dword [esp + 0xe0], 0xf
cmp byte [esp + 0x170], 0
mov dword [esp + 0xdc], 0
mov byte [esp + 0xcc], 0
jne 0x10002356
xor eax, eax
jmp 0x10002366
lea eax, [esp + 0x170]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x174]
push eax
lea ecx, [esp + 0xd4]
call fcn.10003d50
cmp dword [esp + 0xe0], 0x10
lea ecx, [esp + 0xcc]
mov esi, dword [esp + 0xdc]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0xcc]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x100023d1
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x100023db
cmp edi, esi
jb 0x100023db
jbe 0x10002473
or ebx, 0x40
mov dword [esp + 0x74], 0xf
cmp byte [esp + 0x1c0], 0
mov dword [esp + 0x70], 0
mov byte [esp + 0x60], 0
jne 0x10002401
xor eax, eax
jmp 0x10002411
lea eax, [esp + 0x1c0]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x1c4]
push eax
lea ecx, [esp + 0x68]
call fcn.10003d50
cmp dword [esp + 0x74], 0x10
lea ecx, [esp + 0x60]
mov esi, dword [esp + 0x70]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0x60]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x1000246d
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x1000247a
cmp edi, esi
jb 0x1000247a
ja 0x1000247a
mov byte [esp + 0xf], 1
jmp 0x1000247f
mov byte [esp + 0xf], 0
test bl, 0x40
je 0x10002490
lea ecx, [esp + 0x60]
and ebx, 0xffffffbf
call fcn.10003990
test bl, 0x20
je 0x100024a4
lea ecx, [esp + 0xcc]
and ebx, 0xffffffdf
call fcn.10003990
test bl, 0x10
je 0x100024b8
lea ecx, [esp + 0xb4]
and ebx, 0xffffffef
call fcn.10003990
test bl, 8
je 0x100024cc
lea ecx, [esp + 0x84]
and ebx, 0xfffffff7
call fcn.10003990
test bl, 4
je 0x100024e0
lea ecx, [esp + 0x9c]
and ebx, 0xfffffffb
call fcn.10003990
test bl, 2
je 0x100024f1
lea ecx, [esp + 0x28]
and ebx, 0xfffffffd
call fcn.10003990
test bl, 1
je 0x10002502
lea ecx, [esp + 0x10]
and ebx, 0xfffffffe
call fcn.10003990
cmp byte [esp + 0xf], 0
jne 0x10003350
cmp byte [esp + 0x188], 0
mov dword [esp + 0x24], 0xf
mov dword [esp + 0x20], 0
mov byte [esp + 0x10], 0
jne 0x10002530
xor eax, eax
jmp 0x10002540
lea eax, [esp + 0x188]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x18c]
push eax
lea ecx, [esp + 0x18]
call fcn.10003d50
cmp dword [esp + 0x24], 0x10
lea edx, [esp + 0x10]
mov eax, dword [esp + 0xfc]
lea esi, [esp + 0xec]
cmovae edx, dword [esp + 0x10]
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0x20]
mov ecx, edi
cmovae esi, dword [esp + 0xec]
cmp eax, edi
mov dword [esp + 0x44], eax
cmovb ecx, eax
test ecx, ecx
je 0x100025a6
push ecx
push edx
push esi
call fcn.10007444
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x100025b3
mov eax, dword [esp + 0x44]
cmp edi, eax
jbe 0x100025af
or esi, 0xffffffff
jmp 0x100025b3
sbb esi, esi
neg esi
lea ecx, [esp + 0x10]
call fcn.10003990
test esi, esi
je 0x10003350
or ebx, 0x80
mov dword [esp + 0x3c], 0xf
cmp byte [esp + 0x264], 0
mov dword [esp + 0x38], 0
mov byte [esp + 0x28], 0
jne 0x100025ed
xor eax, eax
jmp 0x100025fd
lea eax, [esp + 0x264]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x268]
push eax
lea ecx, [esp + 0x30]
call fcn.10003d50
cmp dword [esp + 0x3c], 0x10
lea ecx, [esp + 0x28]
mov esi, dword [esp + 0x38]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0x28]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x10002659
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x10002663
cmp edi, esi
jb 0x10002663
jbe 0x100026fe
or ebx, 0x100
mov dword [esp + 0x24], 0xf
cmp byte [esp + 0x234], 0
mov dword [esp + 0x20], 0
mov byte [esp + 0x10], 0
jne 0x1000268c
xor eax, eax
jmp 0x1000269c
lea eax, [esp + 0x234]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x238]
push eax
lea ecx, [esp + 0x18]
call fcn.10003d50
cmp dword [esp + 0x24], 0x10
lea ecx, [esp + 0x10]
mov esi, dword [esp + 0x20]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0x10]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x100026f8
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x10002705
cmp edi, esi
jb 0x10002705
ja 0x10002705
mov byte [esp + 0xf], 1
jmp 0x1000270a
mov byte [esp + 0xf], 0
test ebx, 0x100
je 0x10002721
lea ecx, [esp + 0x10]
and ebx, 0xfffffeff
call fcn.10003990
lea ecx, [esp + 0x28]
and ebx, 0xffffff7f
call fcn.10003990
cmp byte [esp + 0xf], 0
jne 0x10003350
or ebx, 0x200
mov dword [esp + 0x5c], 0xf
cmp byte [esp + 0x198], 0
mov dword [esp + 0x58], 0
mov byte [esp + 0x48], 0
jne 0x10002764
xor eax, eax
jmp 0x10002774
lea eax, [esp + 0x198]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x19c]
push eax
lea ecx, [esp + 0x50]
call fcn.10003d50
cmp dword [esp + 0x5c], 0x10
lea ecx, [esp + 0x48]
mov esi, dword [esp + 0x58]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0x48]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x100027d0
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x100027da
cmp edi, esi
jb 0x100027da
jbe 0x10002c8f
or ebx, 0x400
mov dword [esp + 0x74], 0xf
cmp byte [esp + 0x224], 0
mov dword [esp + 0x70], 0
mov byte [esp + 0x60], 0
jne 0x10002803
xor eax, eax
jmp 0x10002813
lea eax, [esp + 0x224]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x228]
push eax
lea ecx, [esp + 0x68]
call fcn.10003d50
cmp dword [esp + 0x74], 0x10
lea ecx, [esp + 0x60]
mov esi, dword [esp + 0x70]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0x60]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x1000286f
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x10002879
cmp edi, esi
jb 0x10002879
jbe 0x10002c8f
or ebx, 0x800
mov dword [esp + 0xe0], 0xf
cmp byte [esp + 0x1d8], 0
mov dword [esp + 0xdc], 0
mov byte [esp + 0xcc], 0
jne 0x100028ab
xor eax, eax
jmp 0x100028bb
lea eax, [esp + 0x1d8]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x1dc]
push eax
lea ecx, [esp + 0xd4]
call fcn.10003d50
cmp dword [esp + 0xe0], 0x10
lea ecx, [esp + 0xcc]
mov esi, dword [esp + 0xdc]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0xcc]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x10002926
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x10002930
cmp edi, esi
jb 0x10002930
jbe 0x10002c8f
or ebx, 0x1000
mov dword [esp + 0xc8], 0xf
cmp byte [esp + 0x1a8], 0
mov dword [esp + 0xc4], 0
mov byte [esp + 0xb4], 0
jne 0x10002962
xor eax, eax
jmp 0x10002972
lea eax, [esp + 0x1a8]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x1ac]
push eax
lea ecx, [esp + 0xbc]
call fcn.10003d50
cmp dword [esp + 0xc8], 0x10
lea ecx, [esp + 0xb4]
mov esi, dword [esp + 0xc4]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0xb4]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x100029dd
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x100029e7
cmp edi, esi
jb 0x100029e7
jbe 0x10002c8f
or ebx, 0x2000
mov dword [esp + 0x98], 0xf
cmp byte [esp + 0x1ec], 0
mov dword [esp + 0x94], 0
mov byte [esp + 0x84], 0
jne 0x10002a19
xor eax, eax
jmp 0x10002a29
lea eax, [esp + 0x1ec]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x1f0]
push eax
lea ecx, [esp + 0x8c]
call fcn.10003d50
cmp dword [esp + 0x98], 0x10
lea ecx, [esp + 0x84]
mov esi, dword [esp + 0x94]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0x84]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x10002a94
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x10002a9e
cmp edi, esi
jb 0x10002a9e
jbe 0x10002c8f
or ebx, 0x4000
mov dword [esp + 0xb0], 0xf
cmp byte [esp + 0x200], 0
mov dword [esp + 0xac], 0
mov byte [esp + 0x9c], 0
jne 0x10002ad0
xor eax, eax
jmp 0x10002ae0
lea eax, [esp + 0x200]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x204]
push eax
lea ecx, [esp + 0xa4]
call fcn.10003d50
cmp dword [esp + 0xb0], 0x10
lea ecx, [esp + 0x9c]
mov esi, dword [esp + 0xac]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0x9c]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x10002b4b
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x10002b55
cmp edi, esi
jb 0x10002b55
jbe 0x10002c8f
or ebx, 0x8000
mov dword [esp + 0x3c], 0xf
cmp byte [esp + 0x254], 0
mov dword [esp + 0x38], 0
mov byte [esp + 0x28], 0
jne 0x10002b7e
xor eax, eax
jmp 0x10002b8e
lea eax, [esp + 0x254]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x258]
push eax
lea ecx, [esp + 0x30]
call fcn.10003d50
cmp dword [esp + 0x3c], 0x10
lea ecx, [esp + 0x28]
mov esi, dword [esp + 0x38]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0x28]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x10002bea
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x10002bf4
cmp edi, esi
jb 0x10002bf4
jbe 0x10002c8f
or ebx, 0x10000
mov dword [esp + 0x24], 0xf
cmp byte [esp + 0x214], 0
mov dword [esp + 0x20], 0
mov byte [esp + 0x10], 0
jne 0x10002c1d
xor eax, eax
jmp 0x10002c2d
lea eax, [esp + 0x214]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x218]
push eax
lea ecx, [esp + 0x18]
call fcn.10003d50
cmp dword [esp + 0x24], 0x10
lea ecx, [esp + 0x10]
mov esi, dword [esp + 0x20]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0x10]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x10002c89
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x10002c96
cmp edi, esi
jb 0x10002c96
ja 0x10002c96
mov byte [esp + 0xf], 1
jmp 0x10002c9b
mov byte [esp + 0xf], 0
test ebx, 0x10000
je 0x10002cb2
lea ecx, [esp + 0x10]
and ebx, 0xfffeffff
call fcn.10003990
test ebx, 0x8000
je 0x10002cc9
lea ecx, [esp + 0x28]
and ebx, 0xffff7fff
call fcn.10003990
test ebx, 0x4000
je 0x10002ce3
lea ecx, [esp + 0x9c]
and ebx, 0xffffbfff
call fcn.10003990
test ebx, 0x2000
je 0x10002cfd
lea ecx, [esp + 0x84]
and ebx, 0xffffdfff
call fcn.10003990
test ebx, 0x1000
je 0x10002d17
lea ecx, [esp + 0xb4]
and ebx, 0xffffefff
call fcn.10003990
test ebx, 0x800
je 0x10002d31
lea ecx, [esp + 0xcc]
and ebx, 0xfffff7ff
call fcn.10003990
test ebx, 0x400
je 0x10002d48
lea ecx, [esp + 0x60]
and ebx, 0xfffffbff
call fcn.10003990
test ebx, 0x200
je 0x10002d5f
lea ecx, [esp + 0x48]
and ebx, 0xfffffdff
call fcn.10003990
cmp byte [esp + 0xf], 0
jne 0x1000333d
or ebx, 0x20000
mov dword [esp + 0x3c], 0xf
cmp byte [esp + 0x158], 0
mov dword [esp + 0x38], 0
mov byte [esp + 0x28], 0
jne 0x10002d93
xor eax, eax
jmp 0x10002da3
lea eax, [esp + 0x158]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x15c]
push eax
lea ecx, [esp + 0x30]
call fcn.10003d50
cmp dword [esp + 0x3c], 0x10
lea ecx, [esp + 0x28]
mov esi, dword [esp + 0x38]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0x28]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x10002dff
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x10002e09
cmp edi, esi
jb 0x10002e09
jbe 0x10002f43
or ebx, 0x40000
mov dword [esp + 0x24], 0xf
cmp byte [esp + 0x274], 0
mov dword [esp + 0x20], 0
mov byte [esp + 0x10], 0
jne 0x10002e32
xor eax, eax
jmp 0x10002e42
lea eax, [esp + 0x274]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x278]
push eax
lea ecx, [esp + 0x18]
call fcn.10003d50
cmp dword [esp + 0x24], 0x10
lea ecx, [esp + 0x10]
mov esi, dword [esp + 0x20]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0x10]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x10002e9e
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x10002ea8
cmp edi, esi
jb 0x10002ea8
jbe 0x10002f43
or ebx, 0x80000
mov dword [esp + 0x5c], 0xf
cmp byte [esp + 0x17c], 0
mov dword [esp + 0x58], 0
mov byte [esp + 0x48], 0
jne 0x10002ed1
xor eax, eax
jmp 0x10002ee1
lea eax, [esp + 0x17c]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x180]
push eax
lea ecx, [esp + 0x50]
call fcn.10003d50
cmp dword [esp + 0x5c], 0x10
lea ecx, [esp + 0x48]
mov esi, dword [esp + 0x58]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0x48]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x10002f3d
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x10002f4a
cmp edi, esi
jb 0x10002f4a
ja 0x10002f4a
mov byte [esp + 0xf], 1
jmp 0x10002f4f
mov byte [esp + 0xf], 0
test ebx, 0x80000
je 0x10002f66
lea ecx, [esp + 0x48]
and ebx, 0xfff7ffff
call fcn.10003990
test ebx, 0x40000
je 0x10002f7d
lea ecx, [esp + 0x10]
and ebx, 0xfffbffff
call fcn.10003990
lea ecx, [esp + 0x28]
and ebx, 0xfffdffff
call fcn.10003990
cmp byte [esp + 0xf], 0
jne 0x1000333d
or ebx, 0x100000
mov dword [esp + 0x5c], 0xf
cmp byte [esp + 0x284], 0
mov dword [esp + 0x58], 0
mov byte [esp + 0x48], 0
jne 0x10002fc0
xor eax, eax
jmp 0x10002fd0
lea eax, [esp + 0x284]
push eax
call fcn.10009aa0
add esp, 4
push eax
lea eax, [esp + 0x288]
push eax
lea ecx, [esp + 0x50]
call fcn.10003d50
cmp dword [esp + 0x5c], 0x10
lea ecx, [esp + 0x48]
mov esi, dword [esp + 0x58]
lea edx, [esp + 0xec]
cmovae ecx, dword [esp + 0x48]
mov eax, esi
cmp dword [esp + 0x100], 0x10
mov edi, dword [esp + 0xfc]
cmovae edx, dword [esp + 0xec]
cmp edi, esi
cmovb eax, edi
test eax, eax
je 0x1000302c
push eax
push ecx
push edx
call fcn.10007444
add esp, 0xc
test eax, eax
jne 0x10003036
cmp edi, esi
jb 0x10003036
jbe 0x10003162
push 0
lea ecx, [esp + 0x14]
mov dword [esp + 0x24], 0
or ebx, 0x200000
mov dword [esp + 0x28], 0xf
call fcn.10003f60
lea eax, [esp + 0x2bc]
push eax
call fcn.10003d10
lea edx, [esp + 0x10]
lea ecx, [esp + 0xec]
call fcn.10004560
test al, al
jne 0x10003162
lea eax, [esp + 0x30c]
or ebx, 0x400000
push eax
lea ecx, [esp + 0xd0]
call fcn.10003a00
mov edx, eax
lea ecx, [esp + 0xec]
call fcn.10004560
test al, al
jne 0x10003162
lea eax, [esp + 0x2d4]
or ebx, 0x800000
push eax
lea ecx, [esp + 0xb8]
call fcn.10003a00
mov edx, eax
lea ecx, [esp + 0xec]
call fcn.10004560
test al, al
jne 0x10003162
lea eax, [esp + 0x2fc]
or ebx, 0x1000000
push eax
lea ecx, [esp + 0x88]
call fcn.10003a00
mov edx, eax
lea ecx, [esp + 0xec]
call fcn.10004560
test al, al
jne 0x10003162
lea eax, [esp + 0x2e8]
or ebx, 0x2000000
push eax
lea ecx, [esp + 0xa0]
call fcn.10003a00
mov edx, eax
lea ecx, [esp + 0xec]
call fcn.10004560
test al, al
jne 0x10003162
lea eax, [esp + 0x2a0]
or ebx, 0x4000000
push eax
lea ecx, [esp + 0x2c]
call fcn.10003a00
mov edx, eax
lea ecx, [esp + 0xec]
call fcn.10004560
mov byte [esp + 0xf], 0
test al, al
je 0x10003167
mov byte [esp + 0xf], 1
test ebx, 0x4000000
je 0x1000317e
lea ecx, [esp + 0x28]
and ebx, 0xfbffffff
call fcn.10003990
test ebx, 0x2000000
je 0x10003198
lea ecx, [esp + 0x9c]
and ebx, 0xfdffffff
call fcn.10003990
test ebx, 0x1000000
je 0x100031b2
lea ecx, [esp + 0x84]
and ebx, 0xfeffffff
call fcn.10003990
test ebx, 0x800000
je 0x100031cc
lea ecx, [esp + 0xb4]
and ebx, 0xff7fffff
call fcn.10003990
test ebx, 0x400000
je 0x100031e6
lea ecx, [esp + 0xcc]
and ebx, 0xffbfffff
call fcn.10003990
test ebx, 0x200000
je 0x100031fd
lea ecx, [esp + 0x10]
and ebx, 0xffdfffff
call fcn.10003990
test ebx, 0x100000
je 0x10003214
lea ecx, [esp + 0x48]
and ebx, 0xffefffff
call fcn.10003990
cmp byte [esp + 0xf], 0
jne 0x1000333d
lea eax, [esp + 0x31c]
or ebx, 0x8000000
push eax
lea ecx, [esp + 0x2c]
call fcn.10003a00
mov edx, eax
lea ecx, [esp + 0xec]
call fcn.10004560
test al, al
jne 0x1000329f
lea eax, [esp + 0x32c]
or ebx, 0x10000000
push eax
lea ecx, [esp + 0x14]
call fcn.10003a00
mov edx, eax
lea ecx, [esp + 0xec]
call fcn.10004560
test al, al
jne 0x1000329f
lea eax, [esp + 0x33c]
or ebx, 0x20000000
push eax
lea ecx, [esp + 0x4c]
call fcn.10003a00
mov edx, eax
lea ecx, [esp + 0xec]
call fcn.10004560
mov byte [esp + 0xf], 0
test al, al
je 0x100032a4
mov byte [esp + 0xf], 1
test ebx, 0x20000000
je 0x100032bb
lea ecx, [esp + 0x48]
and ebx, 0xdfffffff
call fcn.10003990
test ebx, 0x10000000
je 0x100032d2
lea ecx, [esp + 0x10]
and ebx, 0xefffffff
call fcn.10003990
lea ecx, [esp + 0x28]
and ebx, 0xf7ffffff
call fcn.10003990
lea ecx, [esp + 0xec]
call fcn.10003990
cmp byte [esp + 0xf], 0
jne 0x10003336
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x104]
inc eax
mov dword [esp + 0x40], eax
cmp eax, dword [esp + 0x7c]
jb 0x10001ee0
xor ecx, ecx
call fcn.100013c0
lea ecx, [esp + 0x104]
call fcn.10003a70
mov ecx, dword [esp + 0x34c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100049be
mov esp, ebp
pop ebp
ret
mov ecx, 3
jmp 0x10003310
lea ecx, [esp + 0xec]
call fcn.10003990
mov ecx, 2
jmp 0x10003310
lea ecx, [esp + 0xec]
call fcn.10003990
mov ecx, 1
jmp 0x10003310
call fcn.10009d05
int3