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

Disassembly:
cmp esi, 8
mov dword [esp + 4], edx
jbe 0x1003de29
cmp esi, 0x1f1
jae 0x1003d75f
lea ebx, [esi + 0xf]
mov eax, ebx
and eax, 0xfffffff0
mov dword [esp + 0x10], eax
shr ebx, 4
shl ebx, 5
lea edi, [edx + ebx]
add edi, 0x50
cmp byte [edx + 0x3c], 0
mov dword [esp + 0x28], ebx
je 0x1003d1b1
cmp dword [edx + 0x40], 0
je 0x1003f6e4
lea eax, [edx + 0xc]
mov dword [esp + 0x1c], eax
push eax
call dword [0x1008be30]
mov ecx, dword [esp + 4]
mov edx, dword [edi]
test edx, edx
mov dword [esp + 0x14], esi
je 0x1003d77b
cmp dword [edx + 8], 0
je 0x1003d77b
ror byte [edi], cl
test dword [ebp - 0x74000004], esi
adc eax, 0x1008e7f4
mov eax, dword [0x1008e3c8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov dword [eax + 8], edx
jmp 0x1003d16c
lea ebx, [esi + 0xff]
mov eax, ebx
and eax, 0x1f00
mov dword [esp + 0x10], eax
shr ebx, 8
add ebx, 0x1e
jmp 0x1003d194
mov edx, dword [ecx + ebx + 0x54]
test edx, edx
mov dword [esp + 0x18], edi
je 0x1003eb20
lea eax, [ecx + ebx]
add eax, 0x54
mov dword [esp + 0x34], eax
mov eax, edx
mov ebx, eax
mov eax, dword [eax]
test eax, eax
jne 0x1003d797
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], 0
xor eax, eax
mov dword [esp + 8], ebx
cmp edx, ebx
setb al
mov ebx, 0xffffffff
cmova eax, ebx
cmp eax, 0xffffffff
jne 0x1003e02d
mov ecx, dword [edx]
test ecx, ecx
je 0x1003fae2
mov eax, dword [ecx + 4]
mov dword [esp + 0x30], 0
test al, 1
je 0x1003de71
cmp esi, 2
jb 0x1003ed44
mov edx, esi
mov ecx, 0x20
mov eax, 0x20
dec edx
je 0x1003de47
bsr eax, edx
xor eax, 0x1f
sub ecx, eax
xor eax, eax
inc eax
shl eax, cl
cmp eax, 9
mov ecx, 8
cmovae ecx, eax
mov dword [esp + 0x10], ecx
mov eax, ecx
shr eax, 3
or eax, 1
bsr ebx, eax
mov edx, dword [esp + 4]
jmp 0x1003d194
mov esi, dword [ecx]
test esi, esi
je 0x1003de81
test byte [esi + 4], 1
jne 0x1003d7e4
or eax, 1
mov dword [ecx + 4], eax
mov esi, dword [edx + 4]
mov eax, esi
and eax, 0xfffffffe
je 0x1003f7ed
mov ecx, dword [eax]
test ecx, ecx
je 0x1003dea7
mov ebx, dword [ecx + 4]
test bl, 1
jne 0x1003ef24
or esi, 1
mov dword [edx + 4], esi
mov ecx, dword [eax]
or ecx, 1
mov dword [edx + 4], ecx
mov dword [eax], edx
mov ecx, eax
lea edx, [esp + 0x50]
and byte [ecx + 4], 0xfe
mov dword [edx], ecx
jmp 0x1003d7e4
test eax, eax
jne 0x1003e60a
mov eax, dword [edx + 4]
cmp eax, 1
ja 0x1003f37a
mov eax, dword [edx]
test eax, eax
jne 0x1003f4d8
mov dword [esp + 0x50], eax
jmp 0x1003d98a
mov eax, dword [edx + 4]
mov dword [esp + 0x30], 0
mov ecx, eax
and ecx, 0xfffffffe
je 0x1003e62c
mov esi, dword [ecx]
test esi, esi
je 0x1003e62c
test byte [esi + 4], 1
jne 0x1003d7e4
mov ecx, dword [edx]
test ecx, ecx
je 0x1003fb9b
test byte [ecx + 4], 1
jne 0x1003f1c2
or eax, 1
mov dword [edx + 4], eax
mov eax, dword [ecx]
test eax, eax
je 0x1003e658
mov ebx, dword [eax + 4]
test bl, 1
jne 0x1003f256
or byte [ecx + 4], 1
mov eax, dword [edx + 4]
mov ecx, eax
and ecx, 0xfffffffe
je 0x1003f7f3
mov esi, dword [ecx]
and esi, 0xfffffffe
and eax, 1
or eax, esi
mov dword [edx + 4], eax
mov dword [ecx], edx
lea edx, [esp + 0x50]
jmp 0x1003dec1
mov edx, dword [ecx + ebx + 0x5c]
push 0
call fcn.1001c18a
add esp, 4
test eax, eax
je 0x1003f6c1
cmp eax, dword [edi]
mov ecx, dword [esp + 4]
mov edx, eax
je 0x1003eba6
mov dword [edx], edi
xor eax, eax
cmp dword [ecx + ebx + 0x64], 1
je 0x1003eb67
mov eax, dword [esp + 4]
lea ecx, [eax + ebx]
add ecx, 0x64
xor eax, eax
mov dword [edx + eax*4 + 0xc], 0xffffffff
inc eax
mov esi, dword [ecx]
dec esi
cmp eax, esi
jb 0x1003eb57
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0x28]
mov ebx, dword [edi + ecx + 0x60]
and ebx, 0x1f
mov ecx, ebx
neg cl
xor esi, esi
dec esi
shr esi, cl
cmp ebx, 1
mov ebx, dword [esp + 0x28]
sbb ecx, ecx
or ecx, esi
mov dword [edx + eax*4 + 0xc], ecx
mov ecx, edi
mov dword [edx + 4], 0
mov eax, dword [edi + ebx + 0x60]
mov dword [edx + 8], eax
inc dword [edi + ebx + 0x6c]
mov edi, dword [esp + 0x18]
mov dword [edi], edx
jmp 0x1003d1db
xor ecx, ecx
jmp 0x1003de49
and ebx, 0xfffffffe
mov dword [eax], ebx
mov esi, dword [ecx + 4]
and esi, 1
or esi, eax
mov dword [ecx + 4], esi
and ecx, 0xfffffffe
mov eax, dword [edx + 4]
and eax, 1
lea esi, [eax + ecx]
mov dword [edx + 4], esi
test ecx, ecx
je 0x1003f7f3
mov esi, dword [ecx]
and esi, 0xfffffffe
or esi, eax
mov dword [edx + 4], esi
mov dword [ecx], edx
mov eax, dword [edx + 4]
and eax, 0xfffffffe
je 0x1003f0f3
mov ebx, dword [eax + 4]
test bl, 1
je 0x1003f0f3
and ebx, 0xfffffffe
mov dword [eax + 4], ebx
mov eax, dword [edx + 4]
mov esi, eax
or esi, 1
mov dword [edx + 4], esi
and eax, 0xfffffffe
je 0x1003f7f3
mov esi, dword [eax]
or esi, 1
mov dword [edx + 4], esi
mov dword [eax], edx
mov dword [ecx], eax
jmp 0x1003deb9
mov dword [edx + 4], eax
jmp 0x1003deb9
lea esi, [esp + 0x40]
mov ecx, esi
call 0xfffdc6a
mov ecx, dword [esi]
jmp 0x1003e679
and ebx, 0xfffffffe
mov dword [eax + 4], ebx
mov ecx, dword [edx]
test ecx, ecx
je 0x1003fac1
mov eax, dword [ecx + 4]
and eax, 0xfffffffe
mov dword [edx], eax
mov eax, edx
and eax, 0xfffffffe
mov esi, dword [ecx + 4]
and esi, 1
or esi, eax
mov dword [ecx + 4], esi
mov esi, dword [edx + 4]
mov eax, esi
and eax, 0xfffffffe
je 0x1003f7f3
mov ebx, dword [eax]
and ebx, 0xfffffffe
and esi, 1
or esi, ebx
mov dword [edx + 4], esi
mov dword [eax], edx
mov edx, dword [ecx + 4]
and edx, 1
or edx, eax
mov dword [ecx + 4], edx
jmp 0x1003e679
lea ecx, [esp + 0x50]
mov dword [esp + 0x30], ecx
jmp 0x1003e615
mov ecx, dword [eax + 4]
and ecx, 0xfffffffe
mov dword [edx], ecx
mov ecx, edx
and ecx, 0xfffffffe
mov esi, dword [eax + 4]
and esi, 1
or esi, ecx
mov dword [eax + 4], esi
mov esi, dword [edx + 4]
and esi, 1
or esi, ecx
mov ecx, dword [esp + 4]
mov dword [eax + 4], esi
mov edi, dword [esp + 0x18]
or byte [edx + 4], 1
and dword [eax + 4], 1
jmp 0x1003e04b
mov dword [edi], 0
mov dword [esp + 0x18], edi
mov ebx, esi
mov byte [edx + 0x3c], 0
lea eax, [esp + 0x50]
push eax
call fcn.1000921a
add esp, 4
lea esi, [esp + 0x40]
push esi
call fcn.1000921a
add esp, 4
mov ecx, 0x10
call fcn.1000927a
xor edx, edx
cmp byte [esi + 8], 0
mov ecx, 0
mov esi, 0
je 0x1003f72c
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
cmp byte [esp + 0x58], 0
mov edi, 0
je 0x1003f740
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
mov dword [eax], edi
mov dword [eax + 4], edx
mov dword [eax + 8], esi
mov dword [eax + 0xc], ecx
mov edx, dword [esp + 4]
mov dword [edx + 0x40], eax
mov byte [edx + 0x3c], 1
mov esi, ebx
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
jmp 0x1003d1b1