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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x873706
add esp, 0xffffff80
lea edi, [esp + 0x58]
lea esi, [0xaa2f90]
call fcn.00457268
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x87306b
lea ebx, [edx + 1]
mov eax, ebx
mov ecx, esi
mov edx, dword [esp + 0x70]
cmp eax, 2
jge 0x873690
mov dword [esp + 0x28], eax
lea ecx, [esp + eax*8 + 0x58]
mov edx, dword [ecx]
mov ebx, dword [esp + 0x8c]
cmp edx, ebx
xchg ebp, ebx
seta bl
xchg ebp, ebx
mov ecx, dword [ecx + 4]
mov esi, dword [esp + 0x90]
cmp ecx, esi
xchg edi, ebx
sete bl
xchg edi, ebx
setg al
and edi, ebp
or edi, eax
xchg edi, eax
test al, al
xchg edi, eax
je 0x873687
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], esi
lea eax, [0x92cb00]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.00440170
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x34]
sub eax, ecx
mov dword [esp + 0x54], eax
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x70], ebx
mov ebp, dword [esp + 0x84]
mov esi, dword [ebp + 0x10]
mov edi, dword [esp + 0x88]
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x90]
mov ebp, dword [esp + 0x38]
sbb edi, ebp
mov dword [esp + 0x50], edi
mov dword [esp + 0x14], edi
call esi
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x873680
cmp dword [0xe7acc8], ecx
je 0x87364d
mov edx, 1
test dl, dl
jne 0x873630
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov ecx, dword [esp + 0x34]
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.00873db0
mov eax, dword [esp + 0xc]
test eax, eax
jge 0x8731cf
mov edx, dword [esp + 0x28]
cmp edx, 1
je 0x8731a6
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x90]
cmp ebx, ebp
sete bl
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x8c]
cmp esi, edi
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x873060
mov eax, dword [0xe7a598]
mov ecx, dword [0xe7a59c]
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
sub esp, 0xffffff80
ret
mov ecx, dword [esp + 0x34]
cmp eax, ecx
ja 0x873700
mov edx, dword [esp + 0x54]
mov ebx, edx
add edx, eax
mov ebp, eax
sar eax, 0x1f
add ebx, ebp
mov ebx, dword [esp + 0x50]
adc ebx, eax
sub ecx, ebp
mov esi, ecx
neg ecx
sar ecx, 0x1f
and ecx, ebp
mov ebp, dword [esp + 0x70]
add ebp, ecx
cmp esi, 4
jb 0x8736f4
lea ecx, [esi - 4]
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
mov eax, ebx
lea ebx, [ebp + ecx]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
nop
cmp edi, 1
jbe 0x8736e8
mov dword [esp + 0x30], edx
movzx ebp, word [ebp + ecx]
lea ecx, [esi - 6]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
lea edx, [ebx + ecx]
mov dword [esp + 0x74], edx
nop
cmp edi, 1
jbe 0x8736dc
movzx ebx, word [ebx + ecx]
mov dword [esp + 0x54], ebx
lea ecx, [esi - 8]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
lea ebx, [edx + ecx]
mov dword [esp + 0x74], ebx
nop
cmp edi, 1
jbe 0x8736d0
movzx edx, word [edx + ecx]
mov dword [esp + 0x4c], edx
lea ecx, [esi - 0xa]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
lea edx, [ebx + ecx]
mov dword [esp + 0x74], edx
nop
cmp edi, 1
jbe 0x8736c4
movzx ebx, word [ebx + ecx]
mov dword [esp + 0x48], ebx
lea ecx, [esi - 0xc]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
lea ebx, [ecx + edx]
mov dword [esp + 0x74], ebx
nop
cmp edi, 3
jbe 0x8736b8
lea edi, [esi - 0x10]
mov edx, dword [edx + ecx]
mov dword [esp + 0x44], edx
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
mov ecx, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 4
lea edx, [edi + ebx]
mov dword [esp + 0x74], edx
nop
cmp ecx, 3
jbe 0x8736ae
lea ecx, [esi - 0x14]
mov ebx, dword [ebx + edi]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
lea ebx, [ecx + edx]
mov dword [esp + 0x74], ebx
nop
cmp edi, 1
jbe 0x8736a2
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x50], eax
lea eax, [esi - 0x16]
movzx ecx, word [edx + ecx]
mov word [esp + 0x26], cx
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
neg eax
sar eax, 0x1f
and eax, 2
add eax, ebx
mov dword [esp + 0x74], eax
lea eax, [0x998b80]
mov dword [esp], eax
call fcn.0040af00
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x3c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], 0
mov ecx, dword [esp + 0x48]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], 0
mov ecx, dword [esp + 0x44]
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], 0
mov ecx, dword [esp + 0x40]
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], 0
movzx ecx, word [esp + 0x26]
mov word [eax + 0x28], cx
movzx ecx, cx
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x74]
lea ebp, [esp + 0x74]
cmp dword [ebp + 4], ecx
jl 0x8735ec
cmp ecx, edx
ja 0x87369d
mov dword [esp + 0x6c], eax
mov dword [esp], 0
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.004436f0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x6c]
mov dword [edx + 0x30], eax
mov eax, dword [0xe8ff30]
test eax, eax
jne 0x8735dd
mov dword [edx + 0x2c], ecx
cmp dword [edx + 0x10], 0xffff
sete al
mov ecx, dword [edx + 0x14]
test ecx, ecx
sete cl
and ecx, eax
test cl, cl
je 0x8735a3
mov eax, dword [esp + 0x84]
mov dword [esp], eax
mov ecx, dword [esp + 0x88]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x30]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0xc], edx
call fcn.00873710
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x873545
test ebx, ebx
jne 0x873528
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x24]
test ecx, ecx
sete dl
setl bl
mov ebp, dword [eax + 0x20]
test ebp, ebp
xchg esi, ebx
setb bl
xchg esi, ebx
and esi, edx
or esi, ebx
xchg esi, eax
test al, al
xchg esi, eax
je 0x8734e4
mov eax, dword [0xe7a59c]
mov ecx, dword [0xe7a598]
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], eax
sub esp, 0xffffff80
ret
mov edx, dword [esp + 0x8c]
cmp ebp, edx
setae dl
mov ebx, dword [esp + 0x90]
cmp ecx, ebx
sete cl
setg bl
and ecx, edx
or ebx, ecx
test bl, bl
jne 0x8734bb
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
sub esp, 0xffffff80
ret
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], edx
sub esp, 0xffffff80
ret
test eax, eax
xchg ebp, ebx
setae bl
xchg ebp, ebx
test ecx, ecx
xchg esi, ebx
sete bl
xchg esi, ebx
xchg edi, ebx
setg bl
xchg edi, ebx
and esi, ebp
or edi, esi
xchg edi, eax
test al, al
xchg edi, eax
je 0x87348e
mov edx, dword [esp + 0x84]
mov dword [esp], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x10], eax
call fcn.008739b0
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
jmp 0x87348e
mov eax, dword [edx + 0x1c]
test eax, eax
sete al
cmp dword [edx + 0x18], 0xffff
sete cl
and ecx, eax
test cl, cl
jne 0x87344c
mov eax, dword [edx + 0x24]
test eax, eax
sete al
cmp dword [edx + 0x20], 0xffffffff
sete cl
and ecx, eax
test cl, cl
jne 0x87344c
jmp 0x873496
lea edi, [edx + 0x2c]
mov eax, ecx
call fcn.00456ab0
jmp 0x873430
lea eax, [0x94a0a0]
mov dword [esp], eax
call fcn.0040af00
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1b
lea ecx, [0x9dfc01]
mov dword [eax], ecx
mov dword [esp + 0x94], 0
lea ecx, [0xaa4cf0]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], eax
sub esp, 0xffffff80
ret
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], eax
sub esp, 0xffffff80
ret
mov dword [esp + 0x68], eax
mov dword [esp + 0x2c], ecx
mov dword [esp], ecx
mov dword [esp + 4], eax
mov edx, dword [0xe7accc]
mov dword [esp + 8], edx
call fcn.00402f80
movzx edx, byte [esp + 0xc]
xor edx, 1
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x2c]
jmp 0x873145
xor edx, edx
jmp 0x873145
mov ebx, edx
mov esi, ecx
jmp 0x8730b2
mov esi, ecx
mov ebp, edx
xor edx, edx
xor ebx, ebx
jmp 0x873201
call fcn.00456b70
mov eax, 1
mov ecx, edi
call fcn.00456b30
mov eax, 3
call fcn.00456b30
mov eax, 3
mov ecx, edi
call fcn.00456b30
mov eax, 1
mov ecx, edi
call fcn.00456b30
mov eax, 1
mov ecx, edi
call fcn.00456b30
mov eax, 1
mov ecx, edi
call fcn.00456b30
mov eax, 1
mov ecx, edi
call fcn.00456b30
mov eax, 4
mov ecx, esi
call fcn.00456b90
call fcn.00456b90
nop
call fcn.00455270
jmp fcn.00873030