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

Disassembly:
mov ecx, dword [0x14670ec]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x40]
cmp eax, dword [ecx + 8]
jbe 0x98fbcd
sub esp, 0xc0
mov edx, dword [esp + 0xc4]
mov ebx, dword [edx + 0x30]
mov ebp, dword [edx + 0x38]
test ebx, ebx
jbe 0x98fbc3
mov eax, dword [edx + 0x2c]
movzx eax, byte [eax]
mov ecx, dword [edx + 0x3c]
mov dword [esp + 0x58], ecx
cmp al, 0x74
je 0x98f14a
cmp al, 0x75
jne 0x98f113
mov dword [esp], edx
call fcn.0098d450
xor eax, eax
xor ecx, ecx
lea edx, [esp + 0x24]
mov ebx, dword [esp + 0x58]
jmp 0x98f279
cmp al, 0x78
jne 0x98f131
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.0098d6d0
mov eax, dword [esp + 8]
jmp 0x98f1f5
mov dword [esp], edx
mov dword [esp + 4], 2
call fcn.0098d6d0
mov eax, dword [esp + 8]
jmp 0x98f1f5
mov dword [esp + 0x24], ebp
mov dword [esp], edx
call fcn.0098d450
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 0x30]
add ecx, 0xfffffffe
cmp ecx, 1
ja 0x98f1c3
mov ecx, dword [eax + 0x2c]
cmp byte [ecx + 1], 0x39
ja 0x98f177
mov ecx, dword [esp + 0x58]
jmp 0x98f1e4
lea edi, [esp + 0x94]
xor eax, eax
call fcn.0047711b
mov ecx, dword [esp + 0xc4]
mov dword [esp], ecx
mov byte [esp + 4], 0
call fcn.0098de30
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x58], ecx
lea edi, [esp + 0x94]
lea esi, [esp + 8]
call fcn.004775fe
nop
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0xc4]
mov ebx, dword [esp + 0x24]
jmp 0x98f204
mov ecx, dword [esp + 0x58]
jmp 0x98f1e4
mov dword [esp], eax
mov dword [esp + 4], 3
call fcn.0098d6d0
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc4]
cmp dword [eax + 0x30], 2
jne 0x98f1f3
mov edx, dword [eax + 0x2c]
cmp byte [edx + 1], 0x39
jbe 0x98f1c9
mov eax, ecx
mov dword [esp + 0xc8], eax
add esp, 0xc0
ret
inc ebx
cmp ebx, ecx
jge 0x98f22b
mov ebp, dword [edx + 4]
cmp ebx, ebp
jae 0x98f22f
mov ebp, dword [edx]
movzx esi, byte [ebp + ebx]
lea edi, [esi - 0x41]
xchg edi, eax
cmp al, 0x19
xchg edi, eax
ja 0x98f203
add esi, 0x20
xchg esi, eax
mov byte [ebp + ebx], al
xchg esi, eax
jmp 0x98f203
mov eax, edx
jmp 0x98f1e4
mov eax, ebx
mov ecx, ebp
call fcn.00476ef0
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x38], ecx
mov edx, dword [eax + 0x34]
mov dword [esp + 0x40], edx
mov ebx, dword [eax + 0x2c]
mov dword [esp + 0x84], ebx
mov ebp, dword [eax + 0x3c]
mov dword [esp + 0x74], ebp
mov dword [esp], eax
call fcn.0098d450
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x84]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0xc4]
mov esi, dword [ebp + 0x30]
cmp esi, 2
jle 0x98f2e5
mov dword [esp + 0x78], ebx
mov ebx, dword [ebp + 0x2c]
mov edi, dword [ebp + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call fcn.004065b0
cmp dword [esp + 0x18], 0xffffffff
je 0x98f238
mov eax, dword [esp + 0x58]
lea ecx, [eax + 1]
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0xc4]
mov dword [edx + 0x40], ecx
mov dword [esp], edx
call fcn.0098d450
xor eax, eax
lea ecx, [0x1466e80]
xor edx, edx
mov ebx, dword [esp + 0x78]
jmp 0x98f9f2
mov dword [esp + 0x58], ebx
xor ecx, ecx
xor edx, edx
xor esi, esi
jmp 0x98f306
mov ebp, eax
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov esi, dword [esp + 0xbc]
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x3c], ecx
mov edi, dword [ebp + 0x30]
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x34]
cmp edi, 2
jne 0x98f3a7
mov dword [esp + 0x80], esi
mov dword [esp + 0x78], edi
mov dword [esp + 0xbc], eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x34], edx
mov eax, dword [ebp + 0x3c]
mov dword [esp + 0x70], eax
mov dword [esp], ebp
call fcn.0098d450
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x70]
jmp 0x98f3c5
mov eax, dword [esp + 0xbc]
mov dword [esp], eax
mov ecx, dword [esp + 0x78]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x74]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x80]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x14], ebx
call fcn.004065b0
cmp dword [esp + 0x18], 1
jne 0x98f3db
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x98f2f1
jmp 0x98f3e2
mov eax, ebx
jmp 0x98f1f5
mov dword [esp + 0x70], edx
mov dword [esp], eax
call fcn.0098d450
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x70], ecx
mov edx, dword [eax + 0x3c]
cmp ecx, edx
jge 0x98f352
cmp dword [eax + 0x30], 2
jg 0x98f3ae
jmp 0x98f352
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x58]
lea edx, [ecx + 1]
mov dword [esp + 0x2c], edx
mov dword [eax + 0x40], edx
mov dword [esp], eax
call fcn.0098d450
lea eax, [0x1466e80]
xor ecx, ecx
xor edx, edx
mov ebx, dword [esp + 0x70]
jmp 0x98f416
mov dword [ebx + eax*4 - 0xc], edx
mov eax, ebx
mov ecx, ebp
mov edx, dword [esp + 0x48]
mov ebx, esi
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x88], eax
mov ebp, dword [esp + 0xc4]
cmp dword [ebp + 0x30], 2
jne 0x98f52f
mov eax, dword [ebp + 0x38]
mov dword [esp + 0x4c], eax
mov ecx, dword [ebp + 0x3c]
mov dword [esp + 0x78], ecx
mov dword [esp], ebp
call fcn.0098d450
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x78]
jmp 0x98f9a3
mov edx, dword [eax + 8]
cmp ecx, edx
ja 0x98f9c0
mov ebx, dword [esp + 0x4c]
cmp ecx, ebx
jb 0x98f9b9
mov ebp, dword [esp + 0x44]
inc ebp
mov esi, dword [eax]
sub edx, ebx
mov edi, edx
neg edx
sar edx, 0x1f
and edx, ebx
add edx, esi
mov esi, ecx
sub ecx, ebx
mov ebx, dword [esp + 0x48]
cmp ebx, ebp
jae 0x98f4f7
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], ecx
mov dword [esp + 0x70], edi
mov dword [esp + 0xbc], edx
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0xc358e0]
mov dword [esp + 0x10], eax
call fcn.00471cb0
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x88], eax
mov ebx, edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x48], ebx
lea eax, [ebp + ebp*2]
mov ebx, dword [esp + 0x88]
mov dword [ebx + eax*4 - 8], ecx
mov dword [ebx + eax*4 - 4], edi
mov ecx, dword [0x14674f0]
test ecx, ecx
je 0x98f408
call fcn.00476e80
mov dword [edi], edx
mov ecx, dword [ebx + eax*4 - 0xc]
mov dword [edi + 4], ecx
jmp 0x98f408
mov dword [esp + 0x78], ebx
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], 2
lea ebx, [0xce6720]
mov dword [esp], ebx
lea ebx, [esp + 0xa8]
mov dword [esp + 4], ebx
call fcn.0040d8b0
mov eax, dword [esp + 8]
lea ecx, [0xe7b300]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0053aea0
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x98f59d
mov ebx, dword [esp + 0x88]
mov eax, 1
xor edx, edx
jmp 0x98f746
mov eax, dword [0x1430d28]
mov edx, dword [0x1430d2c]
mov ebx, dword [0x1430d30]
mov ebp, dword [esp + 0x88]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call fcn.0052be50
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x58]
lea edx, [eax + ecx + 1]
mov ebx, dword [esp + 0x18]
lea ebp, [ecx + eax]
mov esi, dword [esp + 0x78]
cmp esi, edx
jle 0x98f6c9
mov dword [esp + 0x7c], ebx
mov edi, dword [esp + 0xc4]
mov ebx, dword [edi + 4]
nop
cmp ebx, edx
jb 0x98f732
mov dword [esp + 0x74], ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x70], ebp
mov eax, dword [edi]
mov ecx, dword [edi + 8]
mov dword [esp + 0x6c], ecx
sub ecx, ebp
dec ecx
neg ecx
sar ecx, 0x1f
and ecx, edx
add ecx, eax
sub ebx, ebp
mov ebp, dword [esp + 0x74]
cmp esi, ebp
ja 0x98f729
dec ebx
sub ebp, esi
mov edi, dword [esp + 0x6c]
sub edi, esi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, esi
add edi, eax
cmp ebp, ebx
jl 0x98f657
mov ebp, ebx
cmp edi, ecx
je 0x98f67f
mov dword [esp + 0x68], edx
mov dword [esp + 0x74], ebp
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], ebp
call fcn.00477810
mov edx, dword [esp + 0x68]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0xc4]
mov edi, dword [ebx + 8]
mov eax, esi
mov esi, dword [esp + 0x70]
lea ecx, [ebp + esi + 1]
cmp edi, ecx
jb 0x98f722
mov dword [ebx + 4], ecx
sub eax, esi
mov ebp, dword [ebx + 0x40]
sub ebp, eax
inc ebp
mov dword [ebx + 0x40], ebp
mov ebp, dword [ebx + 0x38]
sub ebp, eax
inc ebp
mov dword [ebx + 0x38], ebp
mov ebp, dword [ebx + 0x3c]
sub ebp, eax
inc ebp
mov dword [ebx + 0x3c], ebp
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x7c]
mov esi, edx
mov edx, dword [esp + 0xc4]
mov ebp, dword [edx + 4]
mov edi, dword [esp + 0x2c]
cmp ebp, edi
jb 0x98f719
mov dword [esp + 0x58], esi
mov esi, dword [edx]
mov edx, dword [edx + 8]
sub ebp, ecx
sub edx, ecx
lea ecx, [ebp - 1]
dec edx
neg edx
sar edx, 0x1f
and edi, edx
lea edx, [edi + esi]
cmp eax, ecx
jl 0x98f6fc
mov eax, ecx
cmp ebx, edx
je 0x98f710
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call fcn.00477810
mov ebx, dword [esp + 0x58]
jmp 0x98f3a7
mov eax, edi
mov ecx, ebp
call fcn.00476f50
mov edx, edi
call fcn.00476f30
mov eax, esi
mov ecx, ebp
call fcn.00476f50
mov eax, edx
mov ecx, ebx
call fcn.00476f50
mov esi, dword [esp + 0x54]
inc esi
mov ebx, ebp
mov edx, eax
mov eax, esi
cmp eax, ecx
jge 0x98f954
cmp edx, ecx
jae 0x98f985
lea ebp, [edx + edx*2]
mov esi, dword [ebx + ebp*4 + 8]
mov edi, dword [ebx + ebp*4]
cmp esi, 2
jb 0x98f979
mov dword [esp + 0x54], eax
lea esi, [eax + eax*2]
mov dword [esp + 0x74], esi
mov eax, dword [ebx + esi*4 + 8]
mov ecx, dword [ebx + esi*4]
lea esi, [ebx + esi*4]
cmp eax, 2
jb 0x98f96d
mov dword [esp + 0xb8], esi
mov dword [esp + 0x70], ebp
mov dword [esp + 0x50], edx
mov dword [esp], edi
mov dword [esp + 4], ecx
mov dword [esp + 8], 2
call fcn.004066c0
movzx eax, byte [esp + 0xc]
test al, al
je 0x98f8ff
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x88]
mov esi, dword [ebp + ebx*4 + 4]
mov ebx, dword [ebp + ebx*4]
mov edi, dword [esp + 0x74]
mov edi, dword [ebp + edi*4]
mov eax, edi
mov edi, dword [esp + 0xb8]
cmp dword [edi + 4], esi
je 0x98f7e4
xor eax, eax
jmp 0x98f800
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.004066c0
movzx eax, byte [esp + 0xc]
mov ebp, dword [esp + 0x88]
test al, al
je 0x98f810
mov ebx, dword [esp + 0xc4]
jmp 0x98f8f2
mov ebx, dword [esp + 0xc4]
mov esi, dword [ebx + 0x44]
mov edi, dword [0x142c2e0]
mov eax, dword [0x142c2e4]
test esi, esi
je 0x98f8d5
mov dword [esp + 0x5c], edi
mov dword [esp + 0x8c], eax
cmp dword [0x142c2d8], edi
je 0x98f845
xor ecx, ecx
jmp 0x98f87b
mov ecx, dword [0x142c2dc]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00407e30
movzx eax, byte [esp + 0xc]
mov ebx, dword [esp + 0xc4]
mov ebp, dword [esp + 0x88]
mov edi, dword [esp + 0x5c]
mov ecx, eax
mov eax, dword [esp + 0x8c]
test cl, cl
je 0x98f8cf
mov esi, dword [ebx + 0x44]
cmp dword [0x142c2d8], esi
je 0x98f891
mov ecx, 1
jmp 0x98f8d1
mov eax, dword [ebx + 0x48]
mov ecx, dword [0x142c2dc]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00407e30
movzx eax, byte [esp + 0xc]
xor eax, 1
mov ebx, dword [esp + 0xc4]
mov ebp, dword [esp + 0x88]
mov edi, dword [esp + 0x5c]
mov ecx, eax
mov eax, dword [esp + 0x8c]
jmp 0x98f8d1
xor ecx, ecx
test cl, cl
je 0x98f8f2
mov dword [ebx + 0x44], edi
mov esi, dword [0x14674f0]
test esi, esi
je 0x98f8ef
call fcn.00476e80
mov dword [edi], eax
mov esi, dword [ebx + 0x48]
mov dword [edi + 4], esi
mov dword [ebx + 0x48], eax
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x50]
jmp 0x98f73b
mov ebx, dword [esp + 0x50]
lea eax, [ebx + 1]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x88]
mov esi, dword [ebp + ebx*4 + 4]
mov edi, dword [ebp + ebx*4 + 8]
mov ebx, dword [ebp + ebx*4]
mov ecx, dword [esp + 0x44]
cmp ecx, eax
jbe 0x98f968
mov edx, ebx
mov ebx, dword [esp + 0x70]
mov dword [ebp + ebx*4 + 0x10], esi
mov dword [ebp + ebx*4 + 0x14], edi
mov esi, dword [0x14674f0]
test esi, esi
je 0x98f94b
call fcn.00476e80
mov dword [edi], edx
mov esi, dword [ebp + ebx*4 + 0xc]
mov dword [edi + 4], esi
mov dword [ebp + ebx*4 + 0xc], edx
jmp 0x98f73b
lea ecx, [edx + 1]
mov edx, dword [esp + 0x48]
cmp edx, ecx
jae 0x98f59d
call fcn.00476f30
call fcn.00476ef0
mov ecx, 2
mov edx, eax
call fcn.00476f30
mov ecx, 2
mov edx, esi
call fcn.00476f30
mov eax, edx
call fcn.00476ef0
mov dword [esp + 0x78], ebx
mov dword [esp], eax
call fcn.0098d450
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x78]
mov ebx, dword [eax + 0x3c]
cmp ecx, ebx
jge 0x98f45c
cmp dword [eax + 0x30], 2
jg 0x98f98c
jmp 0x98f45c
mov eax, ebx
call fcn.00476f50
call fcn.00476f30
mov dword [esp + 0x90], ecx
mov dword [ecx + eax*4 - 0xc], edi
mov eax, dword [ebp + 0x3c]
mov dword [esp + 0x78], eax
mov dword [esp], ebp
call fcn.0098d450
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x78], ebx
mov ebp, dword [esp + 0xc4]
mov esi, dword [ebp + 0x30]
mov edi, dword [ebp + 0x2c]
mov ebx, dword [ebp + 0x34]
cmp esi, 2
jle 0x98fa9f
inc edx
cmp eax, edx
jae 0x98fa67
mov dword [esp + 0x78], ebx
mov dword [esp + 0x74], esi
mov dword [esp + 0xbc], edi
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0xc358e0]
mov dword [esp + 0x10], eax
call fcn.00471cb0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0xc4]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0xbc]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
lea eax, [edx + edx*2]
mov dword [ecx + eax*4 - 8], esi
mov dword [ecx + eax*4 - 4], ebx
mov ebx, dword [0x14674f0]
test ebx, ebx
je 0x98f9c5
mov ebx, edi
call fcn.00476e80
mov dword [edi], ebx
mov esi, dword [ecx + eax*4 - 0xc]
mov dword [edi + 4], esi
mov edi, ebx
jmp 0x98f9c5
mov dword [esp + 0x70], eax
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x60], edx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], 3
lea ebx, [0xce6720]
mov dword [esp], ebx
lea ebp, [esp + 0xa8]
mov dword [esp + 4], ebp
call fcn.0040d8b0
mov eax, dword [esp + 8]
lea ecx, [0xe7b300]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0053adf0
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x30]
cmp ecx, edx
jb 0x98fbbc
mov ebx, dword [eax]
mov dword [esp + 0xbc], ebx
mov ebp, dword [eax + 8]
mov esi, dword [esp + 0x58]
sub ebp, esi
sub ecx, esi
dec ecx
mov dword [esp + 0x74], ecx
dec ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edx, ebp
mov dword [esp + 0x6c], edx
mov ebp, dword [0x1430d28]
mov esi, dword [0x1430d2c]
mov edi, dword [0x1430d30]
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
call fcn.0052be50
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0xbc]
add ecx, edx
mov edx, dword [esp + 0x74]
cmp eax, edx
jl 0x98fb94
mov eax, edx
mov edx, dword [esp + 0x18]
cmp edx, ecx
je 0x98fbac
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00477810
mov ebp, dword [esp + 0xc4]
mov ebx, dword [esp + 0x78]
jmp 0x98f2e5
mov eax, edx
call fcn.00476f50
xor eax, eax
mov ecx, eax
call fcn.00476ef0
nop
call fcn.00475a70
jmp fcn.0098f0b0