Function at 0x1001ca10
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [esp + 0xc]
add eax, esi
mov dword [esp + 0x30], eax
lea eax, [eax + eax*2]
mov edx, esi
mov esi, ebx
mov ebx, edi
mov edi, ecx
mov ecx, dword [esp + 4]
test byte [ecx + eax*4 + 0x18], 0x60
mov ecx, edi
mov edi, ebx
mov ebx, esi
mov esi, edx
jne 0x1001c9d9
add esi, 1
cmp esi, ecx
setb al
mov dword [esp + 0x3c], eax
add ebx, 0xffffffff
add edi, 0xc
add dword [esp + 0x18], 0xc
cmp esi, dword [esp + 0x1c]
jne 0x1001c98f
jmp 0x1001cb06
cmp esi, ecx
jae 0x1001ccdf
xor edx, edx
mov eax, edi
nop word cs:[eax + eax]
nop
mov ecx, dword [eax]
test cl, 0x60
je 0x1001cdd8
and ecx, 0xffffff9f
mov dword [eax], ecx
add edx, 1
add eax, 0xc
cmp ebx, edx
jne 0x1001c9f0
mov eax, ebx
mov edx, eax
shl edx, 0xc
or al, 0x89
inc esp
and al, 0x20
or al, 0x89
inc esp
and al, 0x20
mov ecx, dword [esp + 0x30]
je 0x1001cc83
mov eax, ecx
shl eax, 0xc
add eax, dword [esp + 4]
mov dword [esp + 0x38], eax
and eax, 0xff000
mov ecx, 0x100000
sub ecx, eax
cmp ecx, edx
cmovae ecx, edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x28], edx
push 4
push 0x1000
push ecx
push dword [esp + 0x44]
call dword [0x1008bf2c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x28]
test eax, eax
je 0x1001ca81
sub edx, ecx
mov dword [esp + 0x28], edx
cmp edx, 0x100000
jae 0x1001cdea
add dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x28]
test edx, edx
jne 0x1001ca3d
test eax, eax
setne byte [esp + 0x28]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x1001cae7
cmp byte [esp + 0x28], 0
mov ecx, 0x20
mov eax, 4
cmovne ecx, eax
xor edx, edx
cmp dword [esp + 0x20], 1
je 0x1001cad1
mov eax, dword [esp + 0x20]
and eax, 0xfffffffe
loopne fcn.1001cab0
mov dword [esp + 0x38], eax
xor edx, edx
mov eax, dword [esp + 0x18]
nop dword [eax]
or dword [eax - 0xc], ecx
or dword [eax], ecx
add edx, 2
add eax, 0x18
cmp dword [esp + 0x38], edx
jne 0x1001cac0
test byte [esp + 0x20], 1
je 0x1001cae7
add edx, dword [esp + 0x30]
lea eax, [edx + edx*2]
mov edx, dword [esp + 4]
or dword [edx + eax*4 + 0x18], ecx
cmp byte [esp + 0x28], 0
mov ecx, dword [esp + 0x24]
je 0x1001e41c
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
add dword [eax + 0x28], edx
jmp 0x1001c9b7
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x4c]
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0x10]
mov dword [esp + 0x18], ecx
add eax, 0x18
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], 0
mov dword [esp + 0x10], eax
mov eax, dword [eax]
mov ecx, eax
and ecx, 0xfffff000
mov edx, 0xfffff000
and edx, dword [edi + 8]
xor ebx, ebx
cmp ecx, edx
seta bl
mov ecx, 0xffffffff
cmovae ecx, ebx
test ecx, ecx
mov ebx, dword [esp + 0x2c]
je 0x1001cbe2
cmp ecx, 0xffffffff
jne 0x1001cc03
mov esi, dword [edi]
test esi, esi
je 0x1001e124
mov eax, dword [esi + 4]
mov dword [esp + 0x1c], 0
test al, 1
jne 0x1001dd00
mov ecx, dword [esi]
test ecx, ecx
je 0x1001cb8e
test byte [ecx + 4], 1
jne 0x1001dd00
or eax, 1
mov dword [esi + 4], eax
mov ecx, dword [edi + 4]
mov eax, ecx
and eax, 0xfffffffe
je 0x1001cddf
mov esi, dword [eax]
test esi, esi
je 0x1001cbb4
mov edx, dword [esi + 4]
test dl, 1
jne 0x1001cd55
or ecx, 1
mov dword [edi + 4], ecx
mov ecx, dword [eax]
or ecx, 1
mov dword [edi + 4], ecx
mov dword [eax], edi
mov esi, eax
lea edi, [esp + 0x58]
and byte [esi + 4], 0xfe
mov dword [edi], esi
jmp 0x1001dd00
xor edx, edx
test al, 0x10
cmove edx, dword [esp + 0x18]
xor ecx, ecx
cmp edx, edi
seta al
jb 0x1001cb61
mov cl, al
cmp ecx, 0xffffffff
je 0x1001cb61
test ecx, ecx
je 0x1001cc8d
mov eax, dword [edi + 4]
mov dword [esp + 0x1c], 0
mov esi, eax
and esi, 0xfffffffe
je 0x1001cc2d
mov ecx, dword [esi]
test ecx, ecx
je 0x1001cc2d
test byte [ecx + 4], 1
jne 0x1001dd00
mov ecx, dword [edi]
test ecx, ecx
je 0x1001ce0b
test byte [ecx + 4], 1
jne 0x1001ccec
or eax, 1
mov dword [edi + 4], eax
mov eax, dword [ecx]
test eax, eax
je 0x1001cc59
mov edx, dword [eax + 4]
test dl, 1
jne 0x1001cd00
or byte [ecx + 4], 1
mov eax, dword [edi + 4]
mov esi, eax
and esi, 0xfffffffe
je 0x1001da8b
mov ecx, dword [esi]
and ecx, 0xfffffffe
and eax, 1
or eax, ecx
mov dword [edi + 4], eax
mov dword [esi], edi
lea edi, [esp + 0x58]
jmp 0x1001cbce
mov byte [esp + 0x28], 1
jmp 0x1001ca8c
mov eax, dword [edi + 4]
cmp eax, 1
mov edx, dword [esp + 4]
ja 0x1001cda0
mov eax, dword [edi]
xor ecx, ecx
test eax, eax
je 0x1001de03
mov ecx, dword [eax + 4]
and ecx, 0xfffffffe
mov dword [edi], ecx
mov ecx, edi
and ecx, 0xfffffffe
mov edx, dword [eax + 4]
and edx, 1
or edx, ecx
mov dword [eax + 4], edx
mov edx, dword [edi + 4]
and edx, 1
or edx, ecx
mov dword [eax + 4], edx
mov edx, dword [esp + 4]
or byte [edi + 4], 1
and dword [eax + 4], 1
mov ecx, eax
jmp 0x1001de03
mov dword [esp + 0x20], 0
jmp 0x1001caf6
lea esi, [esp + 0x54]
mov ecx, esi
mov edx, edi
call 0x10000270
mov esi, dword [esi]
jmp 0x1001cc7a
and edx, 0xfffffffe
mov dword [eax + 4], edx
mov esi, dword [edi]
test esi, esi
je 0x1001dc2e
mov eax, dword [esi + 4]
and eax, 0xfffffffe
mov dword [edi], eax
mov eax, edi
and eax, 0xfffffffe
mov ecx, dword [esi + 4]
and ecx, 1
or ecx, eax
mov dword [esi + 4], ecx
mov ecx, dword [edi + 4]
mov eax, ecx
and eax, 0xfffffffe
je 0x1001da8b
mov edx, dword [eax]
and edx, 0xfffffffe
and ecx, 1
or ecx, edx
mov dword [edi + 4], ecx
mov dword [eax], edi
mov ecx, dword [esi + 4]
and ecx, 1
or ecx, eax
mov dword [esi + 4], ecx
jmp 0x1001cc7a
and edx, 0xfffffffe
mov dword [eax], edx
mov ecx, dword [esi + 4]
and ecx, 1
or ecx, eax
mov dword [esi + 4], ecx
and esi, 0xfffffffe
mov eax, dword [edi + 4]
and eax, 1
lea ecx, [eax + esi]
mov dword [edi + 4], ecx
test esi, esi
je 0x1001da8b
mov ecx, dword [esi]
and ecx, 0xfffffffe
or ecx, eax
mov dword [edi + 4], ecx
mov dword [esi], edi
mov eax, dword [edi + 4]
and eax, 0xfffffffe
je 0x1001cd98
mov ecx, dword [eax + 4]
test cl, 1
jne 0x1001cdad
mov dword [edi + 4], eax
jmp 0x1001cbc6
lea ecx, [esp + 0x58]
mov dword [esp + 0x1c], ecx
jmp 0x1001cc16
and ecx, 0xfffffffe
mov dword [eax + 4], ecx
mov eax, dword [edi + 4]
mov ecx, eax
or ecx, 1
mov dword [edi + 4], ecx
and eax, 0xfffffffe
je 0x1001da8b
mov ecx, dword [eax]
or ecx, 1
mov dword [edi + 4], ecx
mov dword [eax], edi
mov dword [esi], eax
jmp 0x1001cbc6
mov eax, edx
jmp 0x1001ca0c
or ecx, 1
mov dword [edi + 4], ecx
jmp 0x1001da8b
mov dword [esp + 0x28], 0x100000
jmp 0x1001ca75
or eax, 1
mov dword [edi + 4], eax
jmp 0x1001e124
mov dword [0x1008f8f4], 0x100823a2
int3
mov dword [edi], 0
mov dword [0x1008f8f4], 0x100823a2
int3
mov ecx, esi
and ecx, 0xfffffffe
mov edx, dword [eax + 4]
and edx, 1
or edx, ecx
mov dword [eax + 4], edx
nop dword [eax]
mov edi, esi
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov ebx, edx
and ebx, 0xfffff000
mov esi, dword [esi + 8]
mov ecx, 0xfffff000
and esi, ecx
xor ecx, ecx
cmp ebx, esi
seta cl
mov esi, 0xffffffff
cmovb ecx, esi
test ecx, ecx
je 0x1001dcc0
cmp ecx, 0xffffffff
jne 0x1001dcdd
mov esi, dword [edi]
test esi, esi
je 0x1001dfcf
mov ecx, dword [esi + 4]
test cl, 1
jne 0x1001dd00
mov edx, dword [esi]
test edx, edx
je 0x1001dd1d
test byte [edx + 4], 1
jne 0x1001dd00
jmp 0x1001dd1d
mov esi, dword [esp + 0x18]
test dl, 0x10
jne 0x1001e117
xor ecx, ecx
cmp esi, edi
seta dl
jb 0x1001dc92
mov cl, dl
cmp ecx, 0xffffffff
je 0x1001dc92
test ecx, ecx
je 0x1001dd07
mov ebx, dword [edi + 4]
mov esi, ebx
and esi, 0xfffffffe
je 0x1001dd64
mov ecx, dword [esi]
test ecx, ecx
je 0x1001dd64
test byte [ecx + 4], 1
je 0x1001dd64
nop word [eax + eax]
mov eax, edi
jmp 0x1001dc60
mov ebx, dword [edi + 4]
mov dword [esp + 0x1c], eax
cmp ebx, 1
mov edx, dword [esp + 4]
jbe 0x1001dde7
jmp 0x1001dce4
or ecx, 1
mov dword [esi + 4], ecx
mov edx, dword [edi + 4]
mov ecx, edx
and ecx, 0xfffffffe
je 0x1001e10c
mov esi, dword [ecx]
test esi, esi
je 0x1001dd43
mov ebx, dword [esi + 4]
test bl, 1
jne 0x1001df80
or edx, 1
mov dword [edi + 4], edx
mov edx, dword [ecx]
or edx, 1
mov dword [edi + 4], edx
mov dword [ecx], edi
mov esi, ecx
cmp dword [eax], edi
jne 0x1001dc49
mov dword [eax], esi
jmp 0x1001dc60
mov ecx, dword [edi]
test ecx, ecx
je 0x1001e124
mov edx, dword [ecx + 4]
test dl, 1
je 0x1001df16
and edx, 0xfffffffe
je 0x1001e11e
mov esi, dword [edx]
test esi, esi
jne 0x1001deda
jmp 0x1001dee4
mov ecx, dword [esi + 4]
and ecx, 0xfffffffe
mov dword [edi], ecx
mov ecx, edi
and ecx, 0xfffffffe
mov edx, dword [esi + 4]
and edx, 1
or edx, ecx
mov dword [esi + 4], edx
mov edx, dword [edi + 4]
mov ecx, edx
and ecx, 0xfffffffe
je 0x1001da8b
mov ebx, dword [ecx]
and ebx, 0xfffffffe
and edx, 1
or edx, ebx
mov dword [edi + 4], edx
mov dword [ecx], edi
mov edx, dword [esi + 4]
and edx, 1
or edx, ecx
mov dword [esi + 4], edx
or byte [edi + 4], 1
cmp dword [eax], edi
jne 0x1001df50
mov dword [eax], esi
mov edi, eax
jmp 0x1001dd00
mov ecx, dword [edi]
test ecx, ecx
jne 0x1001dea6
cmp dword [eax], edi
mov ebx, dword [esp + 0x2c]
jne 0x1001deff
mov dword [eax], ecx
mov ecx, dword [esp + 0x58]
shr ebx, 0xc
mov edi, dword [esp + 0x14]
mov dword [edi + 0x4c], ecx
mov eax, ebx
mov ecx, dword [esp + 0x18]
mov dword [ecx], 0
mov ecx, dword [esp + 0xc]
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x30], ecx
mov dword [edx + ecx*4 + 0x14], 0
mov ecx, dword [esp + 0x24]
sub eax, ecx
je 0x1001e2e0
shl eax, 0xc
mov esi, dword [esp + 0xc]
add ecx, esi
lea edi, [ecx + ecx*2]
mov ecx, 0xfff
mov esi, edx
mov edx, dword [edx + edi*4 + 0x18]
and edx, ecx
or edx, eax
mov dword [esi + edi*4 + 0x18], edx
add ebx, dword [esp + 0xc]
lea edx, [ebx + ebx*2]
and ecx, dword [esi + edx*4 + 0xc]
or ecx, eax
mov dword [esi + edx*4 + 0xc], ecx
lea ebx, [esi + edi*4]
add ebx, 0x10
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x4c]
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], 0
test edx, edx
je 0x1001df67
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x2c], edi
lea eax, [esi + edi*4]
add eax, 0x18
mov dword [esp + 0x18], eax
xor edi, edi
lea eax, [esp + 0x58]
jmp 0x1001e15f
mov edx, dword [ecx + 4]
and edx, 0xfffffffe
mov dword [edi], edx
mov edx, edi
and edx, 0xfffffffe
mov esi, dword [ecx + 4]
and esi, 1
or esi, edx
mov dword [ecx + 4], esi
mov esi, dword [edi + 4]
and esi, 1
or esi, edx
mov edx, dword [esp + 4]
mov dword [ecx + 4], esi
or byte [edi + 4], 1
and dword [ecx + 4], 1
jmp 0x1001ddf1
test byte [esi + 4], 1
jne 0x1001e08e
and ebx, 1
or ebx, edx
mov dword [ecx + 4], ebx
or byte [edx + 4], 1
mov esi, dword [edi]
test esi, esi
jne 0x1001dd92
jmp 0x1001dc2e
and ecx, 0xfffffffe
mov edx, dword [eax + 4]
and edx, 1
or edx, ecx
mov dword [eax + 4], edx
mov edx, dword [esp + 4]
jmp 0x1001ddff
or edx, 1
mov dword [ecx + 4], edx
mov ecx, dword [ecx]
test ecx, ecx
je 0x1001df2e
mov edx, dword [ecx + 4]
test dl, 1
jne 0x1001e039
mov ecx, dword [edi + 4]
mov esi, ecx
and esi, 0xfffffffe
je 0x1001da8b
mov edx, dword [esi]
and edx, 0xfffffffe
and ecx, 1
or ecx, edx
mov dword [edi + 4], ecx
mov dword [esi], edi
jmp 0x1001ddd6
mov ecx, esi
and ecx, 0xfffffffe
mov edx, dword [eax + 4]
and edx, 1
or edx, ecx
mov dword [eax + 4], edx
mov edi, eax
jmp 0x1001dd00
lea eax, [esp + 0x58]
mov dword [ebx], 0
mov dword [esi + edi*4 + 0x14], 1
mov edx, esi
jmp 0x1001e2c3
and ebx, 0xfffffffe
mov dword [ecx], ebx
mov edx, dword [esi + 4]
and edx, 1
or edx, ecx
mov dword [esi + 4], edx
and esi, 0xfffffffe
mov ecx, dword [edi + 4]
and ecx, 1
lea edx, [ecx + esi]
mov dword [edi + 4], edx
test esi, esi
je 0x1001da8b
mov edx, dword [esi]
and edx, 0xfffffffe
or edx, ecx
mov dword [edi + 4], edx
mov dword [esi], edi
mov ecx, dword [edi + 4]
and ecx, 0xfffffffe
je 0x1001dfc7
mov edx, dword [ecx + 4]
test dl, 1
jne 0x1001e0e1
mov dword [edi + 4], ecx
jmp 0x1001dd55
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x1001dc34
mov ecx, dword [esp + 0x18]
cmp dword [esi], ecx
jne 0x1001e0cc
mov dword [esi], edi
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
mov dword [edi], ecx
mov ecx, dword [esp + 0xc]
lea edx, [ecx + ecx*2]
mov ebx, dword [esp + 4]
mov ecx, dword [ebx + edx*4 + 0x14]
and ecx, 0xfffffffe
mov esi, dword [edi + 4]
and esi, 1
or esi, ecx
mov dword [edi + 4], esi
mov edx, dword [ebx + edx*4 + 0x14]
and edx, 1
or edx, ecx
mov dword [edi + 4], edx
cmp dword [eax], edi
jne 0x1001e139
mov dword [eax], 0
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 4]
jmp 0x1001de03
and edx, 0xfffffffe
mov dword [ecx + 4], edx
mov esi, dword [edi]
test esi, esi
je 0x1001dc2e
mov ecx, dword [esi + 4]
and ecx, 0xfffffffe
mov dword [edi], ecx
mov ecx, edi
and ecx, 0xfffffffe
mov edx, dword [esi + 4]
and edx, 1
or edx, ecx
mov dword [esi + 4], edx
mov edx, dword [edi + 4]
mov ecx, edx
and ecx, 0xfffffffe
je 0x1001da8b
mov ebx, dword [ecx]
and ebx, 0xfffffffe
and edx, 1
or edx, ebx
mov dword [edi + 4], edx
mov dword [ecx], edi
mov edx, dword [esi + 4]
and edx, 1
or edx, ecx
mov dword [esi + 4], edx
jmp 0x1001ddd6
and ebx, 1
mov dword [esp + 0x30], esi
mov esi, dword [edx + 4]
and esi, 0xfffffffe
or esi, ebx
mov dword [edx + 4], esi
mov edx, dword [esp + 0x30]
and byte [edx + 4], 0xfe
mov edx, dword [ecx + 4]
mov esi, edx
and esi, 0xfffffffe
je 0x1001da8b
mov ebx, dword [esi]
and ebx, 0xfffffffe
and edx, 1
or edx, ebx
mov dword [ecx + 4], edx
mov dword [esi], ecx
mov dword [edi], esi
jmp 0x1001dd92
mov ecx, edi
and ecx, 0xfffffffe
mov edx, dword [esi + 4]
and edx, 1
or edx, ecx
mov dword [esi + 4], edx
jmp 0x1001dfe9
and edx, 0xfffffffe
mov dword [ecx + 4], edx
mov ecx, dword [edi + 4]
mov edx, ecx
or edx, 1
mov dword [edi + 4], edx
and ecx, 0xfffffffe
je 0x1001da8b
mov edx, dword [ecx]
or edx, 1
mov dword [edi + 4], edx
mov dword [ecx], edi
mov dword [esi], ecx
jmp 0x1001dd55
or edx, 1
mov dword [edi + 4], edx
jmp 0x1001da8b
xor esi, esi
jmp 0x1001dccd
and ebx, 1
mov dword [ecx + 4], ebx
mov dword [0x1008f8f4], 0x100823a2
int3
and dword [eax + 4], 1
jmp 0x1001e028
mov edx, dword [eax]
mov ecx, 0xffffffff
test edx, edx
je 0x1001e2a4
mov esi, edi
mov ebx, eax
mov eax, dword [edx]
test eax, eax
je 0x1001e17d
mov ecx, dword [eax + 4]
test cl, 1
je 0x1001e17d
mov edi, dword [eax]
test edi, edi
je 0x1001e17d
test byte [edi + 4], 1
jne 0x1001e1d8
mov edi, ebx
mov eax, edx
mov ecx, dword [esp + 0x18]
mov ebx, dword [ecx]
mov ecx, ebx
and ecx, 0xfffff000
mov esi, dword [eax + 8]
mov edx, 0xfffff000
and esi, edx
xor edx, edx
cmp ecx, esi
seta dl
mov ecx, 0xffffffff
cmovb edx, ecx
cmp edx, 0xffffffff
je 0x1001e150
test edx, edx
jne 0x1001e210
mov edx, dword [esp + 0x1c]
test bl, 0x10
jne 0x1001e3c8
xor ecx, ecx
cmp edx, eax
seta dl
jb 0x1001e150
mov cl, dl
mov edx, dword [eax + 4]
and edx, 0xfffffffe
test edx, edx
jne 0x1001e15f
jmp 0x1001e2a4
mov dword [esp + 0x20], esi
and ecx, 0xfffffffe
mov dword [edx], ecx
mov edi, edx
and edi, 0xfffffffe
mov ecx, dword [eax]
mov esi, dword [eax + 4]
and esi, 1
or esi, edi
mov dword [eax + 4], esi
test ecx, ecx
je 0x1001e124
and byte [ecx + 4], 0xfe
cmp dword [ebx], edx
mov esi, dword [esp + 0x20]
jne 0x1001e217
mov edi, ebx
mov dword [ebx], eax
jmp 0x1001e181
mov ecx, 1
jmp 0x1001e1c9
and eax, 0xfffffffe
mov ecx, dword [ebx + 4]
and ecx, 1
lea edx, [ecx + eax]
mov dword [ebx + 4], edx
test eax, eax
je 0x1001da8b
mov edx, dword [eax]
and edx, 0xfffffffe
or edx, ecx
mov dword [ebx + 4], edx
mov dword [eax], ebx
mov ecx, dword [ebx + 4]
and ecx, 1
mov edx, dword [eax + 4]
and edx, 0xfffffffe
or edx, ecx
mov dword [eax + 4], edx
or byte [ebx + 4], 1
test esi, esi
je 0x1001dc34
cmp dword [esi], ebx
je 0x1001e38d
jmp 0x1001e394
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
mov ebx, ecx
mov edx, 0xfffff000
and ebx, edx
mov esi, dword [eax + 8]
and esi, edx
xor edx, edx
cmp ebx, esi
seta dl
mov esi, 0xffffffff
cmovb edx, esi
test edx, edx
jne 0x1001e37a
jmp 0x1001e3a4
mov esi, dword [esp + 0x20]
mov ebx, eax
test edx, edx
jne 0x1001e163
mov edi, esi
mov ebx, dword [esp + 0x1c]
mov dword [ebx], 0
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x2c]
mov dword [edx + esi*4 + 0x14], 1
cmp ecx, 1
je 0x1001e316
mov dword [eax], ebx
mov eax, dword [esp + 0x58]
test eax, eax
je 0x1001e124
and byte [eax + 4], 0xfe
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x4c], eax
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x34], 0
je 0x1001e405
cmp ecx, 2
mov eax, 1
cmovae eax, ecx
shl eax, 2
lea esi, [eax + eax*2]
mov eax, dword [esp + 0xc]
shl eax, 0xc
add eax, edx
mov ecx, dword [esp + 0x30]
lea edi, [edx + ecx*4]
add edi, 0x18
xor ebx, ebx
jmp 0x1001e3e3
lea ecx, [edx + esi*4]
add ecx, 0x14
mov edx, dword [eax + 4]
and edx, 1
mov esi, edx
or esi, ebx
mov dword [eax + 4], esi
mov esi, dword [ebx]
and esi, 0xfffffffe
or esi, edx
mov dword [eax + 4], esi
mov dword [ebx], eax
mov edx, dword [eax + 4]
and edx, 1
mov esi, dword [ecx]
and esi, 0xfffffffe
or esi, edx
mov dword [ecx], esi
or byte [eax + 4], 1
cmp dword [edi], eax
jne 0x1001e357
mov dword [edi], ebx
mov edx, dword [esp + 4]
jmp 0x1001e2c5
mov ecx, dword [edi + 4]
mov edx, ecx
and edx, 0xfffffffe
cmp eax, edx
mov edx, dword [esp + 4]
jne 0x1001e2c5
and ecx, 1
or ecx, dword [esp + 0x1c]
mov dword [edi + 4], ecx
jmp 0x1001e2c5
xor ecx, ecx
inc ecx
cmp edx, 0xffffffff
je 0x1001e3ba
mov edx, dword [eax + 4]
and edx, 0xfffffffe
jmp 0x1001e294
mov dword [esi], eax
jmp 0x1001e264
mov ecx, dword [esi + 4]
and ecx, 1
or ecx, eax
mov dword [esi + 4], ecx
jmp 0x1001e264
test cl, 0x10
mov edx, 0
cmove edx, dword [esp + 0x1c]
xor ecx, ecx
cmp edx, eax
seta dl
jae 0x1001e3c4
mov edx, dword [eax]
xor ecx, ecx
dec ecx
jmp 0x1001e294
mov cl, dl
jmp 0x1001e382
xor edx, edx
jmp 0x1001e1be
mov dword [edi + ebx], 3
add ebx, 0xc
add eax, 0x1000
cmp esi, ebx
je 0x1001e405
cmp byte [ebp + 8], 0
jne 0x1001e4bc
test byte [edi + ebx], 8
je 0x1001e3d0
add dword [edx + 0xc], 0xffffffff
mov ecx, eax
mov eax, dword [esp + 0x14]
add dword [eax + 0x44], 0xffffffff
mov eax, ecx
jmp 0x1001e3d0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
or dword [ecx], eax
cmp dword [edx + 0xc], 0
jne 0x1001e41c
cmp dword [esp + 0x44], 0
jne 0x1001e459
xor esi, esi
test byte [esp + 0x3c], 1
jne 0x1001e43a
mov ecx, dword [esp + 8]
test ecx, ecx
mov edi, dword [esp + 0x14]
je 0x1001e43a
mov eax, dword [esp + 0x34]
add dword [edi + 0x30], eax
mov esi, ecx
push dword [esp + 0x48]
call dword [0x1008beb0]
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.10039ea0
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [esp + 0x14]
mov esi, dword [edi + 0x34]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], 0
xor ecx, ecx
dec ecx
xor eax, eax
cmp esi, edx
setb al
cmova eax, ecx
cmp eax, 0xffffffff
je 0x1001e4e7
test eax, eax
je 0x1001e531
test esi, esi
je 0x1001e124
mov ecx, dword [esi + 8]
xor ebx, ebx
mov eax, ecx
and eax, 0xfffffffe
je 0x1001e584
mov edx, dword [eax + 4]
test edx, edx
je 0x1001e584
test byte [edx + 8], 1
je 0x1001e584
mov edx, dword [esp + 4]
jmp 0x1001e6b1
test byte [edi + ebx], 4
jne 0x1001e3ed
push 0x1000
push 0
push eax
mov dword [esp + 0x18], eax
call fcn.1007ae52
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
add esp, 0xc
jmp 0x1001e3ed
test esi, esi
je 0x1001e50f
mov eax, dword [esi + 4]
test eax, eax
je 0x1001e50f
xor ebx, ebx
test byte [eax + 8], 1
jne 0x1001e6b1
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x1001e50f
test byte [ecx + 8], 1
jne 0x1001e6b1
lea edi, [esp + 0x54]
mov ecx, edi
mov edx, esi
call 0x10000170
mov eax, dword [edi]
test eax, eax
je 0x1001e124
and byte [eax + 8], 0xfe
xor ebx, ebx
jmp 0x1001e5de
xor edx, edx
test esi, esi
je 0x1001e578
mov ecx, dword [esi + 8]
cmp ecx, 1
ja 0x1001e63c
mov eax, dword [esi + 4]
test eax, eax
je 0x1001e578
mov ecx, dword [eax + 8]
and ecx, 0xfffffffe
mov dword [esi + 4], ecx
mov ecx, esi
and ecx, 0xfffffffe
mov edx, dword [eax + 8]
and edx, 1
or edx, ecx
mov dword [eax + 8], edx
mov edx, dword [esi + 8]
and edx, 1
or edx, ecx
mov dword [eax + 8], edx
or byte [esi + 8], 1
and dword [eax + 8], 1
mov edx, eax
mov dword [edi + 0x34], edx
mov edx, dword [esp + 4]
jmp 0x1001e65c
mov eax, dword [esi + 4]
test eax, eax
je 0x1001e645
test byte [eax + 8], 1
jne 0x1001e5cf
or ecx, 1
mov dword [esi + 8], ecx
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x1001e5aa
mov edx, dword [ecx + 8]
test dl, 1
jne 0x1001e5ea
or byte [eax + 8], 1
mov ecx, dword [esi + 8]
mov eax, ecx
and eax, 0xfffffffe
je 0x1001da8b
mov edx, dword [eax + 4]
and edx, 0xfffffffe
and ecx, 1
or ecx, edx
mov dword [esi + 8], ecx
mov dword [eax + 4], esi
jmp 0x1001e5de
lea edi, [esp + 0x54]
mov ecx, edi
mov edx, esi
call fcn.1001e880
mov eax, dword [edi]
lea esi, [esp + 0x58]
mov dword [esi + 4], eax
jmp 0x1001e4b3
and edx, 0xfffffffe
mov dword [ecx + 8], edx
mov eax, dword [esi + 4]
test eax, eax
je 0x1001e650
mov ecx, dword [eax + 8]
and ecx, 0xfffffffe
mov dword [esi + 4], ecx
mov ecx, esi
and ecx, 0xfffffffe
mov edx, dword [eax + 8]
and edx, 1
or edx, ecx
mov dword [eax + 8], edx
mov edx, dword [esi + 8]
mov ecx, edx
and ecx, 0xfffffffe
je 0x1001da8b
mov edi, dword [ecx + 4]
and edi, 0xfffffffe
and edx, 1
or edx, edi
mov dword [esi + 8], edx
mov dword [ecx + 4], esi
mov edx, dword [eax + 8]
and edx, 1
or edx, ecx
mov dword [eax + 8], edx
jmp 0x1001e5de
lea ebx, [esp + 0x58]
jmp 0x1001e493
or ecx, 1
mov dword [esi + 8], ecx
jmp 0x1001e124
mov dword [esi + 4], 0
jmp 0x1001dc34
xor esi, esi
mov dword [edx + 4], esi
mov dword [edx + 8], esi
mov ecx, dword [esp + 8]
test ecx, ecx
sete al
mov edx, dword [esp + 0x3c]
or dl, al
je 0x1001e431
jmp 0x1001e43a
xor eax, eax
cmp esi, edx
setb al
mov ecx, 0xffffffff
cmova eax, ecx
test eax, eax
je 0x1001e6b7
cmp eax, 0xffffffff
jne 0x1001e6cd
test esi, esi
je 0x1001e7c3
mov eax, dword [esi + 4]
test eax, eax
je 0x1001e7c3
test byte [eax + 8], 1
je 0x1001e6f7
mov edi, esi
mov esi, eax
jmp 0x1001e680
xor ecx, ecx
test esi, esi
je 0x1001e763
mov eax, dword [esi + 8]
mov ebx, edi
cmp eax, 1
jbe 0x1001e72a
jmp 0x1001e6d8
test esi, esi
je 0x1001e793
mov eax, dword [esi + 8]
and eax, 0xfffffffe
je 0x1001e793
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x1001e793
test byte [ecx + 8], 1
jne 0x1001e6b1
jmp 0x1001e793
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x1001e704
test byte [ecx + 8], 1
jne 0x1001e6b1
lea ecx, [esp + 0x50]
mov edx, esi
call 0x10000170
mov eax, dword [esp + 0x50]
cmp dword [edi + 4], esi
jne 0x1001e823
mov dword [edi + 4], eax
mov esi, eax
mov edx, dword [esp + 4]
jmp 0x1001e680
mov eax, dword [esi + 4]
test eax, eax
je 0x1001e763
mov ecx, dword [eax + 8]
and ecx, 0xfffffffe
mov dword [esi + 4], ecx
mov ecx, esi
and ecx, 0xfffffffe
mov edx, dword [eax + 8]
and edx, 1
or edx, ecx
mov dword [eax + 8], edx
mov edx, dword [esi + 8]
and edx, 1
or edx, ecx
mov dword [eax + 8], edx
mov edx, dword [esp + 4]
or byte [esi + 8], 1
and dword [eax + 8], 1
mov ecx, eax
cmp dword [edi + 4], esi
jne 0x1001e783
mov dword [edi + 4], ecx
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x14]
mov dword [edi + 0x34], eax
test edx, edx
jne 0x1001e65c
jmp 0x1001da8b
and ecx, 0xfffffffe
mov eax, dword [edi + 8]
and eax, 1
or eax, ecx
mov dword [edi + 8], eax
jmp 0x1001e76b
lea ecx, [esp + 0x4c]
mov edx, esi
call fcn.1001e880
mov eax, dword [esp + 0x4c]
cmp dword [edi + 4], esi
je 0x1001e7be
mov ecx, eax
and ecx, 0xfffffffe
mov edx, dword [edi + 8]
and edx, 1
or edx, ecx
mov dword [edi + 8], edx
mov esi, edi
jmp 0x1001e4b3
mov dword [edi + 4], eax
jmp 0x1001e7b7
test ebx, ebx
je 0x1001e838
cmp dword [ebx + 4], edx
jne 0x1001e811
mov dword [ebx + 4], esi
test edx, edx
je 0x1001e850
test esi, esi
je 0x1001da8b
mov eax, dword [edx + 4]
mov dword [esi + 4], eax
mov ecx, dword [edx + 8]
and ecx, 0xfffffffe
mov eax, dword [esi + 8]
and eax, 1
or eax, ecx
mov dword [esi + 8], eax
mov ecx, dword [edx + 8]
and ecx, 1
and eax, 0xfffffffe
or eax, ecx
mov dword [esi + 8], eax
cmp dword [edi + 4], esi
jne 0x1001e86c
mov dword [edi + 4], 0
jmp 0x1001e76b
mov eax, esi
and eax, 0xfffffffe
mov ecx, dword [ebx + 8]
and ecx, 1
or ecx, eax
mov dword [ebx + 8], ecx
jmp 0x1001e7cf
mov ecx, eax
and ecx, 0xfffffffe
mov edx, dword [edi + 8]
and edx, 1
or edx, ecx
mov dword [edi + 8], edx
jmp 0x1001e71f
mov dword [0x1008f8f4], 0x100823a2
int3
test esi, esi
je 0x1001da8b
mov dword [esi + 4], 0
mov eax, dword [esi + 8]
and eax, 1
mov dword [esi + 8], eax
xor ecx, ecx
jmp 0x1001e7f8
and dword [edi + 8], 1
jmp 0x1001e76b