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

Disassembly:
mov dword [esp + 4], edx
mov edx, ecx
mov dword [esp + 8], edx
mov ecx, dword [esi]
test ecx, ecx
je 0x1001c2bd
mov eax, dword [ecx + 4]
test al, 1
je 0x1001c2bd
mov edx, dword [ecx]
test edx, edx
je 0x1001c2bd
test byte [edx + 4], 1
jne 0x1001c323
mov ecx, esi
mov eax, dword [ebx + 0x30]
mov ebx, eax
and ebx, 0xfffff000
mov esi, dword [ecx + 8]
mov edx, 0xfffff000
jmp dword [ecx]
salc
xor edx, edx
cmp ebx, esi
seta dl
mov esi, 0xffffffff
cmovb edx, esi
cmp edx, 0xffffffff
jne 0x1001c300
mov esi, dword [ecx]
mov eax, 0xffffffff
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test esi, esi
jne 0x1001c29a
jmp 0x1001c3f2
test edx, edx
jne 0x1001c359
test al, 0x10
mov edx, 0
cmove edx, dword [esp + 0x14]
xor eax, eax
cmp edx, ecx
seta dl
jb 0x1001c2e8
mov al, dl
mov esi, dword [ecx + 4]
and esi, 0xfffffffe
jmp 0x1001c2ef
and eax, 0xfffffffe
mov dword [esi], eax
mov edx, esi
and edx, 0xfffffffe
mov eax, dword [ecx]
mov ebx, dword [ecx + 4]
and ebx, 1
or ebx, edx
mov dword [ecx + 4], ebx
test eax, eax
je 0x1001dc4e
and byte [eax + 4], 0xfe
mov edx, dword [esp + 8]
cmp dword [edx], esi
mov ebx, dword [esp + 0xc]
jne 0x1001c360
mov dword [edx], ecx
jmp 0x1001c2bf
mov eax, 1
jmp 0x1001c31b
and ecx, 0xfffffffe
mov eax, dword [edx + 4]
and eax, 1
mov esi, edx
lea edx, [eax + ecx]
mov dword [esi + 4], edx
test ecx, ecx
je 0x1001d052
mov edx, dword [ecx]
and edx, 0xfffffffe
or edx, eax
mov dword [esi + 4], edx
mov dword [ecx], esi
mov eax, dword [esi + 4]
and eax, 1
mov edx, dword [ecx + 4]
and edx, 0xfffffffe
or edx, eax
mov dword [ecx + 4], edx
or byte [esi + 4], 1
mov edx, dword [esp + 4]
test edx, edx
je 0x1001d06d
cmp dword [edx], esi
je 0x1001ca01
jmp 0x1001ca08
mov eax, dword [ebx + 0x30]
mov edx, eax
mov ebx, 0xfffff000
and edx, ebx
mov esi, dword [ecx + 8]
and esi, ebx
xor ebx, ebx
cmp edx, esi
seta bl
mov edx, 0xffffffff
cmovb ebx, edx
test ebx, ebx
jne 0x1001c9cf
jmp 0x1001ca18
mov ebx, dword [esp + 0xc]
mov edx, ecx
test esi, esi
jne 0x1001c2a0
mov edx, dword [esp + 4]
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x2c], 1
cmp eax, 1
je 0x1001c8ca
mov eax, dword [esp + 0x14]
mov dword [ecx], eax
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x1001dc4e
and byte [ecx + 4], 0xfe
mov eax, dword [esp + 0x10]
mov dword [esp + 4], ecx
mov dword [eax + 0x4c], ecx
jmp 0x1001ca69
mov ebx, edx
mov esi, dword [esp + 0x14]
and esi, 0xfffffffe
mov eax, dword [ecx + 4]
and eax, 1
lea edx, [eax + esi]
mov dword [ecx + 4], edx
test esi, esi
je 0x1001d052
mov edx, dword [esi]
and edx, 0xfffffffe
or edx, eax
mov dword [ecx + 4], edx
mov dword [esi], ecx
mov eax, dword [ecx + 4]
and eax, 1
mov edx, dword [esi + 4]
and edx, 0xfffffffe
or edx, eax
mov dword [esi + 4], edx
or byte [ecx + 4], 1
cmp dword [ebx], ecx
jne 0x1001c988
mov dword [ebx], esi
jmp 0x1001c40f
mov eax, dword [ebx + 4]
mov edx, eax
and edx, 0xfffffffe
cmp ecx, edx
jne 0x1001c40f
and eax, 1
or eax, esi
mov dword [ebx + 4], eax
jmp 0x1001c40f
xor eax, eax
inc eax
cmp ebx, 0xffffffff
je 0x1001ca2d
mov esi, dword [ecx + 4]
and esi, 0xfffffffe
jmp 0x1001c3e0
mov dword [edx], ecx
jmp 0x1001c3b3
mov eax, dword [edx + 4]
and eax, 1
or eax, ecx
mov dword [edx + 4], eax
jmp 0x1001c3b3
test al, 0x10
mov edx, 0
cmove edx, dword [esp + 0x14]
xor eax, eax
cmp edx, ecx
seta dl
jae 0x1001ca3e
mov esi, dword [ecx]
xor eax, eax
dec eax
jmp 0x1001c3e0
mov al, dl
jmp 0x1001c9d7
mov edx, edi
and edx, 0xfff00000
mov eax, dword [edx + 0xc]
mov dword [esp + 0x48], eax
mov eax, edi
shr eax, 0xc
movzx ecx, al
lea eax, [ecx*4]
lea eax, [eax + eax*2]
or eax, edx
mov esi, ebx
shr esi, 0xc
mov dword [esp + 0xc], eax
mov eax, dword [eax + 0x18]
mov dword [esp + 0x1c], eax
mov eax, ebx
xor ebx, ebx
cmp eax, 0x1000
mov dword [esp + 8], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x38], esi
cmp byte [edi], cl
xor bl, 2
add byte [eax], al
mov dword [esp + 0x2c], edi
xor eax, eax
inc eax
cmp esi, 2
cmovae eax, esi
mov dword [esp + 0x24], eax
lea eax, [ecx + ecx*2]
lea ecx, [edx + eax*4]
add ecx, 0x18
mov dword [esp + 0x18], ecx
lea eax, [edx + eax*4]
add eax, 0x24
mov cl, 1
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
lea edx, [ebx + eax]
lea eax, [edx + edx*2]
mov edi, dword [esp + 8]
test byte [edi + eax*4 + 0x18], 0x60
jne 0x1001cb1a
add ebx, 1
cmp ebx, dword [esp + 0x38]
setb cl
add esi, 0xffffffff
add dword [esp + 0x18], 0xc
mov eax, dword [esp + 4]
add eax, 0xc
cmp ebx, dword [esp + 0x24]
jne 0x1001cadd
jmp 0x1001cc51
mov dword [esp + 0x40], edx
cmp ebx, dword [esp + 0x38]
jae 0x1001ce3b
mov dword [esp + 0x3c], ecx
xor edx, edx
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x2c]
nop dword [eax]
mov ecx, dword [eax]
test cl, 0x60
je 0x1001cb52
and ecx, 0xffffff9f
mov dword [eax], ecx
add edx, 1
add eax, 0xc
cmp esi, edx
jne 0x1001cb3a
mov edx, esi
mov ecx, edx
shl ecx, 0xc
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x40]
je 0x1001cdd8
shl eax, 0xc
add eax, dword [esp + 8]
mov dword [esp + 0x34], eax
and eax, 0xff000
mov edx, ecx
mov ecx, 0x100000
sub ecx, eax
cmp ecx, edx
cmovae ecx, edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x30], edx
push 4
push 0x1000
push ecx
push dword [esp + 0x40]
call dword [0x1008bf2c]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x30]
test eax, eax
je 0x1001cbc2
add dword [esp + 0x34], ecx
sub edx, ecx
mov ecx, 0x100000
cmp edx, ecx
mov ecx, 0x100000
cmovb ecx, edx
test edx, edx
jne 0x1001cb83
test eax, eax
setne al
mov edx, dword [esp + 0x28]
test edx, edx
je 0x1001cc39
mov byte [esp + 0x30], al
test al, al
mov ecx, 0x20
mov eax, 4
cmovne ecx, eax
xor edx, edx
cmp dword [esp + 0x28], 1
je 0x1001cc1b
mov eax, dword [esp + 0x28]
and eax, 0xfffffffe
mov dword [esp + 0x34], eax
xor edx, edx
mov eax, dword [esp + 4]
nop word cs:[eax + eax]
nop dword [eax]
or dword [eax - 0xc], ecx
or dword [eax], ecx
add edx, 2
add eax, 0x18
cmp dword [esp + 0x34], edx
jne 0x1001cc0a
test byte [esp + 0x28], 1
mov al, byte [esp + 0x30]
je 0x1001cc39
add edx, dword [esp + 0x40]
lea eax, [edx + edx*2]
mov edx, dword [esp + 8]
or dword [edx + eax*4 + 0x18], ecx
mov al, byte [esp + 0x30]
test al, al
je 0x1001d521
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
add dword [eax + 0x28], ecx
jmp 0x1001caf6
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x4c]
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0xc]
lea ecx, [eax + 0x10]
mov dword [esp + 0x18], ecx
add eax, 0x18
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], 0
mov dword [esp + 0xc], eax
mov eax, dword [eax]
mov ecx, eax
and ecx, 0xfffff000
mov edx, 0xfffff000
mov esi, ebx
and edx, dword [ebx + 8]
xor ebx, ebx
cmp ecx, edx
seta bl
mov ecx, 0xffffffff
cmovae ecx, ebx
test ecx, ecx
mov ebx, dword [esp + 0x14]
je 0x1001cdbb
cmp ecx, 0xffffffff
jne 0x1001cd28
mov ebx, dword [esi]
test ebx, ebx
je 0x1001dc4e
mov eax, dword [ebx + 4]
mov dword [esp + 0x24], 0
test al, 1
jne 0x1001d12a
mov ecx, dword [ebx]
test ecx, ecx
je 0x1001ccdf
test byte [ecx + 4], 1
jne 0x1001d12a
or eax, 1
mov dword [ebx + 4], eax
mov ecx, dword [esi + 4]
mov eax, ecx
and eax, 0xfffffffe
je 0x1001cf36
mov ebx, dword [eax]
test ebx, ebx
je 0x1001cd05
mov edx, dword [ebx + 4]
test dl, 1
jne 0x1001ceb1
or ecx, 1
mov dword [esi + 4], ecx
mov ecx, dword [eax]
or ecx, 1
mov dword [esi + 4], ecx
mov dword [eax], esi
mov ebx, eax
lea eax, [esp + 0x58]
and byte [ebx + 4], 0xfe
mov esi, eax
mov dword [eax], ebx
jmp 0x1001d12a
test ecx, ecx
je 0x1001cddf
mov eax, dword [esi + 4]
mov dword [esp + 0x24], 0
mov ebx, eax
and ebx, 0xfffffffe
je 0x1001cd52
mov ecx, dword [ebx]
test ecx, ecx
je 0x1001cd52
test byte [ecx + 4], 1
jne 0x1001d12a
mov edx, esi
mov ecx, dword [esi]
test ecx, ecx
je 0x1001cfd9
test byte [ecx + 4], 1
jne 0x1001ce48
or eax, 1
mov dword [edx + 4], eax
mov eax, dword [ecx]
test eax, eax
je 0x1001cd80
mov ebx, dword [eax + 4]
test bl, 1
jne 0x1001ce5a
or byte [ecx + 4], 1
mov eax, dword [edx + 4]
mov ebx, eax
and ebx, 0xfffffffe
je 0x1001d052
mov ecx, dword [ebx]
and ecx, 0xfffffffe
and eax, 1
or eax, ecx
mov dword [edx + 4], eax
mov dword [ebx], edx
lea eax, [esp + 0x58]
jmp 0x1001cd1f
mov dword [esp + 0x3c], 0
mov ebx, dword [esp + 4]
jmp 0x1001cc60
xor edx, edx
test al, 0x10
cmove edx, dword [esp + 0x18]
xor ecx, ecx
cmp edx, esi
seta al
jb 0x1001ccb2
mov cl, al
jmp 0x1001ccad
mov al, 1
jmp 0x1001cbcb
mov eax, dword [esi + 4]
cmp eax, 1
ja 0x1001cefe
mov edx, esi
mov eax, dword [esi]
xor ecx, ecx
test eax, eax
mov esi, dword [esp + 0x1c]
je 0x1001d236
mov ecx, dword [eax + 4]
and ecx, 0xfffffffe
mov dword [edx], ecx
mov ecx, edx
and ecx, 0xfffffffe
mov dword [esp + 4], edx
mov edx, dword [eax + 4]
and edx, 1
or edx, ecx
mov dword [eax + 4], edx
mov edx, dword [esp + 4]
mov edx, dword [edx + 4]
and edx, 1
or edx, ecx
mov dword [eax + 4], edx
mov ecx, dword [esp + 4]
or byte [ecx + 4], 1
and dword [eax + 4], 1
mov ecx, eax
jmp 0x1001d236
mov dword [esp + 0x28], 0
jmp 0x1001cc41
lea esi, [esp + 0x54]
mov ecx, esi
call 0xfffd98a
mov ebx, dword [esi]
jmp 0x1001cda1
and ebx, 0xfffffffe
mov dword [eax + 4], ebx
mov esi, edx
mov ebx, dword [edx]
test ebx, ebx
je 0x1001d067
mov eax, dword [ebx + 4]
and eax, 0xfffffffe
mov dword [esi], eax
mov eax, esi
and eax, 0xfffffffe
mov ecx, dword [ebx + 4]
and ecx, 1
or ecx, eax
mov dword [ebx + 4], ecx
mov ecx, dword [esi + 4]
mov eax, ecx
and eax, 0xfffffffe
je 0x1001d052
mov edx, dword [eax]
and edx, 0xfffffffe
and ecx, 1
or ecx, edx
mov dword [esi + 4], ecx
mov dword [eax], esi
mov ecx, dword [ebx + 4]
and ecx, 1
or ecx, eax
mov dword [ebx + 4], ecx
jmp 0x1001cda1
and edx, 0xfffffffe
mov dword [eax], edx
mov ecx, dword [ebx + 4]
and ecx, 1
or ecx, eax
mov dword [ebx + 4], ecx
and ebx, 0xfffffffe
mov eax, dword [esi + 4]
and eax, 1
lea ecx, [eax + ebx]
mov dword [esi + 4], ecx
test ebx, ebx
je 0x1001d052
mov edx, esi
mov ecx, dword [ebx]
and ecx, 0xfffffffe
or ecx, eax
mov dword [esi + 4], ecx
mov dword [ebx], esi
mov eax, dword [esi + 4]
and eax, 0xfffffffe
je 0x1001cef6
mov ecx, dword [eax + 4]
test cl, 1
jne 0x1001cf0b
mov dword [esi + 4], eax
jmp 0x1001cd17
lea ecx, [esp + 0x58]
mov dword [esp + 0x24], ecx
jmp 0x1001cd3b
and ecx, 0xfffffffe
mov dword [eax + 4], ecx
mov eax, dword [esi + 4]
mov ecx, eax
or ecx, 1
mov dword [esi + 4], ecx
and eax, 0xfffffffe
je 0x1001d052
mov ecx, dword [eax]
or ecx, 1
mov dword [esi + 4], ecx
mov dword [eax], esi
mov dword [ebx], eax
jmp 0x1001cd17
or ecx, 1
mov dword [esi + 4], ecx
jmp 0x1001d052
or eax, 1
mov dword [edx + 4], eax
jmp 0x1001dc4e
mov dword [0x1008f8f4], 0x100823a2
int3
mov dword [esi], 0
mov dword [0x1008f8f4], 0x100823a2
int3
mov eax, dword [esp + 0xc]
mov edx, dword [eax]
mov eax, edx
and eax, 0xfffff000
mov esi, ebx
mov ebx, dword [ebx + 8]
mov ecx, 0xfffff000
and ebx, ecx
xor ecx, ecx
cmp eax, ebx
seta cl
mov eax, 0xffffffff
cmovb ecx, eax
test ecx, ecx
je 0x1001d0ea
cmp ecx, 0xffffffff
mov ebx, esi
jne 0x1001d10a
mov ebx, dword [ebx]
test ebx, ebx
je 0x1001d799
mov ecx, dword [ebx + 4]
test cl, 1
jne 0x1001d12a
mov eax, dword [ebx]
test eax, eax
je 0x1001d145
test byte [eax + 4], 1
jne 0x1001d12a
jmp 0x1001d145
mov eax, dword [esp + 0x18]
test dl, 0x10
jne 0x1001dc3a
xor ecx, ecx
mov ebx, esi
cmp eax, esi
seta al
jb 0x1001d0bd
mov cl, al
jmp 0x1001d0b6
test ecx, ecx
mov edx, dword [esp + 4]
je 0x1001d133
mov ecx, dword [ebx + 4]
mov ebx, ecx
and ebx, 0xfffffffe
je 0x1001d18f
mov eax, dword [ebx]
test eax, eax
je 0x1001d18f
test byte [eax + 4], 1
je 0x1001d18f
nop
mov dword [esp + 4], esi
jmp 0x1001d08a
mov ecx, dword [ebx + 4]
mov dword [esp + 0x24], edx
cmp ecx, 1
jbe 0x1001d216
jmp 0x1001d115
or ecx, 1
mov dword [ebx + 4], ecx
mov edx, dword [esi + 4]
mov ecx, edx
and ecx, 0xfffffffe
je 0x1001dc2f
mov ebx, dword [ecx]
test ebx, ebx
je 0x1001d16a
mov eax, dword [ebx + 4]
test al, 1
jne 0x1001d6ce
or edx, 1
mov dword [esi + 4], edx
mov eax, dword [ecx]
or eax, 1
mov dword [esi + 4], eax
mov dword [ecx], esi
mov ebx, ecx
mov edx, dword [esp + 4]
cmp dword [edx], esi
jne 0x1001dc63
mov dword [edx], ebx
jmp 0x1001d08a
mov edx, dword [esi]
test edx, edx
je 0x1001dc4e
mov ebx, dword [edx + 4]
test bl, 1
je 0x1001d65e
and ebx, 0xfffffffe
je 0x1001dc48
mov eax, dword [ebx]
test eax, eax
jne 0x1001d626
jmp 0x1001d630
mov eax, dword [ebx + 4]
and eax, 0xfffffffe
mov dword [esi], eax
mov eax, esi
and eax, 0xfffffffe
mov ecx, dword [ebx + 4]
and ecx, 1
or ecx, eax
mov dword [ebx + 4], ecx
mov edx, dword [esi + 4]
mov ecx, edx
and ecx, 0xfffffffe
je 0x1001d052
mov eax, dword [ecx]
and eax, 0xfffffffe
and edx, 1
or edx, eax
mov dword [esi + 4], edx
mov dword [ecx], esi
mov eax, dword [ebx + 4]
and eax, 1
or eax, ecx
mov dword [ebx + 4], eax
or byte [esi + 4], 1
mov edx, dword [esp + 4]
cmp dword [edx], esi
jne 0x1001d698
mov dword [edx], ebx
mov esi, edx
jmp 0x1001d12a
mov ecx, dword [ebx]
test ecx, ecx
jne 0x1001d543
cmp dword [edx], ebx
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
jne 0x1001d64b
mov dword [edx], ecx
mov ecx, dword [esp + 0x58]
shr esi, 0xc
mov eax, dword [esp + 0x10]
mov dword [eax + 0x4c], ecx
mov eax, esi
mov ecx, dword [esp + 0x18]
mov dword [ecx], 0
lea edx, [ebx + ebx*2]
mov ecx, dword [esp + 8]
mov dword [esp + 0x2c], edx
mov dword [ecx + edx*4 + 0x14], 0
mov ecx, dword [esp + 0x38]
sub eax, ecx
je 0x1001d49b
shl eax, 0xc
add ecx, ebx
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 8]
lea ebx, [edx + ecx*4]
add ebx, 0x10
mov ecx, 0xfff
mov edx, dword [ebx + 8]
and edx, ecx
or edx, eax
mov dword [esp + 0x1c], ebx
mov dword [ebx + 8], edx
add esi, dword [esp + 0x14]
lea edx, [esi + esi*2]
mov ebx, dword [esp + 8]
and ecx, dword [ebx + edx*4 + 0xc]
or ecx, eax
mov dword [ebx + edx*4 + 0xc], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x4c]
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], 0
test edx, edx
je 0x1001d6af
mov eax, dword [esp + 0x18]
lea eax, [ebx + eax*4]
add eax, 0x18
mov dword [esp + 0x14], eax
mov dword [esp + 4], 0
lea esi, [esp + 0x58]
nop word cs:[eax + eax]
nop
mov eax, dword [esp + 4]
mov dword [esp + 0x24], eax
mov dword [esp + 4], esi
mov esi, dword [edx]
test esi, esi
je 0x1001d310
mov ebx, dword [esi + 4]
test bl, 1
je 0x1001d310
mov ecx, dword [esi]
test ecx, ecx
je 0x1001d310
test byte [ecx + 4], 1
jne 0x1001d38d
mov esi, edx
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, ecx
and eax, 0xfffff000
mov ebx, dword [esi + 8]
mov edx, 0xfffff000
and ebx, edx
xor edx, edx
cmp eax, ebx
seta dl
mov eax, 0xffffffff
cmovb edx, eax
cmp edx, 0xffffffff
mov eax, dword [esp + 0x18]
jne 0x1001d35a
mov edx, dword [esi]
mov ebx, 0xffffffff
mov ecx, dword [esp + 8]
test edx, edx
jne 0x1001d2ea
jmp 0x1001d463
test edx, edx
jne 0x1001d3bf
mov edx, dword [esp + 0x1c]
test cl, 0x10
jne 0x1001dc41
xor ebx, ebx
cmp edx, esi
seta cl
jb 0x1001d341
mov bl, cl
mov ecx, dword [esp + 8]
mov edx, dword [esi + 4]
and edx, 0xfffffffe
test edx, edx
jne 0x1001d2ea
jmp 0x1001d463
and ebx, 0xfffffffe
mov dword [edx], ebx
mov ecx, edx
and ecx, 0xfffffffe
mov ebx, dword [esi]
mov eax, dword [esi + 4]
and eax, 1
or eax, ecx
mov dword [esi + 4], eax
test ebx, ebx
je 0x1001dc4e
and byte [ebx + 4], 0xfe
mov ecx, dword [esp + 4]
cmp dword [ecx], edx
jne 0x1001d3c6
mov dword [ecx], esi
jmp 0x1001d312
mov ebx, 1
jmp 0x1001d376
and esi, 0xfffffffe
mov edx, dword [ecx + 4]
and edx, 1
lea eax, [edx + esi]
mov dword [ecx + 4], eax
test esi, esi
je 0x1001d052
mov eax, dword [esi]
and eax, 0xfffffffe
or eax, edx
mov dword [ecx + 4], eax
mov dword [esi], ecx
mov eax, dword [ecx + 4]
and eax, 1
mov ecx, dword [esi + 4]
and ecx, 0xfffffffe
or ecx, eax
mov dword [esi + 4], ecx
mov eax, dword [esp + 4]
or byte [eax + 4], 1
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x1001d06d
cmp dword [ecx], eax
je 0x1001d8c8
jmp 0x1001d90d
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, eax
mov edx, 0xfffff000
and ecx, edx
mov ebx, dword [esi + 8]
and ebx, edx
xor edx, edx
cmp ecx, ebx
seta dl
mov ecx, 0xffffffff
cmovb edx, ecx
test edx, edx
jne 0x1001d8b1
jmp 0x1001d91d
mov dword [esp + 4], esi
test edx, edx
mov eax, dword [esp + 0x18]
jne 0x1001d2f6
mov edx, dword [esp + 0x24]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [edx], 0
mov dword [ecx + eax*4 + 0x14], 1
cmp ebx, 1
je 0x1001d5df
mov dword [esi], edx
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x58]
test eax, eax
je 0x1001dc4e
and byte [eax + 4], 0xfe
mov dword [edx + 0x4c], eax
mov ecx, dword [esp + 0x38]
cmp dword [esp + 0x20], 0x1000
jb 0x1001d4fc
mov edx, edi
or edx, 1
cmp byte [ebp + 8], 0
mov eax, ecx
mov ecx, 3
cmove ecx, edx
xor edx, edx
inc edx
cmp eax, 2
cmovae edx, eax
shl edx, 2
lea edx, [edx + edx*2]
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x2c]
lea esi, [eax + esi*4]
add esi, 0x18
xor ebx, ebx
jmp 0x1001d4e4
mov dword [esi + ebx], ecx
add ebx, 0xc
cmp edx, ebx
je 0x1001d4fc
test byte [esi + ebx], 8
je 0x1001d4da
mov eax, dword [esp + 8]
add dword [eax + 0xc], 0xffffffff
mov eax, dword [esp + 0x10]
add dword [eax + 0x44], 0xffffffff
jmp 0x1001d4da
cmp byte [ebp + 8], 0
je 0x1001d50c
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
or dword [ecx], eax
mov ecx, dword [esp + 8]
cmp dword [ecx + 0xc], 0
mov esi, dword [esp + 0x10]
jne 0x1001d521
cmp dword [esp + 0x48], 0
jne 0x1001d577
test byte [esp + 0x3c], 1
jne 0x1001dc12
mov ebx, edi
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.100375ba
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ecx + 4]
and eax, 0xfffffffe
mov dword [ebx], eax
mov eax, ebx
and eax, 0xfffffffe
mov edx, dword [ecx + 4]
and edx, 1
or edx, eax
mov dword [ecx + 4], edx
mov edx, dword [ebx + 4]
and edx, 1
or edx, eax
mov dword [ecx + 4], edx
mov edx, dword [esp + 4]
or byte [ebx + 4], 1
and dword [ecx + 4], 1
jmp 0x1001d220
mov ebx, dword [esi + 0x34]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], 0
xor edx, edx
dec edx
xor eax, eax
cmp ebx, ecx
setb al
cmova eax, edx
cmp eax, 0xffffffff
je 0x1001d743
test eax, eax
je 0x1001d85e
test ebx, ebx
je 0x1001dc4e
mov ecx, dword [ebx + 8]
mov dword [esp + 0xc], 0
mov eax, ecx
and eax, 0xfffffffe
je 0x1001d940
mov edx, dword [eax + 4]
test edx, edx
je 0x1001d940
test byte [edx + 8], 1
je 0x1001d940
xor edx, edx
dec edx
jmp 0x1001d9af
lea ecx, [ecx + eax*4]
add ecx, 0x14
mov eax, dword [esi + 4]
and eax, 1
mov ebx, edx
mov edx, eax
or edx, ebx
mov dword [esi + 4], edx
mov edx, dword [ebx]
and edx, 0xfffffffe
or edx, eax
mov dword [esi + 4], edx
mov dword [ebx], esi
mov eax, dword [esi + 4]
and eax, 1
mov edx, dword [ecx]
and edx, 0xfffffffe
or edx, eax
mov dword [ecx], edx
or byte [esi + 4], 1
mov eax, dword [esp + 4]
cmp dword [eax], esi
jne 0x1001d71e
mov dword [eax], ebx
jmp 0x1001d480
test byte [eax + 4], 1
jne 0x1001d8cf
and ecx, 1
or ecx, ebx
mov dword [edx + 4], ecx
or byte [ebx + 4], 1
mov ebx, dword [esi]
test ebx, ebx
jne 0x1001d1bd
jmp 0x1001d067
and ecx, 0xfffffffe
mov eax, dword [edx + 4]
and eax, 1
or eax, ecx
mov dword [edx + 4], eax
jmp 0x1001d232
or ebx, 1
mov dword [edx + 4], ebx
mov ecx, dword [edx]
test ecx, ecx
je 0x1001d676
mov edx, dword [ecx + 4]
test dl, 1
jne 0x1001d809
mov ecx, dword [esi + 4]
mov ebx, ecx
and ebx, 0xfffffffe
je 0x1001d052
mov eax, dword [ebx]
and eax, 0xfffffffe
and ecx, 1
or ecx, eax
mov dword [esi + 4], ecx
mov dword [ebx], esi
jmp 0x1001d201
mov eax, ebx
and eax, 0xfffffffe
mov ecx, dword [edx + 4]
and ecx, 1
or ecx, eax
mov dword [edx + 4], ecx
mov esi, edx
jmp 0x1001d12a
lea esi, [esp + 0x58]
mov edx, dword [esp + 0x1c]
mov dword [edx], 0
mov eax, dword [esp + 0x18]
mov dword [ebx + eax*4 + 0x14], 1
jmp 0x1001d47e
and eax, 0xfffffffe
mov dword [ecx], eax
mov eax, dword [ebx + 4]
and eax, 1
or eax, ecx
mov dword [ebx + 4], eax
and ebx, 0xfffffffe
mov ecx, dword [esi + 4]
and ecx, 1
lea eax, [ecx + ebx]
mov dword [esi + 4], eax
test ebx, ebx
je 0x1001d052
mov edx, esi
mov eax, dword [ebx]
and eax, 0xfffffffe
or eax, ecx
mov dword [esi + 4], eax
mov dword [ebx], esi
mov ecx, dword [esi + 4]
and ecx, 0xfffffffe
je 0x1001d716
mov eax, dword [ecx + 4]
test al, 1
jne 0x1001daed
mov dword [esi + 4], ecx
jmp 0x1001d17c
mov ebx, eax
mov ecx, dword [eax + 4]
mov eax, ecx
and eax, 0xfffffffe
cmp esi, eax
mov edx, dword [esp + 0x10]
jne 0x1001d484
and ecx, 1
or ecx, dword [esp + 0x1c]
mov dword [ebx + 4], ecx
jmp 0x1001d484
test ebx, ebx
je 0x1001d771
mov eax, dword [ebx + 4]
test eax, eax
je 0x1001d771
mov dword [esp + 0xc], 0
test byte [eax + 8], 1
jne 0x1001d9af
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x1001d771
test byte [ecx + 8], 1
jne 0x1001d9af
lea esi, [esp + 0x54]
mov ecx, esi
mov edx, ebx
call 0xfffd88a
mov eax, dword [esi]
test eax, eax
je 0x1001dc4e
and byte [eax + 8], 0xfe
mov dword [esp + 0xc], 0
jmp 0x1001d9a5
mov ebx, dword [esp + 0x24]
test ebx, ebx
je 0x1001d06d
mov eax, dword [esp + 0x18]
cmp dword [ebx], eax
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x14]
jne 0x1001dad4
mov dword [ebx], esi
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esi], eax
lea eax, [edx + edx*2]
mov ebx, ecx
mov ecx, dword [ecx + eax*4 + 0x14]
and ecx, 0xfffffffe
mov edx, dword [esi + 4]
and edx, 1
or edx, ecx
mov dword [esi + 4], edx
mov eax, dword [ebx + eax*4 + 0x14]
and eax, 1
or eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esp + 4]
cmp dword [eax], esi
jne 0x1001dc78
mov dword [eax], 0
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x14]
jmp 0x1001d236
and edx, 0xfffffffe
mov dword [ecx + 4], edx
mov ebx, dword [esi]
test ebx, ebx
je 0x1001d067
mov eax, dword [ebx + 4]
and eax, 0xfffffffe
mov dword [esi], eax
mov eax, esi
and eax, 0xfffffffe
mov ecx, dword [ebx + 4]
and ecx, 1
or ecx, eax
mov dword [ebx + 4], ecx
mov edx, dword [esi + 4]
mov ecx, edx
and ecx, 0xfffffffe
je 0x1001d052
mov eax, dword [ecx]
and eax, 0xfffffffe
and edx, 1
or edx, eax
mov dword [esi + 4], edx
mov dword [ecx], esi
mov eax, dword [ebx + 4]
and eax, 1
or eax, ecx
mov dword [ebx + 4], eax
jmp 0x1001d201
xor edx, edx
test ebx, ebx
je 0x1001d8a5
mov ecx, dword [ebx + 8]
cmp ecx, 1
ja 0x1001dba5
mov eax, dword [ebx + 4]
test eax, eax
je 0x1001d8a5
mov ecx, dword [eax + 8]
and ecx, 0xfffffffe
mov dword [ebx + 4], ecx
mov ecx, ebx
and ecx, 0xfffffffe
mov edx, dword [eax + 8]
and edx, 1
or edx, ecx
mov dword [eax + 8], edx
mov edx, dword [ebx + 8]
and edx, 1
or edx, ecx
mov dword [eax + 8], edx
or byte [ebx + 8], 1
and dword [eax + 8], 1
mov edx, eax
mov dword [esi + 0x34], edx
mov ecx, dword [esp + 8]
jmp 0x1001dab7
xor ebx, ebx
inc ebx
cmp edx, 0xffffffff
mov ecx, dword [esp + 8]
je 0x1001d936
mov edx, dword [esi + 4]
and edx, 0xfffffffe
jmp 0x1001d44b
mov dword [ecx], esi
jmp 0x1001d41b
and ecx, 1
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 4]
and eax, 0xfffffffe
or eax, ecx
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x2c]
and byte [eax + 4], 0xfe
mov ecx, dword [edx + 4]
mov ebx, ecx
and ebx, 0xfffffffe
je 0x1001d052
mov eax, dword [ebx]
and eax, 0xfffffffe
and ecx, 1
or ecx, eax
mov dword [edx + 4], ecx
mov dword [ebx], edx
mov dword [esi], ebx
jmp 0x1001d1bd
mov eax, dword [ecx + 4]
and eax, 1
or eax, esi
mov dword [ecx + 4], eax
jmp 0x1001d41b
test al, 0x10
mov eax, 0
cmove eax, dword [esp + 0x1c]
xor ebx, ebx
cmp eax, esi
seta al
mov ecx, dword [esp + 8]
jae 0x1001d98f
mov edx, dword [esi]
xor ebx, ebx
dec ebx
jmp 0x1001d44b
mov eax, dword [ebx + 4]
test eax, eax
je 0x1001dc81
test byte [eax + 8], 1
jne 0x1001d996
or ecx, 1
mov dword [ebx + 8], ecx
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x1001d96a
invalid
push ecx