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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x34]
cmp eax, dword [ecx + 8]
jbe 0x54a964
sub esp, 0xb4
mov ecx, dword [0x81fc9c]
mov edx, dword [str._n_____BEGIN]
mov ebx, dword [0x81fca0]
cmp ecx, 1
jb 0x54a959
dec ebx
neg ebx
sar ebx, 0x1f
and ebx, 1
add edx, ebx
lea ebx, [ecx - 1]
mov ecx, dword [esp + 0xbc]
cmp ecx, ebx
jge 0x549e08
xor eax, eax
jmp 0x549e2b
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00402800
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0xbc]
test al, al
je 0x549e61
mov edx, dword [0x81fc9c]
lea eax, [edx - 1]
cmp ecx, eax
jb 0x54a954
mov ebx, dword [esp + 0xc0]
sub ebx, edx
inc ebx
mov esi, ebx
neg ebx
sar ebx, 0x1f
and ebx, eax
sub ecx, edx
mov edx, dword [esp + 0xb8]
add ebx, edx
inc ecx
jmp 0x549ede
mov eax, dword [str._n_____BEGIN]
mov edx, dword [0x81fc9c]
mov ebx, dword [0x81fca0]
mov ebp, dword [esp + 0xb8]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov esi, dword [esp + 0xc0]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call fcn.0046fc70
mov eax, dword [esp + 0x18]
test eax, eax
jl 0x54a0b3
mov edx, dword [0x81fc9c]
add eax, edx
mov ecx, dword [esp + 0xbc]
cmp ecx, eax
jb 0x54a94f
mov ebx, dword [esp + 0xc0]
sub ebx, eax
sub ecx, eax
mov esi, ebx
neg ebx
sar ebx, 0x1f
and eax, ebx
mov edi, dword [esp + 0xb8]
lea ebx, [eax + edi]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
call fcn.00549ba0
mov eax, dword [0x81fc8c]
mov ecx, dword [0x81fc88]
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
cmp esi, eax
jl 0x54a04f
mov dword [esp + 0x30], esi
mov dword [esp + 0x74], ebx
sub esi, eax
mov ebx, dword [esp + 0x30]
cmp ebx, esi
jb 0x54a946
mov dword [esp + 0xb0], ebp
mov dword [esp + 0x70], edx
mov dword [esp + 0x78], edi
mov dword [esp + 0x34], ecx
sub ebx, esi
sub ecx, esi
neg ecx
sar ecx, 0x1f
and ecx, esi
lea esi, [edi + ecx]
cmp eax, ebx
je 0x549f5d
xor eax, eax
jmp 0x549f85
mov dword [esp], esi
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.00402800
movzx eax, byte [esp + 0xc]
mov edx, dword [esp + 0x70]
mov ebp, dword [esp + 0xb0]
mov edi, dword [esp + 0x78]
test al, al
je 0x54a04b
mov eax, dword [0x81fc8c]
mov ecx, dword [esp + 0x30]
sub ecx, eax
mov eax, dword [esp + 0x34]
cmp eax, ecx
jb 0x54a93f
mov dword [esp + 0x30], ecx
call fcn.0040c110
mov eax, dword [esp]
mov dword [esp + 0xac], eax
lea ecx, [0x643e20]
mov dword [esp], ecx
call fcn.0040b620
mov eax, dword [esp + 4]
mov dword [esp + 0xa8], eax
mov ecx, dword [0x84c7c0]
test ecx, ecx
jne 0x549fe7
mov ecx, dword [esp + 0xac]
mov dword [eax + 8], ecx
jmp 0x549ff6
lea edi, [eax + 8]
mov eax, dword [esp + 0xac]
call fcn.0045e710
mov dword [esp], 0
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x30]
mov dword [esp + 8], ecx
call fcn.0044acf0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0xa8]
mov dword [edi + 4], ecx
mov ecx, dword [0x84c7c0]
test ecx, ecx
jne 0x54a032
mov dword [edi], eax
jmp 0x54a037
call fcn.0045e710
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0xb0]
jmp 0x54a105
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call fcn.0054a970
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], ebx
add esp, 0xb4
ret
mov dword [esp + 0xc4], 0
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xd0], eax
add esp, 0xb4
ret
mov edi, dword [esp + 0xa8]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x8c]
test eax, eax
je 0x54a8c7
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x84], edx
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00549ba0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x8c], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x4c], edx
nop
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x58], ebx
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x54], ebp
mov esi, dword [esp + 0xc]
mov dword [esp + 0x90], esi
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov byte [esp + 0xc], 0x3a
call fcn.00402840
mov ecx, dword [esp + 0x10]
cmp ecx, 0xffffffff
je 0x54a2c6
mov edx, dword [esp + 0x58]
cmp edx, ecx
jb 0x54a93a
lea eax, [ecx + 1]
mov ebx, dword [esp + 0x54]
cmp ebx, eax
jb 0x54a933
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0046f870
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x2c]
sub eax, ecx
dec eax
mov edx, eax
neg eax
sar eax, 0x1f
mov ebx, dword [esp + 0x74]
and ebx, eax
mov eax, dword [esp + 0x90]
add eax, ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x94], ebx
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x5c], ebp
mov dword [esp], eax
mov eax, dword [esp + 0x54]
sub eax, ecx
dec eax
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.0046f870
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov dword [esp], 0
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0044acf0
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 8]
mov dword [esp + 0xa4], ecx
mov edx, dword [esp + 0xc]
mov dword [esp + 0xa0], edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x74], ebx
mov dword [esp], 0
mov ebp, dword [esp + 0x94]
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0x5c]
mov dword [esp + 8], ebp
call fcn.0044acf0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
lea edx, [0x630ea0]
mov dword [esp], edx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.004101a0
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x74]
mov dword [edi + 4], eax
mov eax, dword [0x84c7c0]
test eax, eax
jne 0x54a2b5
mov eax, dword [esp + 0xa0]
mov dword [edi], eax
jmp 0x54a0ef
mov eax, dword [esp + 0xa0]
call fcn.0045e710
jmp 0x54a0ef
mov edx, dword [esp + 0xa8]
mov ebx, dword [edx + 8]
test ebx, ebx
je 0x54a2d8
mov ebx, dword [ebx]
jmp 0x54a2da
xor ebx, ebx
test ebx, ebx
jne 0x54a34d
mov ecx, dword [0x81fc7c]
mov ebx, dword [str._n_____END]
mov ebp, dword [0x81fc80]
cmp ecx, 1
jb 0x54a929
dec ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 1
add ebx, ebp
lea ebp, [ecx - 1]
mov ecx, dword [esp + 0x38]
cmp ecx, ebp
jge 0x54a317
xor eax, eax
jmp 0x54a33e
mov eax, dword [esp + 0x84]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.00402800
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0xa8]
test al, al
je 0x54a351
mov ebx, dword [0x81fc7c]
dec ebx
xor eax, eax
jmp 0x54a3a2
mov ecx, dword [esp + 0x38]
mov eax, dword [str._n_____END]
mov edx, dword [0x81fc7c]
mov ebx, dword [0x81fc80]
mov ebp, dword [esp + 0x84]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov esi, dword [esp + 0x3c]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call fcn.0046fc70
mov eax, dword [esp + 0x18]
mov ecx, dword [0x81fc7c]
lea ebx, [ecx + eax]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0xa8]
test eax, eax
jl 0x54a858
cmp ebx, ecx
ja 0x54a922
mov ebp, ecx
sub ecx, ebx
mov esi, dword [esp + 0x3c]
sub esi, ebx
mov dword [esp + 0x64], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ebx, esi
mov esi, dword [esp + 0x84]
add ebx, esi
mov edx, dword [0x81fc8c]
mov edi, dword [esp + 0x30]
add edx, edi
cmp ecx, edx
jl 0x54a7f0
jb 0x54a91b
mov dword [esp + 0x68], eax
mov dword [esp + 0x60], edx
mov ebp, dword [esp + 0x64]
sub ebp, edx
mov dword [esp + 0x44], ebp
sub ecx, edx
mov dword [esp + 0x40], ecx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, edx
add ebp, ebx
mov dword [esp + 0x88], ebp
cmp edi, edx
jle 0x54a422
xor edi, edi
jmp 0x54a465
mov dword [esp + 0x98], ebx
mov dword [esp], ebx
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00402800
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x98]
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0x84]
mov edi, eax
mov eax, dword [esp + 0x68]
xchg edi, eax
test al, al
xchg edi, eax
je 0x54a784
mov edi, dword [0x81fc8c]
mov ebp, dword [0x81fc88]
cmp edi, edx
jg 0x54a4dd
mov dword [esp + 0x80], ebp
sub edx, edi
mov ebp, dword [esp + 0x60]
cmp edx, ebp
ja 0x54a912
sub ebp, edx
mov eax, dword [esp + 0x64]
sub eax, edx
neg eax
sar eax, 0x1f
and edx, eax
lea eax, [edx + ebx]
cmp edi, ebp
je 0x54a4ae
xor eax, eax
jmp 0x54a4d5
mov dword [esp], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.00402800
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x84]
mov edx, eax
mov eax, dword [esp + 0x68]
jmp 0x54a4df
xor edx, edx
test dl, dl
je 0x54a784
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x44]
mov dword [esp + 8], eax
call fcn.00549ba0
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x54a711
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x3c]
cmp ecx, edx
ja 0x54a90d
mov eax, dword [esp + 0x84]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00549cc0
mov eax, dword [0x82498c]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x9c], edx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x6c], ebx
cmp dword [eax + 0x140], 0xffffffff
jne 0x54a574
lea eax, [ecx + ecx*2]
mov ebp, eax
shl eax, 1
sar eax, 0x1f
shr eax, 0x1d
lea eax, [eax + ebp*2]
sar eax, 3
jmp 0x54a57a
shr ecx, 2
lea eax, [ecx + ecx*2]
mov dword [esp + 0x28], eax
lea ecx, [0x62f440]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.00447580
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0xa8]
mov dword [edx + 0x10], ecx
mov dword [edx + 0x14], ecx
mov ebx, dword [0x84c7c0]
test ebx, ebx
jne 0x54a5b8
mov dword [edx + 0xc], eax
jmp 0x54a5c0
lea edi, [edx + 0xc]
call fcn.0045e710
mov eax, dword [0x82498c]
mov ebx, dword [edx + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x18], eax
call fcn.004dfc30
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x54a69e
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + 0x14]
cmp edx, ecx
jb 0x54a908
mov dword [ebx + 0x10], ecx
mov edx, dword [0x81fc7c]
mov ebp, dword [esp + 0x68]
lea esi, [edx + ebp]
lea eax, [ebp + edx - 1]
mov ecx, dword [esp + 0x38]
cmp ecx, eax
jb 0x54a903
mov edx, dword [esp + 0x3c]
sub edx, esi
inc edx
mov ebx, edx
neg edx
sar edx, 0x1f
and eax, edx
mov edx, dword [esp + 0x84]
add eax, edx
mov dword [esp], eax
sub ecx, esi
lea eax, [ecx + 1]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.00549ba0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], edx
add esp, 0xb4
ret
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
call fcn.0054a970
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], ebx
add esp, 0xb4
ret
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
call fcn.0054a970
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], ebx
add esp, 0xb4
ret
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
call fcn.0054a970
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], ebx
add esp, 0xb4
ret
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
call fcn.0054a970
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], ebx
add esp, 0xb4
ret
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
call fcn.0054a970
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], ebx
add esp, 0xb4
ret
mov dword [esp + 0xc4], 0
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xd0], eax
add esp, 0xb4
ret
call fcn.0045e7f0
call fcn.0045e7d0
call fcn.0045e7d0
mov eax, edx
mov ecx, ebp
call fcn.0045e7f0
mov eax, edx
call fcn.0045e7f0
mov eax, ebx
call fcn.0045e7f0
mov eax, 1
call fcn.0045e7f0
mov ecx, ebx
call fcn.0045e7f0
call fcn.0045e7d0
mov edx, eax
call fcn.0045e7d0
mov eax, esi
mov ecx, ebx
call fcn.0045e7f0
call fcn.0045e7f0
call fcn.0045e7f0
mov eax, 1
call fcn.0045e7f0
nop
call fcn.0045d2d0
jmp fcn.00549db0