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

Disassembly:
mov ecx, dword [0x5f91cc]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0xc]
cmp eax, dword [ecx + 8]
jbe 0x4c67b3
sub esp, 0x8c
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov ecx, dword [esp + 0x94]
lea edx, [ecx - 1]
mov ebx, dword [esp + 0x90]
jmp 0x4c5bd3
dec edx
test edx, edx
jl 0x4c5c11
cmp ecx, edx
jbe 0x4c67ab
movzx ebp, byte [ebx + edx]
xchg ebp, eax
cmp al, 0x5c
xchg ebp, eax
je 0x4c5c11
xchg ebp, eax
cmp al, 0x2f
xchg ebp, eax
je 0x4c5c11
xchg ebp, eax
cmp al, 0x2e
xchg ebp, eax
jne 0x4c5bd2
sub ecx, edx
mov ebp, ecx
neg ecx
sar ecx, 0x1f
and edx, ecx
lea ecx, [ebx + edx]
mov eax, ecx
mov ecx, dword [esp + 0x94]
jmp 0x4c5c15
xor ebp, ebp
xor eax, eax
test ebp, ebp
je 0x4c6450
cmp ebp, 4
jne 0x4c5c2a
cmp dword [eax], 0x6c646d2e
je 0x4c5c76
lea eax, [0x4e3100]
mov dword [esp], eax
call fcn.0040c850
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1c
lea ecx, [0x4fa3a1]
mov dword [eax], ecx
mov dword [esp + 0x98], 0
lea ecx, [0x51c974]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], eax
call fcn.00434fb0
add esp, 0x8c
ret
nop
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call fcn.0049beb0
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4c6427
mov eax, dword [esp + 0x10]
mov dword [esp + 0x54], eax
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
lea ecx, [0x4c67c0]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], eax
lea ecx, [esp + 0x6c]
mov dword [esp + 0x48], ecx
lea ecx, [esp + 0x3c]
mov dword [esp], ecx
call fcn.00434c90
test eax, eax
jne 0x4c641b
lea eax, [0x4f02a0]
mov dword [esp], eax
call fcn.0040c850
mov eax, dword [esp + 4]
mov dword [esp + 0x64], eax
lea ecx, [0x51c960]
mov dword [esp], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], ecx
lea edx, [0x51cc58]
mov dword [esp + 8], edx
lea edx, [0x5f90a0]
mov dword [esp + 0xc], edx
lea edx, [0x4d9fa0]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
call fcn.0047d580
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4c63f2
mov eax, dword [esp + 0x64]
mov ecx, dword [eax]
cmp ecx, 0x54534449
je 0x4c5f0f
cmp ecx, 0x51534449
jne 0x4c5e34
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 4], eax
call fcn.0040a0e0
mov eax, dword [esp + 8]
lea ecx, [0x4e0140]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
lea eax, [0x4fabfc]
mov dword [esp], eax
mov dword [esp + 4], 0x1e
lea eax, [esp + 0x74]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004a1640
mov eax, dword [esp + 0x18]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x60], ecx
lea edx, [0x4e3100]
mov dword [esp], edx
call fcn.0040c850
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x34]
mov dword [eax + 4], ecx
mov ecx, dword [0x5f9270]
test ecx, ecx
jne 0x4c5dfc
mov ecx, dword [esp + 0x60]
jmp 0x4c5e07
call fcn.004630a0
mov ecx, dword [esp + 0x60]
mov dword [edi], ecx
mov dword [eax], ecx
mov dword [esp + 0x98], 0
lea ecx, [0x51c974]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], eax
call fcn.00434fb0
add esp, 0x8c
ret
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 4], eax
call fcn.0040a0e0
mov eax, dword [esp + 8]
lea ecx, [0x4e0140]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
lea eax, [0x4fb0ad]
mov dword [esp], eax
mov dword [esp + 4], 0x1f
lea eax, [esp + 0x74]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004a1640
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x5c], ecx
lea edx, [0x4e3100]
mov dword [esp], edx
call fcn.0040c850
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x30]
mov dword [eax + 4], ecx
mov ecx, dword [0x5f9270]
test ecx, ecx
jne 0x4c5ed7
mov ecx, dword [esp + 0x5c]
jmp 0x4c5ee2
call fcn.004630a0
mov ecx, dword [esp + 0x5c]
mov dword [edi], ecx
mov dword [eax], ecx
mov dword [esp + 0x98], 0
lea ecx, [0x51c974]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], eax
call fcn.00434fb0
add esp, 0x8c
ret
cmp dword [eax + 4], 0xa
je 0x4c5ff4
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 4], eax
call fcn.0040a0e0
mov eax, dword [esp + 8]
lea ecx, [0x4e0140]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
lea eax, [0x4fcd04]
mov dword [esp], eax
mov dword [esp + 4], 0x28
lea eax, [esp + 0x74]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004a1640
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x58], ecx
lea edx, [0x4e3100]
mov dword [esp], edx
call fcn.0040c850
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x2c]
mov dword [eax + 4], ecx
mov ecx, dword [0x5f9270]
test ecx, ecx
jne 0x4c5fbc
mov ecx, dword [esp + 0x58]
jmp 0x4c5fc7
call fcn.004630a0
mov ecx, dword [esp + 0x58]
mov dword [edi], ecx
mov dword [eax], ecx
mov dword [esp + 0x98], 0
lea ecx, [0x51c974]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], eax
call fcn.00434fb0
add esp, 0x8c
ret
lea eax, [0x4ed7a0]
mov dword [esp], eax
call fcn.0040c850
mov eax, dword [0x5f9270]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x4c601d
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x90]
jmp 0x4c6032
call fcn.004630b0
mov eax, dword [esp + 0x64]
mov dword [edi], eax
mov edx, dword [esp + 0x90]
mov dword [edi + 4], edx
mov dword [esp + 0x68], ecx
mov dword [ecx + 8], eax
mov ebx, dword [esp + 0x94]
mov dword [ecx + 4], ebx
mov dword [ecx], edx
mov dword [esp], ecx
mov ebp, dword [esp + 0x54]
mov dword [esp + 4], ebp
call fcn.004ceff0
mov eax, dword [esp + 8]
test eax, eax
jne 0x4c63c9
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], ecx
call fcn.004cf2d0
mov eax, dword [esp + 8]
test eax, eax
jne 0x4c63a0
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], ecx
call fcn.004cf480
mov eax, dword [esp + 8]
test eax, eax
jne 0x4c6377
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], ecx
call fcn.004cf630
mov eax, dword [esp + 8]
test eax, eax
jne 0x4c634e
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], ecx
call fcn.004d0480
mov eax, dword [esp + 8]
test eax, eax
jne 0x4c6325
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], ecx
call fcn.004d11f0
mov eax, dword [esp + 8]
test eax, eax
jne 0x4c62fc
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], ecx
call fcn.004cff20
mov eax, dword [esp + 8]
test eax, eax
jne 0x4c62d3
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], ecx
call fcn.004d0270
mov eax, dword [esp + 8]
test eax, eax
jne 0x4c62aa
mov ebx, dword [esp + 0x64]
mov ebp, dword [ebx + 0xb4]
test ebp, ebp
jne 0x4c627d
mov edx, dword [esp + 0x94]
cmp edx, 4
jl 0x4c61a1
lea eax, [edx - 4]
cmp edx, eax
jb 0x4c67a4
mov eax, dword [esp + 0x90]
lea ecx, [edx + eax - 4]
mov dword [esp], ecx
lea ecx, [0x4f3f16]
mov dword [esp + 4], ecx
mov dword [esp + 8], 4
call fcn.00403030
movzx eax, byte [esp + 0xc]
mov edx, dword [esp + 0x94]
mov ebx, dword [esp + 0x64]
jmp 0x4c61a3
xor eax, eax
test al, al
je 0x4c61b3
lea ecx, [edx - 4]
cmp edx, ecx
jae 0x4c61b5
jmp 0x4c679f
mov ecx, edx
mov dword [esp], 0
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
lea ecx, [0x4f4072]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 5
call fcn.0044e240
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004c5b80
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x4c6254
mov ebx, dword [esp + 8]
mov ebp, dword [ebx + 0x4c]
mov esi, dword [ebx + 0x50]
mov edi, dword [ebx + 0x48]
mov eax, ebx
mov ebx, dword [esp + 0x68]
mov dword [ebx + 0x4c], ebp
mov dword [ebx + 0x50], esi
mov ebp, dword [0x5f9270]
test ebp, ebp
je 0x4c6232
mov ecx, edi
call fcn.004630b0
mov dword [edi], ecx
mov ebp, dword [ebx + 0x48]
mov dword [edi + 4], ebp
mov edi, ecx
mov dword [ebx + 0x48], edi
mov ebp, dword [0x5f9270]
mov esi, dword [eax + 0x54]
test ebp, ebp
je 0x4c624f
call fcn.004630b0
mov dword [edi], esi
mov ebp, dword [ebx + 0x54]
mov dword [edi + 4], ebp
mov dword [ebx + 0x54], esi
jmp 0x4c6281
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ecx
call fcn.00434fb0
add esp, 0x8c
ret
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x64]
cmp dword [ebp + 0xac], 1
jbe 0x4c649c
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
mov eax, 1
jmp 0x4c6638
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ecx
call fcn.00434fb0
add esp, 0x8c
ret
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ecx
call fcn.00434fb0
add esp, 0x8c
ret
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ecx
call fcn.00434fb0
add esp, 0x8c
ret
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ecx
call fcn.00434fb0
add esp, 0x8c
ret
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ecx
call fcn.00434fb0
add esp, 0x8c
ret
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ecx
call fcn.00434fb0
add esp, 0x8c
ret
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ecx
call fcn.00434fb0
add esp, 0x8c
ret
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ecx
call fcn.00434fb0
add esp, 0x8c
ret
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ecx
call fcn.00434fb0
add esp, 0x8c
ret
call fcn.00434fb0
add esp, 0x8c
ret
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ecx
call fcn.00434fb0
add esp, 0x8c
ret
lea eax, [0x4e3100]
mov dword [esp], eax
call fcn.0040c850
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x23
lea ecx, [0x4fbf7c]
mov dword [eax], ecx
mov dword [esp + 0x98], 0
lea ecx, [0x51c974]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], eax
call fcn.00434fb0
add esp, 0x8c
ret
mov eax, dword [ebp + 0x9c]
cmp eax, 0x200
ja 0x4c6553
mov ecx, eax
shl eax, 6
lea eax, [eax + ecx*4]
add eax, dword [ebp + 0xa0]
cmp dword [ebp + 0x48], eax
jae 0x4c65e6
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov eax, dword [ebp + 0xa0]
mov dword [esp], eax
call fcn.00409fe0
mov eax, dword [esp + 4]
lea ecx, [0x4e02c0]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], eax
mov eax, dword [0x5ba724]
lea ecx, [0x51c924]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea eax, [0x4fcd54]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x28
lea eax, [esp + 0x7c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 1
call fcn.004a1570
mov eax, dword [esp + 0x64]
mov dword [eax + 0x9c], 0
mov ebx, dword [esp + 0x68]
jmp 0x4c65e6
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov eax, dword [ebp + 0x9c]
mov dword [esp], eax
call fcn.00409fe0
mov eax, dword [esp + 4]
lea ecx, [0x4e02c0]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], eax
mov eax, dword [0x5ba724]
lea ecx, [0x51c924]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea eax, [0x4fcd2c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x28
lea eax, [esp + 0x84]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 1
call fcn.004a1570
mov eax, dword [esp + 0x64]
mov dword [eax + 0x9c], 0
mov ebx, dword [esp + 0x68]
mov dword [esp], ebx
call fcn.004c4d70
mov eax, dword [esp + 0x68]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
call fcn.00434fb0
add esp, 0x8c
ret
mov edi, dword [esp + 0x38]
lea eax, [edi + 1]
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
mov ebp, dword [esp + 0x64]
mov ebx, dword [esp + 0x68]
cmp dword [ebp + 0xac], eax
jle 0x4c649c
mov dword [esp + 0x38], eax
cmp edx, 4
jl 0x4c6699
lea edi, [edx - 4]
cmp edx, edi
jb 0x4c6796
lea eax, [edx + esi - 4]
mov dword [esp], eax
lea eax, [0x4f3f16]
mov dword [esp + 4], eax
mov dword [esp + 8], 4
call fcn.00403030
movzx eax, byte [esp + 0xc]
mov edx, dword [esp + 0x94]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x64]
mov esi, dword [esp + 0x90]
mov ecx, eax
mov eax, dword [esp + 0x38]
jmp 0x4c669b
xor ecx, ecx
test cl, cl
je 0x4c66ab
lea ecx, [edx - 4]
cmp edx, ecx
jae 0x4c66ad
jmp 0x4c6791
mov ecx, edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp], eax
call fcn.00409fe0
mov eax, dword [esp + 4]
lea ecx, [0x4e0380]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
lea eax, [0x4f470f]
mov dword [esp], eax
mov dword [esp + 4], 8
lea edx, [esp + 0x74]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004a1640
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], 0
mov edx, dword [esp + 0x90]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x28]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0044e240
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x68]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x38]
mov dword [esp + 0xc], ecx
call fcn.004c57c0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4c661b
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ecx
call fcn.00434fb0
add esp, 0x8c
ret
call fcn.00463140
mov eax, edi
mov ecx, edx
call fcn.00463180
call fcn.00463140
mov ecx, edx
call fcn.00463180
mov eax, edx
call fcn.00463120
nop
call fcn.00461ca0
jmp fcn.004c5b80