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

Disassembly:
mov ecx, dword [0x14670ec]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x24]
cmp eax, dword [ecx + 8]
jbe 0x98e88c
sub esp, 0xa4
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 0x38]
mov dword [esp + 0x4c], ecx
lea edx, [0xc507e0]
mov dword [esp], edx
call fcn.0040f6d0
mov eax, dword [esp + 4]
mov dword [esp + 0xa0], eax
lea ecx, [0xc5f780]
mov dword [esp], ecx
call fcn.0040f6d0
mov eax, dword [esp + 4]
xor ecx, ecx
mov edx, 0xffffffff
mov ebx, 4
mov ebp, dword [esp + 0xa0]
xor esi, esi
mov edi, 4
xor ebx, ebx
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0xac]
mov dword [esp + 0x70], ebx
mov ebx, 4
jmp 0x98e3b9
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], ebp
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], eax
mov dword [esp + 0x50], ebx
mov byte [esp + 0x37], dl
mov dword [esp], ecx
call fcn.0098d450
movzx ecx, byte [esp + 0x37]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x84]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x74], eax
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0xa8]
mov eax, dword [edx + 0x30]
cmp eax, 4
jl 0x98e662
mov dword [esp + 0x3c], edi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], esi
mov dword [esp + 0x78], ebp
mov byte [esp + 0x2e], cl
mov ecx, dword [edx + 0x2c]
mov ebx, dword [0x14446e4]
lea ebp, [0xc75c80]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.0046de60
movzx eax, byte [esp + 0x14]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx]
test al, al
je 0x98e589
mov byte [esp + 0x2d], cl
mov eax, dword [esp + 0x40]
inc eax
mov edx, dword [esp + 0x44]
cmp edx, eax
jb 0x98e436
mov ebp, dword [esp + 0x78]
jmp 0x98e46f
mov ecx, dword [esp + 0x78]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0xc62fa0]
mov dword [esp + 0x10], eax
call fcn.00471cb0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
movzx ecx, byte [esp + 0x2d]
mov edx, ebx
mov dword [esp + 0x84], ebp
mov dword [esp + 0x6c], edx
mov byte [eax + ebp - 1], cl
mov ebx, dword [esp + 0x38]
inc ebx
mov esi, dword [esp + 0xa8]
mov edi, dword [esi + 0x2c]
mov edx, dword [esi + 0x30]
mov ebp, dword [esi + 0x34]
mov esi, dword [esp + 0x3c]
cmp esi, ebx
jae 0x98e4fe
mov dword [esp + 0x80], edi
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], ebp
mov dword [esp + 0x60], edx
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0xc358e0]
mov dword [esp + 0x10], eax
call fcn.00471cb0
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
movzx ecx, byte [esp + 0x2d]
mov edx, dword [esp + 0x60]
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x74], eax
mov esi, edi
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x80]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x64], esi
lea ebx, [ebx + ebx*2]
mov esi, dword [esp + 0x74]
mov dword [esi + ebx*4 - 8], edx
mov dword [esi + ebx*4 - 4], ebp
mov edx, dword [0x14674f0]
test edx, edx
je 0x98e531
mov edx, edi
call fcn.00476e80
mov dword [edi], edx
mov ebp, dword [esi + ebx*4 - 0xc]
mov dword [edi + 4], ebp
mov edi, edx
mov dword [esi + ebx*4 - 0xc], edi
movzx edx, byte [esp + 0x2e]
test dl, dl
je 0x98e549
mov edx, 1
mov ebx, dword [esp + 0x50]
jmp 0x98e566
movzx ecx, cl
mov ebx, dword [esp + 0x50]
cmp ebx, ecx
jge 0x98e558
mov ebx, ecx
jmp 0x98e566
cmp eax, 8
jg 0x98e63f
mov edx, 1
mov ecx, dword [esp + 0xa8]
mov ebp, dword [ecx + 0x3c]
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x58]
jmp 0x98e379
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 0x30]
mov edx, dword [eax + 0x2c]
mov dword [esp + 0x2f], 0
mov dword [esp + 0x33], 0
cmp ecx, 8
jl 0x98e5b0
mov ecx, 8
lea ebx, [esp + 0x2f]
cmp edx, ebx
je 0x98e5c8
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.00477810
mov eax, dword [esp + 0x2f]
mov ecx, dword [esp + 0x33]
mov dword [esp + 0x25], eax
mov dword [esp + 0x29], ecx
lea eax, [0xcdd560]
mov dword [esp], eax
lea ecx, [esp + 0x25]
mov dword [esp + 4], ecx
call fcn.0040d910
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
lea ecx, [0xe786a0]
mov dword [esp + 4], ecx
call fcn.0098d250
mov ecx, dword [esp + 0xa8]
movzx edx, byte [esp + 0x2e]
mov ebx, dword [esp + 0x50]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x84], ebp
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x74]
mov ebp, dword [esp + 0x70]
jmp 0x98e379
mov edx, dword [esp + 0xa8]
mov ecx, 1
mov esi, eax
mov ebp, dword [esp + 0x84]
mov ebx, dword [esp + 0x6c]
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x64]
jmp 0x98e666
mov eax, dword [esp + 0x74]
test cl, cl
je 0x98e6f6
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x78], ebp
mov dword [esp + 0x74], eax
mov dword [esp + 0x88], ebp
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], edi
lea edx, [0xce67c0]
mov dword [esp], edx
lea edx, [esp + 0x88]
mov dword [esp + 4], edx
call fcn.0040d8b0
mov eax, dword [esp + 8]
lea ecx, [0xe7b318]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0053adf0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x78]
xor ebp, ebp
mov esi, 0xffffffff
xor edi, edi
jmp 0x98e711
mov eax, dword [esp + 0x70]
mov dword [esp + 0xc4], eax
add esp, 0xa4
ret
inc ebp
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x38]
cmp ebp, eax
jge 0x98e793
movzx ecx, byte [ebx + ebp]
movzx edx, cl
cmp esi, edx
je 0x98e708
cmp edi, eax
jae 0x98e882
mov byte [ebx + edi], cl
mov ecx, dword [esp + 0x38]
cmp ebp, ecx
jae 0x98e87b
mov dword [esp + 0x54], ebp
lea esi, [ebp + ebp*2]
mov ebx, dword [esp + 0x74]
mov eax, dword [ebx + esi*4]
mov ebp, dword [ebx + esi*4 + 4]
mov esi, dword [ebx + esi*4 + 8]
cmp edi, ecx
jae 0x98e874
lea ecx, [edi + edi*2]
mov dword [ebx + ecx*4 + 4], ebp
mov dword [ebx + ecx*4 + 8], esi
mov ebp, dword [0x14674f0]
test ebp, ebp
je 0x98e77c
mov ebp, edi
call fcn.00476e80
mov dword [edi], eax
mov esi, dword [ebx + ecx*4]
mov dword [edi + 4], esi
mov edi, ebp
mov dword [ebx + ecx*4], eax
inc edi
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x54]
mov esi, edx
jmp 0x98e708
mov edx, dword [esp + 0x3c]
cmp edi, edx
ja 0x98e86d
mov eax, dword [0x1430d28]
mov ebx, dword [0x1430d2c]
mov ebp, dword [0x1430d30]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebp
call fcn.0052be50
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test eax, eax
jne 0x98e7e3
mov eax, dword [esp + 0x4c]
dec eax
jmp 0x98e6fa
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0xa8]
mov dword [esp], ecx
mov edx, dword [esp + 0x4c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
call fcn.0098d0c0
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 0x38]
cmp edx, ecx
ja 0x98e866
mov ebx, dword [eax]
mov ebp, dword [eax + 8]
sub ecx, edx
sub ebp, edx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edx, ebp
add edx, ebx
mov ebx, dword [esp + 0x48]
cmp ebx, ecx
jl 0x98e83f
mov ebx, ecx
mov ecx, dword [esp + 0x7c]
cmp ecx, edx
je 0x98e85e
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00477810
mov eax, dword [esp + 0xa8]
mov eax, dword [eax + 0x3c]
jmp 0x98e6fa
mov eax, edx
call fcn.00476f50
mov ecx, edi
call fcn.00476f30
mov eax, edi
call fcn.00476ef0
mov eax, ebp
call fcn.00476ef0
mov ecx, eax
mov eax, edi
call fcn.00476ef0
nop
call fcn.00475a70
jmp fcn.0098e2f0