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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x16c]
cmp eax, dword [ecx + 8]
jbe 0x4c6913
sub esp, 0x1ec
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
lea eax, [0x4e6dc0]
mov dword [esp], eax
call fcn.0040d220
mov eax, dword [esp + 4]
mov dword [esp + 0x8c], eax
mov dword [esp + 0xc], eax
lea ecx, [esp + 0x90]
mov dword [esp + 8], ecx
mov dword [esp], 8
lea ecx, [0x50eb40]
mov dword [esp + 4], ecx
call fcn.00424eb0
test eax, eax
jne 0x4c68e8
call fcn.004c59d0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp]
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], ecx
test eax, eax
jne 0x4c68db
call fcn.004855b0
lea edi, [esp + 0x144]
mov esi, esp
call fcn.0044b0be
mov eax, dword [esp + 0x144]
mov ecx, dword [esp + 0x148]
mov edx, ecx
shr ecx, 0x1f
shl ecx, 0x1f
test ecx, ecx
je 0x4c68cf
shl edx, 1
mov ecx, eax
shr eax, 0x1f
or eax, edx
shl ecx, 1
shr ecx, 0x1f
shl eax, 1
or eax, ecx
add eax, 0xd7b17f80
add eax, 0x886e0900
mov dword [esp + 0x48], eax
mov word [esp + 0x26], 7
mov dword [esp], 0
lea eax, [0x505e30]
mov dword [esp + 4], eax
mov dword [esp + 8], 7
call fcn.0043a7d0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x108], edx
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], eax
lea edi, [esp + 0x158]
xor eax, eax
call fcn.0044abd6
lea ecx, [0x4e7580]
mov dword [esp], ecx
lea edx, [0x5ac5ec]
mov dword [esp + 4], edx
call fcn.0040aaf0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], ecx
lea eax, [0x4e7580]
mov dword [esp], eax
lea eax, [esp + 0x48]
mov dword [esp + 4], eax
call fcn.0040aaf0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], ecx
lea eax, [0x4e7540]
mov dword [esp + 0x168], eax
lea ecx, [0x51d60c]
mov dword [esp + 0x16c], ecx
mov dword [esp], eax
lea eax, [esp + 0x26]
mov dword [esp + 4], eax
call fcn.0040aa80
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], ecx
lea eax, [0x4e0140]
mov dword [esp], eax
lea eax, [esp + 0x108]
mov dword [esp + 4], eax
call fcn.0040ac70
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x178], eax
mov dword [esp + 0x17c], ecx
lea eax, [0x4f36e0]
mov dword [esp], eax
call fcn.0040d220
mov eax, dword [esp + 4]
mov dword [esp + 0x84], eax
xor ecx, ecx
jmp 0x4c5e0e
mov edx, dword [esp + 0x4c]
lea ecx, [edx + 1]
mov eax, dword [esp + 0x84]
cmp ecx, 5
jge 0x4c5f1a
mov dword [esp + 0x4c], ecx
lea edx, [esp + ecx*8 + 0x158]
mov ebx, dword [edx]
mov edx, dword [edx + 4]
lea ebp, [0x51df80]
mov dword [esp], ebp
mov dword [esp + 4], eax
lea esi, [0x51e9c0]
mov dword [esp + 8], esi
lea edi, [0x5ac694]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edx
call fcn.00470430
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4c5e00
mov ecx, dword [ecx + 0x10]
mov dword [esp], eax
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x134], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x140], 0
lea eax, [0x4e7440]
mov dword [esp + 0x134], eax
lea ecx, [0x51d970]
mov dword [esp + 0x138], ecx
mov dword [esp], eax
lea eax, [esp + 0xb8]
mov dword [esp + 4], eax
call fcn.0040abe0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], ecx
lea eax, [esp + 0x134]
mov dword [esp], eax
mov dword [esp + 4], 2
mov dword [esp + 8], 2
call fcn.0049e1c0
nop
call fcn.004256d0
add esp, 0x1ec
ret
mov ecx, dword [eax + 0xc]
mov edx, dword [eax]
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
cmp ecx, ebx
ja 0x4c690c
sub eax, ecx
mov ebp, eax
neg eax
sar eax, 0x1f
and eax, ecx
add eax, edx
mov dword [esp], eax
sub ebx, ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.004c7840
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x80], edx
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004c7700
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.004caec0
mov eax, dword [esp + 0x90]
mov ecx, dword [0x59bf58]
mov edx, dword [0x59bf54]
mov eax, dword [eax + 0x18]
mov ebx, dword [0x59bf50]
mov ebp, dword [esp + 0x94]
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp], ebp
call eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
test edx, edx
je 0x4c60ad
mov eax, dword [edx + 0x10]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], eax
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x130], 0
lea eax, [0x4e7440]
mov dword [esp + 0x124], eax
lea ecx, [0x51d978]
mov dword [esp + 0x128], ecx
mov dword [esp], eax
lea eax, [esp + 0xb0]
mov dword [esp + 4], eax
call fcn.0040abe0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x130], eax
lea eax, [esp + 0x124]
mov dword [esp], eax
mov dword [esp + 4], 2
mov dword [esp + 8], 2
call fcn.0049e1c0
nop
call fcn.004256d0
add esp, 0x1ec
ret
test eax, eax
jle 0x4c5ff4
mov ecx, dword [0x59bf58]
mov edx, dword [0x59bf50]
cmp ecx, 1
jb 0x4c6905
mov dword [esp + 0x2c], eax
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], ecx
call fcn.004c77f0
mov eax, dword [0x59bf58]
mov ecx, dword [0x59bf50]
cmp eax, 1
jb 0x4c68fe
movzx eax, byte [ecx]
mov ecx, dword [esp + 0x8c]
mov dword [ecx], eax
mov eax, dword [0x59bf58]
mov edx, dword [0x59bf54]
mov ebx, dword [0x59bf50]
mov ebp, dword [esp + 0x2c]
cmp ebp, eax
ja 0x4c68f7
dec eax
neg eax
sar eax, 0x1f
and eax, 1
add eax, ebx
lea esi, [ebp - 1]
cmp edx, esi
jle 0x4c68c8
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.0044b2e0
mov eax, dword [esp + 0x8c]
mov eax, dword [eax]
test eax, eax
jg 0x4c6844
lea eax, [0x4e0860]
mov dword [esp], eax
mov dword [esp + 4], pe_nt_image_headers32
call fcn.00402cc0
mov eax, dword [esp + 8]
mov dword [esp + 0x64], eax
lea ecx, [0x4e0860]
mov dword [esp], ecx
mov dword [esp + 4], pe_nt_image_headers32
call fcn.00402cc0
mov eax, dword [esp + 8]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x64]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x94]
mov ebx, dword [esp + 0x90]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
mov dword [esp], 0xc
lea edx, [0x50eb6c]
mov dword [esp + 4], edx
call fcn.0042dec0
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x10], eax
mov ecx, dword [0x59bf58]
mov edx, dword [0x59bf54]
mov ebx, dword [0x59bf50]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x2c]
dec ecx
mov dword [esp + 0x20], ecx
mov dword [esp], 0x1c
lea ecx, [0x50eb5c]
mov dword [esp + 4], ecx
call fcn.0042dec0
lea eax, [0x4e0820]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00402cc0
mov eax, dword [esp + 8]
mov dword [esp + 0x78], eax
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp], 0xfc23ac00
mov dword [esp + 4], 6
call fcn.00483680
mov eax, dword [esp + 8]
mov eax, dword [eax]
mov dword [esp + 0x88], eax
lea edi, [esp + 0x180]
xor eax, eax
call fcn.0044abc5
lea ecx, [esp + 0x180]
mov dword [esp], ecx
mov dword [esp + 4], 0x6c
mov dword [esp + 8], 0
mov dword [esp + 0xc], 3
call fcn.00433340
lea eax, [esp + 0x180]
mov dword [esp], eax
mov ecx, dword [esp + 0x74]
mov dword [esp + 4], ecx
lea edx, [esp + 0xfc]
mov dword [esp + 8], edx
lea edx, [esp + 0x25]
mov dword [esp + 0xc], edx
call fcn.00433550
lea eax, [esp + 0x180]
mov dword [esp], eax
mov ecx, dword [esp + 0x88]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call fcn.00433550
lea eax, [esp + 0x180]
mov dword [esp], eax
mov ecx, dword [esp + 0x78]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call fcn.00433550
lea eax, [esp + 0x180]
mov dword [esp], eax
call fcn.00433850
mov eax, dword [esp + 4]
test eax, eax
jne 0x4c674b
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0xfc]
movzx ebx, byte [esp + 0x25]
test bl, bl
je 0x4c673e
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x114], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x120], 0
lea eax, [0x4e7440]
mov dword [esp + 0x114], eax
lea edx, [0x51d980]
mov dword [esp + 0x118], edx
lea ebx, [0x4e6dc0]
mov dword [esp], ebx
lea ebp, [esp + 0x40]
mov dword [esp + 4], ebp
call fcn.0040aaf0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x120], eax
lea eax, [esp + 0x114]
mov dword [esp], eax
mov dword [esp + 4], 2
mov dword [esp + 8], 2
call fcn.0049e1c0
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov ecx, dword [esp + 0x30]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x34]
mov dword [esp + 8], edx
call fcn.004caff0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x5a], eax
mov eax, dword [esp + 0xe]
mov ecx, dword [esp + 0x12]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x5a]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x52], ecx
mov dword [esp + 0x56], eax
movzx eax, byte [esp + 0x52]
test al, al
jne 0x4c6474
movzx eax, word [esp + 0x54]
test ax, ax
je 0x4c6731
movzx eax, word [esp + 0x50]
mov ecx, eax
shl eax, 0x10
sub eax, ecx
movzx ecx, word [esp + 0x54]
add eax, ecx
mov dword [esp + 0x28], eax
mov dword [esp], eax
call fcn.004c6f10
mov eax, dword [esp + 4]
test eax, eax
jne 0x4c66f5
movzx eax, byte [esp + 0x52]
cmp al, 2
ja 0x4c6600
cmp al, 1
je 0x4c656d
cmp al, 2
je 0x4c64da
lea eax, [0x4e0820]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00402cc0
mov eax, dword [esp + 8]
jmp 0x4c623d
mov eax, dword [esp + 0x28]
mov dword [esp], eax
movzx eax, word [esp + 0x54]
mov word [esp + 4], ax
movzx eax, byte [esp + 0x52]
mov byte [esp + 6], al
movzx eax, word [esp + 0x50]
mov word [esp + 8], ax
call fcn.004c6fd0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x68], eax
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x64]
mov dword [esp + 0xc], ecx
mov dword [esp], 8
lea edx, [0x50eb74]
mov dword [esp + 4], edx
call fcn.0042dec0
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 0xc]
mov dword [esp], eax
lea eax, [esp + 0xd8]
mov dword [esp + 4], eax
call fcn.00402ef0
jmp 0x4c64bb
mov eax, dword [esp + 0x28]
mov dword [esp], eax
movzx eax, word [esp + 0x54]
mov word [esp + 4], ax
movzx eax, byte [esp + 0x52]
mov byte [esp + 6], al
movzx eax, word [esp + 0x50]
mov word [esp + 8], ax
call fcn.004c6fd0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x70], eax
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x64]
mov dword [esp + 0xc], ecx
mov dword [esp], 8
lea edx, [0x50eb54]
mov dword [esp + 4], edx
call fcn.0042dec0
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 0xc]
mov dword [esp], eax
lea eax, [esp + 0xe4]
mov dword [esp + 4], eax
call fcn.00402ef0
jmp 0x4c64bb
cmp al, 3
je 0x4c6662
cmp al, 0xff
jne 0x4c64bb
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea eax, [0x4e7440]
mov dword [esp + 0xa0], eax
lea ecx, [0x51d988]
mov dword [esp + 0xa4], ecx
lea edx, [esp + 0xa0]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.0049e1c0
jmp 0x4c64bb
mov eax, dword [esp + 0x28]
mov dword [esp], eax
movzx eax, word [esp + 0x54]
mov word [esp + 4], ax
movzx eax, byte [esp + 0x52]
mov byte [esp + 6], al
movzx eax, word [esp + 0x50]
mov word [esp + 8], ax
call fcn.004c6fd0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x6c], eax
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x64]
mov dword [esp + 0xc], ecx
mov dword [esp], 8
lea edx, [0x50eb64]
mov dword [esp + 4], edx
call fcn.0042dec0
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 0xc]
mov dword [esp], eax
lea eax, [esp + 0xcc]
mov dword [esp + 4], eax
call fcn.00402ef0
jmp 0x4c64bb
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0xf0], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xf4], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0xf8], ecx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
lea eax, [esp + 0xf0]
mov dword [esp + 4], eax
call fcn.00402ef0
jmp 0x4c64bb
nop
call fcn.004256d0
add esp, 0x1ec
ret
nop
call fcn.004256d0
add esp, 0x1ec
ret
cmp eax, 1
jne 0x4c682e
mov word [esp], 0
mov byte [esp + 2], 0xff
mov word [esp + 4], 0
mov byte [esp + 6], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call fcn.004c7160
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0x64]
mov dword [esp], eax
lea ecx, [esp + 0xc0]
mov dword [esp + 4], ecx
call fcn.00402ef0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
lea eax, [0x4e7440]
mov dword [esp + 0x98], eax
lea ecx, [0x51d990]
mov dword [esp + 0x9c], ecx
lea edx, [esp + 0x98]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.0049e1c0
mov dword [esp], 0x2a05f200
mov dword [esp + 4], 1
call fcn.00483680
mov eax, dword [esp + 8]
mov eax, dword [eax]
jmp 0x4c623d
cmp eax, 2
jne 0x4c68f5
nop
call fcn.004256d0
add esp, 0x1ec
ret
mov dword [esp + 0x44], eax
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
lea eax, [0x4e6dc0]
mov dword [esp], eax
lea eax, [esp + 0x44]
mov dword [esp + 4], eax
call fcn.0040aaf0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
lea eax, [0x50dea5]
mov dword [esp], eax
mov dword [esp + 4], 0x31
lea eax, [esp + 0xa8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.0049e140
nop
call fcn.004256d0
add esp, 0x1ec
ret
mov esi, edx
jmp 0x4c6137
mov eax, dword [esp + 0x14c]
jmp 0x4c5cbd
nop
call fcn.004256d0
add esp, 0x1ec
ret
nop
call fcn.004256d0
add esp, 0x1ec
ret
ud2
call fcn.00424c90
ud2
call fcn.00424c90
ud2
call fcn.00424c90
ud2
call fcn.00424c90
ud2
call fcn.004491a0
jmp fcn.004c5bd0