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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x19c]
cmp eax, dword [ecx + 8]
jbe 0x55027e
sub esp, 0x21c
mov ecx, dword [esp + 0x228]
test ecx, ecx
je 0x55024b
mov edx, dword [esp + 0x224]
test edx, edx
je 0x55022e
lea edi, [esp + 0x7c]
xor eax, eax
call fcn.004663d0
lea edi, [esp + 0x190]
call fcn.004663db
lea ecx, [esp + 0x7c]
mov dword [esp + 0x190], ecx
mov dword [esp + 0x198], 0x40
mov ecx, dword [esp + 0x228]
lea esi, [ecx + 4]
mov dword [esp + 0xdc], esi
lea edi, [esp + 0x154]
call fcn.004668be
mov ecx, dword [esp + 0x154]
mov ebx, dword [esp + 0x158]
test ebx, 0x80000000
je 0x550217
shl ebx, 1
mov ebp, ecx
shr ecx, 0x1f
or ecx, ebx
mov ebx, ebp
shl ebp, 1
mov esi, ecx
shl ecx, 1
shr ebp, 0x1f
or ecx, ebp
mov ebp, ecx
add ecx, 0xd7b17f80
shr esi, 0x1f
add ebp, 0xd7b17f80
adc esi, 0xd
mov eax, ecx
mov edx, 0x3b9aca00
mul edx
and ebx, 0x3fffffff
mov ecx, ebx
add ebx, eax
mov ebp, ebx
add ebx, 0x3d1a0000
imul esi, esi, 0x3b9aca00
add edx, esi
mov esi, ecx
sar ecx, 0x1f
add esi, eax
adc edx, ecx
add ebp, 0x3d1a0000
adc edx, 0xa1b203eb
mov dword [esp + 4], edx
mov dword [esp], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x3b9aca00
call fcn.0045cbc0
mov esi, dword [0xac459c]
test byte [esi], al
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
lea edi, [esp + 0x1f4]
call fcn.0046688c
cmp dword [esp + 0x1f4], ebx
setne cl
mov ebp, dword [esp + 0x44]
lea esi, [esp + 0x1f4]
cmp dword [esi + 4], ebp
xchg ebp, ebx
setne bl
xchg ebp, ebx
or ebp, ecx
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x54fb41
mov dword [esp], 0
mov eax, dword [esp + 0x220]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x224]
mov dword [esp + 8], eax
call fcn.0044dc30
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov byte [esp + 0x2f], 0
mov byte [esp + 0x2f], 0x25
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
lea eax, [esp + 0x2f]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0xffffffff
call fcn.004f1ca0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
test ecx, ecx
jle 0x54f825
mov dword [esp + 0x30], ecx
xor edx, edx
jmp 0x54f7b9
add eax, 0xc
mov dword [esp + 0x58], edx
mov dword [esp + 0xd8], eax
mov ebx, dword [eax + 4]
mov ebp, dword [eax]
mov esi, dword [eax + 8]
test edx, edx
jle 0x54fb0a
test ebx, ebx
jle 0x54fb0a
mov dword [esp + 0x4c], esi
mov dword [esp + 0x48], ebx
mov dword [esp + 0xc4], ebp
movzx edi, byte [ebp]
xchg edi, eax
cmp al, 0x4d
xchg edi, eax
ja 0x54f9bc
xchg edi, eax
cmp al, 0x44
xchg edi, eax
je 0x54f974
xchg edi, eax
cmp al, 0x4c
xchg edi, eax
je 0x54f91a
xchg edi, eax
cmp al, 0x4d
xchg edi, eax
je 0x54f8d3
cmp ebx, 1
jg 0x54f89b
inc edx
cmp ecx, edx
jg 0x54f7b6
lea eax, [esp + 0x190]
mov dword [esp], eax
mov byte [esp + 4], 0xa
call fcn.004f0c30
mov ecx, dword [esp + 0x194]
mov eax, dword [esp + 0x190]
mov edx, dword [esp + 0x198]
mov ebx, dword [esp + 0x19c]
cmp ecx, ebx
jb 0x55026a
mov dword [esp], 0
sub edx, ebx
neg edx
sar edx, 0x1f
and edx, ebx
add eax, edx
mov dword [esp + 4], eax
sub ecx, ebx
mov dword [esp + 8], ecx
call fcn.0044dae0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x22c], eax
mov dword [esp + 0x230], ecx
add esp, 0x21c
ret
lea eax, [esp + 0x190]
mov dword [esp], eax
lea ecx, [ebp + 1]
mov dword [esp + 4], ecx
lea ecx, [ebx - 1]
mov dword [esp + 8], ecx
lea ecx, [esi - 1]
mov dword [esp + 0xc], ecx
call fcn.004f06e0
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x58]
jmp 0x54f820
mov eax, dword [esp + 0x228]
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
lea ebx, [esp + 0x190]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004f07b0
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0xc4]
mov esi, dword [esp + 0x4c]
jmp 0x54f81b
mov edi, dword [esp + 0x228]
mov edi, dword [edi]
cmp edi, 8
jae 0x550271
lea eax, [0xac8c20]
lea ecx, [eax + edi*8]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
lea ebx, [esp + 0x190]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004f07b0
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0xc4]
mov esi, dword [esp + 0x4c]
jmp 0x54f81b
mov eax, dword [esp + 0x214]
mov ecx, dword [esp + 0x218]
lea edx, [esp + 0x190]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004f07b0
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0xc4]
mov esi, dword [esp + 0x4c]
jmp 0x54f81b
xchg edi, eax
cmp al, 0x54
xchg edi, eax
ja 0x54fa68
xchg edi, eax
cmp al, 0x53
xchg edi, eax
je 0x54fa21
xchg edi, eax
cmp al, 0x54
xchg edi, eax
jne 0x54f81b
mov eax, dword [esp + 0x20c]
mov ecx, dword [esp + 0x210]
lea edx, [esp + 0x190]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004f07b0
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0xc4]
mov esi, dword [esp + 0x4c]
jmp 0x54f81b
mov eax, dword [esp + 0x228]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
lea ebx, [esp + 0x190]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004f07b0
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0xc4]
mov esi, dword [esp + 0x4c]
jmp 0x54f81b
xchg edi, eax
cmp al, 0x64
xchg edi, eax
je 0x54fac2
xchg edi, eax
cmp al, 0x74
xchg edi, eax
jne 0x54f81b
mov eax, dword [esp + 0x1fc]
mov ecx, dword [esp + 0x200]
lea edx, [esp + 0x190]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004f07b0
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0xc4]
mov esi, dword [esp + 0x4c]
jmp 0x54f81b
mov eax, dword [esp + 0x204]
mov ecx, dword [esp + 0x208]
lea edx, [esp + 0x190]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004f07b0
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0xc4]
mov esi, dword [esp + 0x4c]
jmp 0x54f81b
test ebx, ebx
jle 0x54f820
lea eax, [esp + 0x190]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
call fcn.004f06e0
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x58]
jmp 0x54f820
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], ebx
lea edi, [esp + 0x118]
mov esi, dword [esp + 0xdc]
call fcn.004668be
lea edi, [esp]
lea esi, [esp + 0x118]
call fcn.004668be
mov byte [esp + 0x14], 1
call fcn.004bdf60
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x50], eax
lea edi, [esp + 0xf0]
mov esi, dword [esp + 0xdc]
call fcn.004668be
lea edi, [esp]
lea esi, [esp + 0xf0]
call fcn.004668be
mov byte [esp + 0x14], 1
call fcn.004bdf60
mov eax, dword [esp + 0x20]
mov dword [esp + 0x60], eax
lea edi, [esp + 0x168]
mov esi, dword [esp + 0xdc]
call fcn.004668be
lea edi, [esp]
lea esi, [esp + 0x168]
call fcn.004668be
mov byte [esp + 0x14], 0
call fcn.004bdf60
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
lea edi, [esp + 0x140]
mov esi, dword [esp + 0xdc]
call fcn.004668be
lea edi, [esp]
lea esi, [esp + 0x140]
call fcn.004668be
call fcn.004bbb40
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x15180
call fcn.0045cb00
mov eax, dword [esp + 0x10]
mov dword [esp + 0x78], eax
lea edi, [esp + 0x12c]
mov esi, dword [esp + 0xdc]
call fcn.004668be
lea edi, [esp]
lea esi, [esp + 0x12c]
call fcn.004668be
call fcn.004bbb40
mov eax, dword [esp + 0x18]
mov dword [esp + 0x74], eax
mov ecx, 0x91a2b3c5
mul ecx
shr edx, 0xb
imul eax, edx, 0xe10
mov edx, dword [esp + 0x74]
sub edx, eax
mov eax, edx
mov ebx, 0x123456
mov ebp, eax
mul ebx
mov edx, dword [esp + 0x14]
mov ebx, eax
mov eax, edx
mov esi, edx
mul ecx
shr edx, 0xb
mov eax, edx
add edx, 0
add edx, ebx
imul eax, eax, 0xe10
mov ebx, esi
sub esi, eax
imul eax, ebp, 0x6a0
add eax, esi
mov ebp, edx
mul ecx
shr edx, 0xb
add edx, ebp
mov eax, edx
mov ebp, 0xe10
mul ebp
sub ebx, eax
mov dword [esp + 0x74], ebx
lea edi, [esp + 0x104]
mov esi, dword [esp + 0xdc]
call fcn.004668be
lea edi, [esp]
lea esi, [esp + 0x104]
call fcn.004668be
call fcn.004bbb40
mov eax, dword [esp + 0x14]
mov dword [esp + 0x70], eax
mov ecx, 0x88888889
mul ecx
shr edx, 5
mov eax, edx
add edx, 0
mov ebx, dword [esp + 0x18]
mov ebp, eax
mov eax, ebx
mov esi, edx
mul ecx
shr edx, 5
imul eax, edx, 0x3c
sub ebx, eax
mov eax, ebx
mov edx, 0x4444444
mul edx
add eax, esi
imul edx, ebp, 0x3c
mov ebp, dword [esp + 0x70]
mov esi, ebp
sub ebp, edx
shl ebx, 4
lea edx, [ebx + ebp]
mov ebx, eax
mov eax, edx
mul ecx
shr edx, 5
add edx, ebx
mov eax, edx
mov ebx, 0x3c
mul ebx
sub esi, eax
mov dword [esp + 0x70], esi
lea edi, [esp + 0x17c]
mov esi, dword [esp + 0xdc]
call fcn.004668be
lea edi, [esp]
lea esi, [esp + 0x17c]
call fcn.004668be
call fcn.004be760
mov eax, dword [esp + 0x14]
mov dword [esp + 0xbc], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x34], ecx
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov eax, 0x91a2b3c5
mov ebx, dword [esp + 0x78]
imul ebx
lea eax, [edx + ebx]
sar eax, 0xb
sar ebx, 0x1f
sub eax, ebx
mov dword [esp + 0x5c], eax
mov dword [esp], eax
call fcn.00409840
mov eax, dword [esp + 4]
lea ecx, [0x79eda0]
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], eax
mov eax, 0x88888889
mov edx, dword [esp + 0x74]
mov ebx, edx
imul edx
lea eax, [edx + ebx]
sar eax, 5
sar ebx, 0x1f
sub eax, ebx
mov dword [esp + 0x54], eax
mov dword [esp], eax
call fcn.00409840
mov eax, dword [esp + 4]
lea ecx, [0x79eda0]
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xec], eax
lea eax, [0x805ec8]
mov dword [esp], eax
mov dword [esp + 4], 9
lea eax, [esp + 0xe0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004dc120
mov eax, dword [esp + 0x14]
mov dword [esp + 0xd4], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x78], ecx
lea edi, [esp + 0x1bc]
xor eax, eax
call fcn.004663da
mov ecx, dword [esp + 0x50]
mov dword [esp], ecx
call fcn.00409840
mov eax, dword [esp + 4]
lea ecx, [0x7a73a0]
mov dword [esp + 0x1bc], ecx
mov dword [esp + 0x1c0], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.00409840
mov eax, dword [esp + 4]
lea ecx, [0x79eda0]
mov dword [esp + 0x1c4], ecx
mov dword [esp + 0x1c8], eax
mov eax, 0x51eb851f
mov edx, dword [esp + 0x38]
mov ebx, edx
imul edx
sar edx, 5
mov eax, ebx
sar ebx, 0x1f
sub edx, ebx
imul edx, edx, 0x64
sub eax, edx
mov dword [esp], eax
call fcn.00409840
mov eax, dword [esp + 4]
lea ecx, [0x79eda0]
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], eax
lea eax, [0x808c5e]
mov dword [esp], eax
mov dword [esp + 4], 0xe
lea eax, [esp + 0x1bc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 3
mov dword [esp + 0x10], 3
call fcn.004dc120
mov eax, dword [esp + 0x14]
mov dword [esp + 0xd0], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x6c], ecx
lea edi, [esp + 0x1d4]
xor eax, eax
call fcn.004663d8
mov ecx, dword [esp + 0x5c]
mov dword [esp], ecx
call fcn.00409840
mov eax, dword [esp + 4]
lea ecx, [0x79eda0]
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x1d8], eax
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.00409840
mov eax, dword [esp + 4]
lea ecx, [0x79eda0]
mov dword [esp + 0x1dc], ecx
mov dword [esp + 0x1e0], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call fcn.00409840
mov eax, dword [esp + 4]
lea ecx, [0x79eda0]
mov dword [esp + 0x1e4], ecx
mov dword [esp + 0x1e8], eax
mov eax, dword [esp + 0xbc]
mov dword [esp], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
call fcn.00409950
mov eax, dword [esp + 8]
lea ecx, [0x79f7e0]
mov dword [esp + 0x1ec], ecx
mov dword [esp + 0x1f0], eax
lea eax, [0x80a918]
mov dword [esp], eax
mov dword [esp + 4], 0x11
lea eax, [esp + 0x1d4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 4
mov dword [esp + 0x10], 4
call fcn.004dc120
mov eax, dword [esp + 0x14]
mov dword [esp + 0xcc], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x68], ecx
lea edi, [esp + 0x1a4]
xor eax, eax
call fcn.004663da
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00409840
mov eax, dword [esp + 4]
lea ecx, [0x79eda0]
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.00409840
mov eax, dword [esp + 4]
lea ecx, [0x7a73a0]
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.00409840
mov eax, dword [esp + 4]
lea ecx, [0x79eda0]
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x1b8], eax
lea eax, [0x808c6c]
mov dword [esp], eax
mov dword [esp + 4], 0xe
lea eax, [esp + 0x1a4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 3
mov dword [esp + 0x10], 3
call fcn.004dc120
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc8], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x64], ecx
lea edx, [0x7d31a0]
mov dword [esp], edx
call fcn.0040c160
mov esi, dword [esp + 4]
mov eax, dword [esp + 0x40]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esi], eax
mov eax, dword [esp + 0x78]
mov dword [esi + 0xc], eax
mov eax, dword [0xaec8c0]
test eax, eax
jne 0x550203
mov ecx, dword [esp + 0xd4]
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esi + 0x14], ecx
mov ecx, dword [0xaec8c0]
test ecx, ecx
jne 0x5501ef
mov ecx, dword [esp + 0xd0]
mov dword [esi + 0x10], ecx
mov ecx, dword [esp + 0x68]
mov dword [esi + 0x1c], ecx
mov ecx, dword [0xaec8c0]
test ecx, ecx
jne 0x5501db
mov ecx, dword [esp + 0xcc]
mov dword [esi + 0x18], ecx
mov ecx, dword [esp + 0x64]
mov dword [esi + 0x24], ecx
mov ecx, dword [0xaec8c0]
test ecx, ecx
jne 0x5501ca
mov ecx, dword [esp + 0xc8]
mov dword [esi + 0x20], ecx
mov dword [esp + 0xc0], esi
lea edi, [esp + 0x1f4]
call fcn.0046688c
mov ecx, dword [0xaec8c0]
test ecx, ecx
jne 0x5501b3
mov eax, dword [esp + 0xc0]
mov dword [0xac459c], eax
jmp 0x54f732
lea edi, [0xac459c]
mov eax, dword [esp + 0xc0]
call fcn.00466130
jmp 0x54f732
lea edi, [esi + 0x20]
mov eax, dword [esp + 0xc8]
call fcn.00466130
jmp 0x550184
lea edi, [esi + 0x18]
mov eax, dword [esp + 0xcc]
call fcn.00466130
jmp 0x550169
lea edi, [esi + 0x10]
mov eax, dword [esp + 0xd0]
call fcn.00466130
jmp 0x55014e
lea edi, [esi + 8]
mov eax, dword [esp + 0xd4]
call fcn.00466130
jmp 0x55012f
mov ebp, dword [esp + 0x15c]
mov esi, dword [esp + 0x160]
mov ebx, ecx
mov ecx, ebp
jmp 0x54f68f
mov dword [esp + 0x22c], 0
mov dword [esp + 0x230], 0
add esp, 0x21c
ret
lea eax, [0x80271b]
mov dword [esp + 0x22c], eax
mov dword [esp + 0x230], 5
add esp, 0x21c
ret
mov eax, ebx
call fcn.00466210
mov eax, edi
mov ecx, 8
call fcn.004661b0
nop
call fcn.00464bd0
jmp fcn.0054f5c0