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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x84]
cmp eax, dword [ecx + 8]
jbe 0x555218
sub esp, 0x104
movzx eax, byte [esp + 0x10c]
test al, al
jne 0x55516c
mov ecx, dword [esp + 0x108]
mov edx, dword [ecx + 0x2c]
mov ebx, dword [ecx + 0x30]
mov dword [esp + 0x20], ebx
mov dword [esp + 0xec], edx
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
lea eax, [0x744080]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.00439b00
mov eax, dword [esp + 0xc]
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x4c], ecx
lea edx, [0x744080]
mov dword [esp], edx
mov ebx, dword [esp + 0x20]
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.00439b00
mov eax, dword [esp + 0xc]
mov dword [esp + 0xe4], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x50], ecx
lea edx, [0x744080]
mov dword [esp], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.00439b00
mov eax, dword [esp + 0x14]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xdc], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x34], edx
lea ebx, [0x77de80]
mov dword [esp], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.00439b00
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0xc]
mov dword [esp + 0xd8], edx
xor ebx, ebx
mov ebp, ebx
mov esi, ebp
mov edi, esi
jmp 0x554da2
mov eax, dword [esp + 0x58]
inc eax
movzx ecx, byte [esp + 0x10c]
mov edx, dword [esp + 0xd8]
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x108]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x44]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x58]
cmp esi, edi
jge 0x554ce3
test cl, cl
jne 0x554cb1
mov edx, dword [ebp + 0x40]
mov eax, dword [ebp + 0x3c]
cmp esi, edx
jae 0x555211
lea edx, [esi + esi*2]
mov ebp, dword [eax + edx*4]
mov eax, dword [eax + edx*4 + 4]
cmp ebx, eax
jae 0x555211
shl ebx, 4
mov edx, dword [ebx + ebp + 8]
mov ebx, dword [ebx + ebp + 0xc]
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd0], edx
mov dword [esp], edx
mov dword [esp + 4], ebx
call fcn.0054a160
movzx eax, byte [esp + 8]
test al, al
je 0x554849
mov eax, dword [esp + 0xd0]
mov dword [esp + 0xf0], eax
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0xf4], ecx
mov edx, dword [esp + 0x108]
mov ebx, dword [edx + 0x38]
mov dword [esp + 4], ebx
lea ebx, [0x748aa0]
mov dword [esp], ebx
lea ebp, [esp + 0xf0]
mov dword [esp + 8], ebp
call fcn.004064f0
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov dword [esp + 0xe8], eax
mov ecx, dword [esp + 0xd0]
mov edx, dword [ecx + 0x7c]
mov ebx, dword [esp + 0xd4]
mov dword [esp], ebx
call edx
movzx eax, byte [esp + 4]
mov byte [esp + 0x1b], al
mov ecx, dword [esp + 0xd0]
mov edx, dword [ecx + 0x80]
mov ebx, dword [esp + 0xd4]
mov dword [esp], ebx
call edx
mov eax, dword [esp + 8]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x70], ecx
mov edx, dword [esp + 0xd0]
mov ebx, dword [edx + 0x108]
mov ebp, dword [esp + 0xd4]
mov dword [esp], ebp
call ebx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
movzx edx, byte [esp + 0x10c]
test dl, dl
jne 0x554b2c
mov eax, dword [esp + 0xe8]
mov ebx, dword [eax + 4]
cmp ebx, 1
je 0x554acd
mov ebx, dword [esp + 0x70]
test ebx, ebx
jle 0x554a64
mov ecx, dword [esp + 0x60]
mov ebp, dword [esp + 0x50]
cmp ecx, ebp
jae 0x5551fc
mov esi, dword [esp + 0xe4]
mov edi, dword [esi + ecx*4]
cmp edi, ebx
jle 0x554a60
mov dword [esi + ecx*4], edi
mov eax, dword [eax + 4]
cmp eax, 1
jne 0x554a50
movzx eax, byte [esp + 0x1b]
test al, 0x10
jbe 0x554a50
lea eax, [0x8074e0]
mov ebx, dword [esp + 0xd0]
cmp eax, ebx
jne 0x554a2d
mov ebx, dword [esp + 0x2c]
cmp ecx, ebx
jae 0x5551e7
lea edi, [ecx + ecx*4]
shl edi, 2
mov eax, dword [esp + 0xd8]
mov byte [eax + edi + 0x11], 1
jmp 0x554849
mov ebx, dword [esp + 0x2c]
cmp ecx, ebx
jae 0x5551e0
lea edi, [ecx + ecx*4]
shl edi, 2
mov eax, dword [esp + 0xd8]
mov byte [eax + edi + 0x10], 1
jmp 0x554849
mov eax, dword [esp + 0xd8]
mov ebx, dword [esp + 0x2c]
jmp 0x554849
mov edi, ebx
jmp 0x5549e4
test ecx, ecx
jle 0x554ac6
movzx ebx, byte [esp + 0x1b]
test bl, 4
jne 0x554aa4
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x50]
cmp ebp, esi
jae 0x5551f5
mov edi, dword [esp + 0xe4]
mov esi, dword [edi + ebp*4]
cmp esi, ecx
jle 0x554aa0
mov dword [edi + ebp*4], esi
mov ecx, ebp
mov ebp, dword [esp + 0x50]
mov esi, edi
jmp 0x5549e7
mov esi, ecx
jmp 0x554a90
mov ecx, dword [esp + 0x60]
mov ebp, dword [esp + 0x50]
cmp ecx, ebp
jae 0x5551ee
mov edi, dword [esp + 0xe4]
mov dword [edi + ecx*4], 0x8000
mov ebp, ecx
jmp 0x554a93
movzx ebx, byte [esp + 0x1b]
jmp 0x554aa4
mov dword [esp + 0x6c], ecx
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
mov ecx, dword [esp + 0xd4]
mov dword [esp + 4], ecx
call fcn.0057d510
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x4c]
cmp ecx, edx
jae 0x555203
mov ebx, dword [esp + 0xe0]
mov ebp, dword [ebx + ecx*4]
cmp ebp, eax
jle 0x554b28
mov dword [ebx + ecx*4], ebp
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0x6c]
movzx edx, byte [esp + 0x10c]
jmp 0x5549ba
mov ebp, eax
jmp 0x554b0d
mov ecx, dword [esp + 0xe8]
mov ebx, dword [ecx + 8]
cmp ebx, 1
je 0x554c52
mov ebx, dword [esp + 0x74]
test ebx, ebx
jle 0x554be9
mov eax, dword [esp + 0x60]
mov ebp, dword [esp + 0x50]
cmp eax, ebp
jae 0x5551d2
mov esi, dword [esp + 0xe4]
mov edi, dword [esi + eax*4]
cmp edi, ebx
jle 0x554be5
mov dword [esi + eax*4], edi
mov ecx, dword [ecx + 8]
cmp ecx, 1
jne 0x554bd8
movzx ecx, byte [esp + 0x1b]
test cl, 0x20
jbe 0x554bd8
lea ecx, [0x8074e0]
mov ebx, dword [esp + 0xd0]
cmp ecx, ebx
jne 0x554bb8
mov ebx, dword [esp + 0x2c]
cmp eax, ebx
jae 0x5551bd
lea edi, [eax + eax*4]
shl edi, 2
mov ecx, dword [esp + 0xd8]
mov byte [ecx + edi + 0x11], 1
mov eax, ecx
mov ecx, dword [esp + 0x60]
jmp 0x554849
mov ebx, dword [esp + 0x2c]
cmp eax, ebx
jae 0x5551b6
lea edi, [eax + eax*4]
shl edi, 2
mov ecx, dword [esp + 0xd8]
mov byte [ecx + edi + 0x10], 1
jmp 0x554bad
mov ecx, dword [esp + 0xd8]
mov ebx, dword [esp + 0x2c]
jmp 0x554bad
mov edi, ebx
jmp 0x554b69
test eax, eax
jle 0x554c4b
movzx ebx, byte [esp + 0x1b]
test bl, 8
jne 0x554c29
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x50]
cmp ebp, esi
jae 0x5551cb
mov edi, dword [esp + 0xe4]
mov esi, dword [edi + ebp*4]
cmp esi, eax
jle 0x554c25
mov dword [edi + ebp*4], esi
mov eax, ebp
mov ebp, dword [esp + 0x50]
mov esi, edi
jmp 0x554b6c
mov esi, eax
jmp 0x554c15
mov eax, dword [esp + 0x60]
mov ebp, dword [esp + 0x50]
cmp eax, ebp
jae 0x5551c4
mov edi, dword [esp + 0xe4]
mov dword [edi + eax*4], 0x8000
mov ebp, eax
jmp 0x554c18
movzx ebx, byte [esp + 0x1b]
jmp 0x554c29
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
mov ecx, dword [esp + 0xd4]
mov dword [esp + 4], ecx
call fcn.0057d510
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x4c]
cmp ecx, edx
jae 0x5551d9
mov ebx, dword [esp + 0xe0]
mov ebp, dword [ebx + ecx*4]
cmp ebp, eax
jle 0x554cad
mov dword [ebx + ecx*4], ebp
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0xe8]
movzx edx, byte [esp + 0x10c]
jmp 0x554b3f
mov ebp, eax
jmp 0x554c92
mov edx, dword [ebp + 0x3c]
mov eax, dword [ebp + 0x40]
cmp ebx, eax
jae 0x55520a
lea eax, [ebx + ebx*2]
mov ebx, dword [edx + eax*4 + 4]
mov eax, dword [edx + eax*4]
cmp esi, ebx
jae 0x55520a
shl esi, 4
mov ebx, dword [esi + eax + 0xc]
mov eax, dword [esi + eax + 8]
mov edx, eax
jmp 0x5548b7
cmp ebx, eax
jae 0x5551af
lea esi, [ebx + ebx*4]
mov dword [edx + esi*4], ebx
mov edi, esi
shl esi, 2
mov eax, dword [esp + 0x4c]
cmp ebx, eax
jae 0x5551a8
mov eax, dword [esp + 0xe0]
mov ebp, dword [eax + ebx*4]
mov dword [edx + edi*4 + 4], ebp
mov ebp, dword [esp + 0x50]
cmp ebx, ebp
jae 0x5551a1
mov ebp, dword [esp + 0xe4]
mov ebp, dword [ebp + ebx*4]
mov dword [edx + edi*4 + 8], ebp
mov ebp, dword [esp + 0x20]
cmp ebx, ebp
jae 0x55519a
mov ecx, dword [esp + 0xec]
mov ebp, dword [ecx + ebx*4]
cmp ebp, 1
jge 0x554d4b
mov ebp, 1
mov dword [edx + edi*4 + 0xc], ebp
mov ebp, dword [eax + ebx*4]
mov edi, dword [esp + 0x48]
add ebp, edi
movzx edi, byte [edx + esi + 0x10]
xchg edi, eax
test al, al
xchg edi, eax
je 0x554df1
mov esi, dword [esp + 0x98]
mov edi, dword [ecx + ebx*4]
add esi, edi
mov dword [esp + 0x98], esi
mov esi, dword [esp + 0x40]
inc esi
mov edi, dword [esp + 0x3c]
inc ebx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x90], edx
mov edx, ebp
mov ebp, esi
mov esi, edi
mov edi, edx
mov edx, dword [esp + 0x90]
mov dword [esp + 0x48], edi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], ebp
mov esi, dword [esp + 0x20]
cmp ebx, esi
jge 0x554e46
movzx ecx, byte [esp + 0x10c]
test cl, cl
jne 0x554e3a
mov ebp, dword [esp + 0x108]
mov edi, dword [ebp + 0x24]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x44], edi
mov dword [esp + 0x88], eax
xor eax, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x88]
jmp 0x554878
movzx esi, byte [edx + esi + 0x11]
xchg esi, eax
test al, al
xchg esi, eax
je 0x554e1f
mov esi, dword [esp + 0x9c]
mov edi, dword [ecx + ebx*4]
add esi, edi
mov dword [esp + 0x9c], esi
mov esi, dword [esp + 0x3c]
inc esi
mov edi, esi
mov esi, dword [esp + 0x40]
jmp 0x554d83
mov edi, dword [esp + 0xa0]
mov esi, edi
mov edi, dword [ecx + ebx*4]
add edi, esi
mov dword [esp + 0xa0], edi
mov esi, dword [esp + 0x3c]
jmp 0x554e14
mov ebp, dword [esp + 0x108]
mov edi, dword [ebp + 0x30]
jmp 0x554dd0
mov dword [esp + 0xf8], edx
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], ecx
lea ecx, [0x8027a0]
mov dword [esp], ecx
lea ecx, [esp + 0xf8]
mov dword [esp + 4], ecx
call fcn.0040c590
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004d9be0
mov eax, dword [esp + 0x108]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov ecx, dword [ecx + 0x30]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x10c]
test dl, dl
jne 0x555152
mov eax, dword [esp + 0x108]
mov edx, dword [eax + 8]
sub ecx, edx
mov edx, dword [eax + 0x10]
sub ecx, edx
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0xe4]
xor ebp, ebp
xor esi, esi
jmp 0x554edb
inc ebp
mov esi, ecx
mov ecx, edi
cmp ebp, edx
jge 0x554ef3
mov edi, ecx
mov ecx, dword [ebx + ebp*4]
test ecx, ecx
jle 0x554eef
mov ecx, dword [eax + 0x18]
add ecx, esi
jmp 0x554ed6
mov ecx, esi
jmp 0x554ed6
test esi, esi
jle 0x554efc
mov edx, dword [eax + 0x18]
sub esi, edx
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa4], 0
mov edx, dword [esp + 0x40]
mov dword [esp + 0xa8], edx
mov ebx, dword [esp + 0x3c]
lea ebp, [edx + ebx]
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], ebx
mov ebp, dword [esp + 0x20]
mov edi, ebp
sub ebp, edx
sub ebp, ebx
mov dword [esp + 0xb8], ebp
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0xd8]
mov dword [esp + 0x80], eax
xor eax, eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x80]
jmp 0x5550ff
mov eax, dword [esp + 0xdc]
mov dword [eax + ebx*4], ebp
mov ebx, dword [esp + 0x5c]
inc ebx
mov eax, dword [esp + 0x48]
sub eax, ecx
mov ecx, dword [esp + 0x1c]
sub ecx, edx
mov edx, dword [esp + 0x108]
mov edx, dword [edx + 0x18]
add ebp, edx
mov edi, dword [esp + 0x28]
sub edi, ebp
mov ebp, dword [esp + 0x24]
sub ebp, edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x48], eax
mov edx, ecx
mov ecx, edi
mov esi, ebp
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0xd8]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], edx
lea edx, [esp + 0xb0]
mov edx, dword [edx + eax*4]
mov ecx, dword [esp + 0x5c]
cmp ecx, edx
jge 0x5550e2
lea edx, [esp + 0xa4]
mov edx, dword [edx + eax*4]
add edx, ecx
cmp edx, ebx
jae 0x55518c
mov dword [esp + 0x24], esi
lea edx, [edx + edx*4]
lea edx, [ebp + edx*4]
lea edi, [esp + 0xbc]
mov esi, edx
call fcn.0044de9e
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x20]
cmp ecx, edx
jae 0x555185
mov dword [esp + 0x54], ecx
mov esi, edx
mov edx, dword [esp + 0xec]
mov edi, edx
mov edx, dword [edx + ecx*4]
mov ebp, dword [esp + 0xc0]
mov ebx, dword [esp + 0xc4]
cmp ebp, ebx
jge 0x5550da
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x48]
sub eax, ecx
mov ecx, dword [esp + 0x24]
sub eax, ecx
cvtsi2sd xmm0, eax
cvtsi2sd xmm1, edx
mulsd xmm0, xmm1
mov eax, dword [esp + 0x1c]
cvtsi2sd xmm1, eax
divsd xmm0, xmm1
cvttsd2si ecx, xmm0
add ecx, ebp
cmp ecx, ebp
jge 0x5550cc
mov ecx, ebp
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x34]
cmp ebx, eax
jb 0x554fa9
jmp 0x55517e
cmp ecx, ebx
jle 0x5550d6
mov ecx, ebp
mov ebp, ebx
jmp 0x5550b7
mov ebx, ecx
jmp 0x5550d0
mov eax, dword [esp + 0x1c]
mov ecx, ebp
jmp 0x5550b7
inc eax
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x108]
mov edx, ecx
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x108]
mov eax, dword [esp + 0x64]
cmp eax, 3
jge 0x55512b
jae 0x555193
lea edx, [esp + 0x98]
mov edx, dword [edx + eax*4]
mov dword [esp + 0x78], eax
xor eax, eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x78]
jmp 0x555001
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], edx
mov eax, dword [esp + 0x38]
mov dword [esp + 0x118], eax
add esp, 0x104
ret
mov edx, dword [esp + 0x108]
mov ebx, dword [edx + 0xc]
sub eax, ebx
mov ebx, dword [edx + 0x14]
sub eax, ebx
mov ecx, eax
mov eax, edx
jmp 0x554ec5
mov ecx, dword [esp + 0x108]
mov edx, dword [ecx + 0x20]
mov ebx, dword [ecx + 0x24]
jmp 0x554750
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.0044be50
jmp fcn.00554710