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

Disassembly:
sub esp, 0x64
push ebx
mov ebx, dword [esp + 0x6c]
push esi
mov esi, dword [esp + 0x74]
mov dword [esp + 0x70], 0
mov eax, dword [ebx + 0xe8]
mov dword [esp + 0x74], eax
test esi, esi
jne 0x1000705e
pop esi
mov eax, 0x2020
pop ebx
add esp, 0x64
ret
mov eax, dword [esi + 0x1c]
dec eax
cmp eax, 7
ja 0x10007771
mov eax, dword [esi]
cmp eax, 0x7d00
jg 0x100070a2
je 0x100070d2
cmp eax, 0x3e80
jg 0x10007094
je 0x100070d2
cmp eax, 0x1f40
je 0x100070d2
cmp eax, 0x2b11
je 0x100070d2
cmp eax, 0x2ee0
jmp 0x100070c5
cmp eax, 0x5622
je 0x100070d2
cmp eax, 0x5dc0
jmp 0x100070c5
cmp eax, 0xfa00
jg 0x100070b9
je 0x100070d2
cmp eax, 0xac44
je 0x100070d2
cmp eax, 0xbb80
jmp 0x100070c5
cmp eax, 0x15888
je 0x100070d2
cmp eax, 0x17700
je 0x100070d2
pop esi
mov eax, 0x3100
pop ebx
add esp, 0x64
ret
mov eax, dword [esi + 4]
cmp eax, 0xffffffff
je 0x10007766
push dword [esi + 0xc]
lea ecx, [esp + 0x74]
push dword [esi + 0x18]
push ecx
push dword [esi + 0x14]
push eax
push dword [esi + 0x28]
call fcn.10007af0
add esp, 4
mov eax, dword [eax + 8]
push eax
push dword [esi + 0x1c]
push dword [esi + 0x2c]
push dword [esi]
push dword [esi + 0x10]
push dword [esp + 0xa0]
call fcn.100077d0
add esp, 0x2c
cmp eax, dword [esi + 4]
je 0x10007130
mov eax, dword [esi + 0x18]
cmp eax, 1
jl 0x10007766
cmp eax, 5
jg 0x10007766
test byte [esi + 0x30], 5
jne 0x1000775b
push ebp
mov ebp, dword [esi + 0x2c]
cmp ebp, 0x100
jg 0x10007174
je 0x10007159
mov eax, ebp
sub eax, 0x78
je 0x10007159
sub eax, 8
je 0x10007159
sub eax, 0x70
jne 0x10007168
push dword [esi + 0x10]
call fcn.10006680
add esp, 4
test eax, eax
jne 0x10007198
pop ebp
pop esi
mov eax, 0x2080
pop ebx
add esp, 0x64
ret
mov eax, ebp
sub eax, 0x1e0
je 0x10007159
sub eax, 0x20
je 0x10007159
sub eax, 0x200
jne 0x10007168
push dword [esi + 0x10]
call fcn.10006680
add esp, 4
test eax, eax
jne 0x10007168
push edi
mov edi, dword [esi + 0x38]
test edi, edi
je 0x10007210
cmp edi, 0xffffffff
jl 0x100071bf
je 0x100071cc
cmp edi, 0x4b00
jge 0x100071bf
mov ecx, dword [esi + 4]
lea eax, [edi + edi*4]
shl eax, 2
lea ecx, [ecx + ecx*2]
cmp eax, ecx
jle 0x100071ef
mov eax, 0x3040
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x64
ret
mov ecx, dword [esi + 4]
cmp ecx, 0x2ee00
jl 0x100071de
mov edi, 0x4aff
jmp 0x100071ef
mov eax, 0x66666667
imul ecx
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
push dword [esi]
push ebp
push edi
call fcn.10006920
and eax, 0xfffffff8
mov dword [ebx + 4], eax
push dword [esi]
mov ebp, dword [esi + 0x2c]
push ebp
push eax
call fcn.100068d0
add esp, 0x18
add dword [esi + 8], eax
imul eax, dword [esi + 0x1c], 0x1f40
push dword [esi]
mov ecx, dword [esi + 4]
push ebp
sub ecx, eax
push ecx
call fcn.10006920
sar eax, 3
lea edi, [ebx + 8]
xor ecx, ecx
test eax, eax
push edi
cmovs eax, ecx
mov ecx, 0x100
cmp eax, ecx
cmovg eax, ecx
mov dword [esi + 0x3c], eax
mov dword [ebx], esi
mov eax, dword [esi + 0x18]
mov dword [ebx + 0xf0], eax
mov eax, dword [esi + 0x28]
mov dword [ebx + 0xe8], eax
push dword [esi + 0x20]
push eax
call fcn.10007b80
add esp, 0x18
test eax, eax
jne 0x100071c4
mov eax, dword [ebx]
mov ebp, edi
add eax, 0x24
mov dword [esp + 0x18], ebp
push eax
push dword [ebx + 0xe8]
mov eax, dword [esi + 4]
sub eax, dword [esi + 8]
push ebp
push dword [esi + 0x2c]
push dword [esi]
push dword [ebx + 0xf0]
push eax
push dword [esi + 0x24]
call fcn.10015120
add esp, 0x20
test eax, eax
jne 0x100071c4
mov eax, dword [ebx]
mov ecx, 0xf
mov eax, dword [eax + 0x24]
mov dword [ebx + 0xec], eax
xor eax, eax
cmp byte [esi + 0x4c], al
cmovne eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esi + 4]
sub eax, dword [esi + 8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x7c]
cmp dword [ebx + 0xe8], eax
mov eax, dword [esp + 0x84]
jne 0x100072dd
test eax, eax
je 0x10007311
push ebp
push dword [esi + 0x10]
lea eax, [ebx + 0xe0]
push dword [ebx + 0xfc]
push dword [ebx + 0x104]
push eax
push dword [ebx + 0xe4]
call fcn.10010fb0
add esp, 0x18
test eax, eax
jne 0x100071c4
mov eax, dword [esp + 0x84]
push eax
push dword [esi + 0x30]
movzx eax, byte [esi + 0x4f]
push eax
movzx eax, byte [esi + 0x4e]
push eax
movzx eax, byte [esi + 0x4d]
push eax
push dword [ebx + 0xec]
push dword [esp + 0x28]
push dword [esp + 0x30]
push dword [esi + 0x2c]
push dword [esi]
push ebp
push dword [esi + 0x10]
push dword [ebx + 0xe4]
call fcn.100131f0
add esp, 0x34
test eax, eax
jne 0x100071c4
push ebp
push dword [ebx + 0x104]
lea eax, [ebx + 0xdc]
push eax
call fcn.10014570
add esp, 0xc
test eax, eax
jne 0x100071c4
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x18]
dec eax
mov dword [esp + 0x24], edi
cmp eax, 4
ja 0x100073ce
mov edx, dword [esp + 0x78]
imul eax, dword [ebp + 8], 0x1800
mov ecx, dword [esi + 0x44]
lea edi, [edx + 7]
and edi, 0xfffffff8
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], eax
cmp ecx, 0xffffffff
je 0x100073a8
cmp eax, ecx
cmovl ecx, eax
mov eax, ecx
cmp eax, edi
mov ebp, edi
cmovg ebp, eax
xor ecx, ecx
cmp dword [esi + 0x40], 0xffffffff
mov dword [esp + 0x2c], ebp
cmovne ecx, dword [esi + 0x40]
and edx, 0xfffffff8
cmp ecx, edx
cmovl edx, ecx
mov dword [esp + 0x64], edx
jmp 0x10007553
push dword [esi + 0x10]
or ebp, 0xffffffff
call fcn.10006680
add esp, 4
test eax, eax
je 0x1000749a
mov eax, dword [esi + 4]
mov ecx, 0x2ee0
cdq
idiv dword [esi + 0x1c]
push 0xe290
cmp eax, ecx
cmovl eax, ecx
mov ecx, 0x11170
cmp eax, ecx
cmovg eax, ecx
sub eax, 0x2ee0
push eax
call fcn.1000e1a0
lea ecx, [esp + 0x84]
push ecx
push 0xdac
push eax
call fcn.1000e4e0
mov ebp, dword [esp + 0x90]
add esp, 0x14
mov edi, eax
test ebp, ebp
jns 0x10007447
cmp ebp, 0xffffffe0
jle 0x10007443
or ecx, 0xffffffff
sub ecx, ebp
sar edi, cl
inc edi
sar edi, 1
jmp 0x10007491
xor edi, edi
jmp 0x10007491
mov eax, edi
mov dword [esp + 0x7c], 0
sar eax, 0x1f
mov ecx, 0x1f
xor eax, edi
bsr eax, eax
setne dl
sub ecx, eax
test dl, dl
mov eax, 0x20
cmovne eax, ecx
cmp eax, ebp
jg 0x10007481
xor eax, eax
test edi, edi
setle al
lea edi, [eax*2 + 0x7fffffff]
jmp 0x10007491
mov ecx, ebp
shl edi, cl
mov eax, edi
mov edi, 0x80000001
cmp eax, edi
cmovg edi, eax
lea ebp, [edi + 0x1f4]
and ebp, 0xfffffff8
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x78]
imul edx, dword [eax + 8], 0x1800
lea ecx, [edi + 7]
and ecx, 0xfffffff8
mov dword [esp + 0x30], ecx
mov eax, edx
sub eax, ecx
cmp ebp, 0xffffffff
je 0x100074c1
cmp ebp, eax
cmovl eax, ebp
lea ebp, [ecx + eax]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x44]
cmp edx, ebp
mov ecx, ebp
cmovl ecx, edx
cmp eax, 0xffffffff
je 0x100074de
cmp ecx, eax
cmovl eax, ecx
mov ecx, eax
lea eax, [edi + 0xf]
and eax, 0xfffffff8
cmp ecx, eax
push ebp
mov ebp, dword [esp + 0x84]
cmovg eax, ecx
cmp edx, eax
push ebp
cmovl eax, edx
mov dword [esp + 0x34], eax
call fcn.10006060
lea ecx, [edi - 1]
add esp, 8
and ecx, 0xfffffff8
sub ecx, eax
mov eax, 0
sub ecx, dword [esp + 0x34]
cmovs ecx, eax
mov eax, dword [esi + 0x40]
mov dword [esp + 0x64], ecx
cmp eax, 0xffffffff
je 0x1000752c
cmp ecx, eax
cmovg eax, ecx
mov dword [esp + 0x64], eax
push dword [esp + 0x2c]
push ebp
call fcn.10006060
mov ebp, dword [esp + 0x34]
sub edi, eax
and edi, 0xfffffff8
add esp, 8
cmp dword [esp + 0x64], edi
cmovl edi, dword [esp + 0x64]
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x30]
mov eax, dword [esi]
push dword [esi + 0x10]
mov dword [esp + 0x3c], eax
call fcn.10006680
mov edx, dword [esi]
xor ecx, ecx
add esp, 4
mov dword [esp + 0x78], 0x1f4
test eax, eax
mov dword [esp + 0x70], edx
setne cl
test eax, eax
mov dword [esp + 0x3c], ecx
mov eax, ebp
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x60], ecx
mov ecx, 0x12c
cmovne ecx, dword [esp + 0x78]
sub eax, edi
imul ecx, dword [esi + 0x1c]
cmp eax, ecx
jl 0x100075a6
mov dword [esp + 0x68], 0
jmp 0x100075b2
xor eax, eax
cmp ebp, edi
setle al
inc eax
mov dword [esp + 0x68], eax
mov eax, dword [esi + 0x28]
dec eax
cmp eax, 0x21
ja case.0x100075c2.1
movzx eax, byte [eax + 0x10007788]
jmp dword [eax*4 + 0x1000777c]
mov dword [esp + 0x6c], 0
jmp 0x100075db
mov dword [esp + 0x6c], 1
lea eax, [esp + 0x1c]
push eax
mov eax, dword [ebx + 0xec]
imul eax, dword [esi + 0x2c]
push edx
lea eax, [eax + eax*4]
add eax, eax
push eax
call fcn.1000e1e0
mov ecx, dword [esp + 0x28]
add ecx, 0xffffffe2
push ecx
push eax
call fcn.100066a0
mov ecx, 1
cmp eax, ecx
cmovg ecx, eax
lea eax, [esp + 0x34]
push eax
mov eax, dword [esp + 0x48]
cdq
idiv dword [esp + 0x78]
mov dword [esp + 0x60], ecx
push eax
push dword [esp + 0x48]
call fcn.1000e1e0
mov ecx, dword [esp + 0x40]
add ecx, 0xfffffff9
push ecx
push eax
call fcn.100066a0
mov dword [esp + 0x80], eax
add esp, 0x28
mov eax, dword [esi + 0x18]
cmp eax, 7
ja case.default.0x1000764e
jmp dword [eax*4 + 0x100077ac]
mov dword [esp + 0x44], 0
jmp 0x100076a3
mov dword [esp + 0x44], 1
jmp 0x100076a3
mov dword [esp + 0x44], 2
jmp 0x100076a3
mov dword [esp + 0x44], 3
jmp 0x100076a3
mov dword [esp + 0x44], 4
jmp 0x100076a3
mov dword [esp + 0x44], 5
jmp 0x100076a3
mov dword [esp + 0x44], 7
jmp 0x100076a3
mov dword [esp + 0x44], 6
push dword [esi + 0x10]
xor eax, eax
mov ecx, 2
cmp byte [esi + 0x50], al
cmovne eax, ecx
mov dword [esp + 0x54], eax
call fcn.10006680
neg eax
sbb eax, eax
and eax, 0xfffffffd
add eax, 5
mov dword [esp + 0x58], eax
mov eax, dword [esi + 4]
sub eax, dword [esi + 8]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x34]
cdq
idiv dword [esp + 0x64]
push eax
push dword [esp + 0x88]
call fcn.10006060
push dword [esp + 0x90]
mov dword [esp + 0x50], eax
lea eax, [esp + 0x34]
push eax
push dword [ebx + 0xd8]
call fcn.100139e0
add esp, 0x18
test eax, eax
jne 0x100071c4
mov eax, dword [ebx]
mov eax, dword [eax + 0x10]
mov ecx, eax
sub ecx, 0x81
je 0x10007739
sub ecx, 3
jne 0x1000773e
pop edi
pop ebp
mov eax, 5
mov dword [ebx + 0x108], eax
xor eax, eax
pop esi
pop ebx
add esp, 0x64
ret
mov eax, 2
pop edi
pop ebp
mov dword [ebx + 0x108], eax
xor eax, eax
pop esi
pop ebx
add esp, 0x64
ret
mov eax, 0x3028
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x64
ret
pop esi
mov eax, 0x30a0
pop ebx
add esp, 0x64
ret
pop esi
mov eax, 0x3020
pop ebx
add esp, 0x64
ret
pop esi
mov eax, 0x30e0
pop ebx
add esp, 0x64
ret