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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x28]
cmp eax, dword [ecx + 8]
jbe 0x70431d
sub esp, 0xa8
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0xc8]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x70], ecx
lea edx, [0xab1e20]
mov dword [esp], edx
call fcn.004097a0
mov eax, dword [esp + 0xc]
movzx ecx, byte [esp + 0x14]
mov edx, dword [esp + 0x10]
test cl, cl
jne 0x70424e
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x70]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x74], ecx
mov edx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xb8]
jmp 0x703a5a
mov ebx, dword [esp + 0xc0]
sub ebx, eax
sub ecx, eax
mov esi, ebx
neg ebx
sar ebx, 0x1f
and eax, ebx
mov edi, dword [esp + 0xb8]
lea ebp, [eax + edi]
mov eax, dword [esp + 0x4c]
mov edx, ecx
mov ebx, esi
mov ecx, dword [esp + 0x74]
test edx, edx
jle 0x704231
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xbc], edx
mov dword [esp + 0xb8], ebp
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.006c9f00
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x10]
test eax, eax
jl 0x704210
cmp ecx, 0x1fffffff
jg 0x7041ef
mov dword [esp + 0x44], ecx
mov byte [esp + 0x3b], dl
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x4c]
mov edx, dword [eax + 0x18]
mov ebx, dword [esp + 0x74]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call edx
mov eax, dword [esp + 8]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
test eax, eax
je 0x7041b5
xor edx, edx
test dl, dl
jne 0x703f98
test eax, eax
je 0x703f87
xor edx, edx
xor ebx, ebx
test edx, edx
je 0x703cdf
xor eax, eax
test edx, edx
jne 0x703b1e
mov edx, dword [esp + 0x40]
add eax, edx
mov ecx, dword [esp + 0xbc]
cmp ecx, eax
jae 0x703a30
jmp 0x7042fa
mov dword [esp + 0x80], ebx
mov dword [esp + 0x58], edx
cmp dword [0x10e46b8], edx
jne 0x703cbf
mov dword [esp], edx
mov dword [esp + 4], ebx
mov eax, dword [0x10e46bc]
mov dword [esp + 8], eax
call fcn.004038f0
movzx eax, byte [esp + 0xc]
test al, al
je 0x703cbf
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xbc]
cmp eax, ecx
ja 0x704308
mov edx, dword [esp + 0x44]
mov dword [esp], edx
movzx edx, byte [esp + 0x3b]
mov byte [esp + 4], dl
mov edx, dword [esp + 0xc0]
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and edx, eax
mov esi, dword [esp + 0xb8]
add edx, esi
mov dword [esp + 8], edx
sub ecx, eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
call fcn.006c9d00
mov eax, dword [esp + 0x14]
test eax, eax
jl 0x703c9e
movzx edx, byte [esp + 0xae]
test dl, dl
jne 0x703b04
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0xc8]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
lea esi, [ebp + ebx]
mov edi, dword [esp + 0xc0]
cmp edi, esi
jb 0x7042ff
lea edi, [esi + eax]
mov dword [esp + 0x68], edi
cmp edi, ecx
ja 0x703c6f
mov dword [esp + 0x64], ecx
mov dword [esp + 0x8c], edx
add eax, edx
mov dword [esp], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.004614f0
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 0x44]
mov edx, dword [esp + 0xc8]
mov dword [esp], edx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0xc], ebx
call ecx
mov eax, dword [esp + 0x3c]
jmp 0x703b04
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], esi
lea eax, [0xaa98e0]
mov dword [esp], eax
mov dword [esp + 0x10], edi
call fcn.00447080
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
jmp 0x703c11
mov eax, dword [0x10e46b0]
mov ecx, dword [0x10e46b4]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], ecx
add esp, 0xa8
ret
mov eax, dword [esp + 0x58]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xd0], eax
add esp, 0xa8
ret
mov dword [esp + 0x78], ecx
mov dword [esp + 0x50], eax
mov edx, dword [eax + 0x44]
mov dword [esp], ecx
call edx
movzx eax, byte [esp + 4]
test al, al
je 0x703de8
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xbc]
cmp eax, ecx
ja 0x704317
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 0x2c]
mov edx, dword [esp + 0xc8]
mov dword [esp], edx
mov ebx, dword [esp + 0x50]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x78]
mov dword [esp + 8], ebp
call ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.006d0900
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x88], ecx
mov edi, esp
lea esi, [esp + 0xac]
call fcn.004612e2
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x40]
sub ecx, edx
mov ebp, ecx
neg ecx
sar ecx, 0x1f
and ecx, edx
mov esi, dword [esp + 0xb8]
add ecx, esi
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xbc]
sub ecx, edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebp
movzx ecx, byte [esp + 0x3b]
mov byte [esp + 0x18], cl
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x28], eax
call fcn.00706af0
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
jmp 0x703b00
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x48]
mov edx, dword [esp + 0x78]
mov dword [esp], edx
call ecx
movzx eax, byte [esp + 4]
test al, al
je 0x703ef1
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xbc]
cmp eax, ecx
ja 0x704312
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 0x2c]
mov edx, dword [esp + 0xc8]
mov dword [esp], edx
mov ebx, dword [esp + 0x50]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x78]
mov dword [esp + 8], ebp
call ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.006d09e0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x88], ecx
mov edi, esp
lea esi, [esp + 0xac]
call fcn.004612e2
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x40]
sub ecx, edx
mov ebp, ecx
neg ecx
sar ecx, 0x1f
and ecx, edx
mov esi, dword [esp + 0xb8]
add ecx, esi
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xbc]
sub ecx, edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebp
movzx ecx, byte [esp + 0x3b]
mov byte [esp + 0x18], cl
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x28], eax
call fcn.007045a0
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
jmp 0x703b00
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xbc]
cmp eax, ecx
ja 0x70430d
mov edi, esp
lea esi, [esp + 0xac]
call fcn.004612e2
mov ecx, dword [esp + 0xc0]
sub ecx, eax
mov ebx, ecx
neg ecx
sar ecx, 0x1f
and ecx, eax
mov ebp, dword [esp + 0xb8]
add ecx, ebp
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xbc]
sub ecx, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebx
movzx ecx, byte [esp + 0x3b]
mov byte [esp + 0x18], cl
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x28], ebx
call fcn.00704330
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
jmp 0x703b00
mov edx, dword [0x10e46b8]
mov ebx, dword [0x10e46bc]
jmp 0x703af6
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x24]
mov edx, dword [esp + 0x70]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0xc], ecx
call eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x6c], edx
mov ebx, dword [esp + 0x14]
test eax, eax
je 0x7041ae
cmp dword [0x10e46c0], eax
je 0x704173
mov ebp, 1
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x704031
test ecx, ecx
jne 0x70400e
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x78]
jmp 0x703aea
mov eax, dword [ecx + 0x20]
mov dword [esp], ebx
call eax
lea eax, [0xb6ea00]
mov dword [esp], eax
call fcn.00409660
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
jmp 0x703aea
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x24]
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409480
mov eax, dword [esp + 8]
mov dword [esp + 0x84], eax
mov ecx, dword [esp + 0x44]
mov dword [esp], ecx
call fcn.00409370
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x70407b
mov ecx, dword [ecx + 4]
mov dword [esp + 0x88], ecx
lea edi, [esp + 0x90]
mov edx, eax
xor eax, eax
call fcn.00460dea
lea ecx, [0xb18440]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x94], ecx
lea ecx, [0xabaf60]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], edx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0xa4], ecx
lea ecx, [0xbb182f]
mov dword [esp], ecx
mov dword [esp + 4], 0x26
lea ecx, [esp + 0x90]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 3
mov dword [esp + 0x10], 3
call fcn.006c97d0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x88], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x68], edx
lea ebx, [0xad93e0]
mov dword [esp], ebx
call fcn.0040bd00
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0x68]
mov dword [edi + 4], ecx
mov ecx, dword [0x10fd360]
test ecx, ecx
jne 0x704165
mov eax, dword [esp + 0x88]
mov dword [edi], eax
lea eax, [0xc82b80]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], edi
add esp, 0xa8
ret
mov eax, dword [esp + 0x88]
call fcn.00460b40
jmp 0x70414a
mov dword [esp + 0x54], ecx
mov dword [esp + 0x7c], ebx
mov dword [esp], eax
mov dword [esp + 4], edx
mov ecx, dword [0x10e46c4]
mov dword [esp + 8], ecx
call fcn.004038f0
movzx ebp, byte [esp + 0xc]
xor ebp, 1
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x7c]
jmp 0x703ff7
xor ebp, ebp
jmp 0x703ff7
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x70]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 4], ecx
call eax
movzx edx, byte [esp + 8]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x78]
jmp 0x703ae2
mov eax, dword [0x10e46b0]
mov ecx, dword [0x10e46b4]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], ecx
add esp, 0xa8
ret
mov eax, dword [0x10e46b0]
mov ecx, dword [0x10e46b4]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], ecx
add esp, 0xa8
ret
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
add esp, 0xa8
ret
mov eax, dword [eax + 0x10]
mov dword [esp], edx
call eax
movzx eax, byte [esp + 4]
test al, al
je 0x7039f9
nop
lea eax, [0xbb2351]
mov dword [esp], eax
mov dword [esp + 4], 0x26
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call fcn.006c97d0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x68], ecx
lea edx, [0xad93e0]
mov dword [esp], edx
call fcn.0040bd00
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x68]
mov dword [edi + 4], eax
mov eax, dword [0x10fd360]
test eax, eax
jne 0x7042ec
mov eax, dword [esp + 0x88]
mov dword [edi], eax
lea eax, [0xc82b80]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], edi
add esp, 0xa8
ret
mov eax, dword [esp + 0x88]
call fcn.00460b40
jmp 0x7042d1
call fcn.00460c20
mov ecx, esi
mov edx, edi
call fcn.00460c00
call fcn.00460c20
call fcn.00460c20
call fcn.00460c20
call fcn.00460c20
nop
call fcn.0045f5f0
jmp fcn.00703990