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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xbc]
cmp eax, dword [ecx + 8]
jbe 0x4cff18
sub esp, 0x13c
mov eax, dword [esp + 0x148]
test eax, eax
jle 0x4cfedb
mov ecx, dword [esp + 0x154]
test ecx, ecx
jle 0x4cfec9
mov edx, dword [esp + 0x140]
lea ebx, [edx + eax*4 - 4]
mov ebp, dword [esp + 0x14c]
lea esi, [ebp + ecx*4 - 4]
cmp ebx, esi
jne 0x4cfe85
xor eax, eax
xor edx, edx
xor ebx, ebx
mov esi, dword [esp + 0x168]
cmp esi, 1
jne 0x4cfe79
mov edi, dword [esp + 0x164]
cmp dword [edi], 1
je 0x4cfe59
mov edi, dword [esp + 0x15c]
test edi, edi
je 0x4cfe05
cmp edi, 1
jne 0x4cfdf9
mov edi, dword [esp + 0x158]
cmp dword [edi], 1
jne 0x4cf271
test esi, esi
jne 0x4cfd75
test esi, esi
je 0x4cf27d
cmp eax, esi
jl 0x4cfce2
nop
mov ebx, dword [esp + 0x150]
cmp eax, ebx
jl 0x4cfc43
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x150]
cmp ebx, eax
jle 0x4cfc3c
mov dword [esp + 0xac], ebx
mov dword [esp + 0x140], edx
cmp edx, ebp
je 0x4cf2c8
mov dword [esp], edx
mov dword [esp + 4], ebp
shl eax, 2
mov dword [esp + 8], eax
call fcn.0045e7b0
mov eax, dword [0x77d750]
mov ecx, dword [0x77d754]
mov edx, dword [0x77d758]
mov ebx, dword [esp + 0x14c]
mov dword [esp], ebx
mov ebp, dword [esp + 0x150]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x154]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.004c9b70
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x4cfc29
mov ebx, dword [esp + 0x15c]
cmp ebx, 1
jle 0x4cfc1d
mov ebp, dword [esp + 0x168]
test ebp, ebp
jg 0x4cfac5
mov esi, dword [esp + 0x158]
mov edi, dword [esi + ebx*4 - 4]
nop
nop
cmp edi, 0x10000
jb 0x4cfabc
mov eax, edi
shr edi, 0x10
mov ecx, 0x10
cmp edi, 0x100
jb 0x4cf367
shr edi, 8
add ecx, 8
cmp edi, 0x100
jae 0x4cff0b
mov edx, esi
lea esi, [0x754cc0]
movzx esi, byte [esi + edi]
lea esi, [esi + ecx - 0x20]
xchg esi, ebx
neg ebx
xchg esi, ebx
lea ecx, [esi + 1]
cmp ecx, 0x20
sbb edi, edi
shl eax, cl
and eax, edi
add esi, 0xffffffe1
xchg esi, ebx
neg ebx
xchg esi, ebx
mov dword [esp + 0x58], esi
xor ecx, ecx
mov edi, dword [esp + 0x148]
mov edi, dword [esp + 0xac]
mov dword [esp + 0x144], edi
xor edi, edi
mov dword [esp + 0x54], edi
xor ecx, ecx
mov dword [esp + 0x50], ecx
xor ecx, ecx
mov dword [esp + 0x118], ecx
xor ecx, ecx
mov dword [esp + 0x60], ecx
xor ecx, ecx
mov dword [esp + 0x64], ecx
xor ecx, ecx
mov dword [esp + 0x11c], ecx
xor ecx, ecx
mov dword [esp + 0xac], ecx
xor ecx, ecx
mov dword [esp + 0xa8], ecx
xor ecx, ecx
mov dword [esp + 0x138], ecx
mov edi, dword [esp + 0x148]
xor ecx, ecx
jmp 0x4cf483
mov ebp, dword [esp + 0x70]
inc ebp
shl ebx, 1
mov dword [esp + 0x144], ecx
mov dword [esp + 0x140], eax
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], edi
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xac], eax
mov dword [esp + 0x108], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x100], edx
mov edx, dword [esp + 0x120]
mov dword [esp + 0x138], edx
mov edx, dword [esp + 0x158]
mov esi, dword [esp + 0x58]
mov ecx, ebp
mov eax, ebx
mov edi, dword [esp + 0x100]
mov ebx, dword [esp + 0x15c]
mov ebp, dword [esp + 0x168]
cmp esi, ecx
jle 0x4cf700
mov dword [esp + 0xa4], edi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x118]
mov dword [esp], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x140]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x144]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
call fcn.004cbe40
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x5c]
test ebx, 0x80000000
jne 0x4cf65b
mov ebp, dword [esp + 0x168]
test ebp, ebp
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x144]
mov esi, dword [esp + 0x140]
mov dword [esp + 0x118], esi
mov esi, dword [esp + 0xa4]
jne 0x4cf570
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x6c], eax
mov dword [esp + 0xf0], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x68], ecx
mov dword [esp + 0xe8], edx
mov edx, dword [esp + 0x138]
mov dword [esp + 0x120], edx
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0xe8]
jmp 0x4cf409
mov dword [esp + 0x134], eax
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x9c], edx
mov ebx, dword [esp + 0x118]
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov ebx, dword [esp + 0x11c]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov ebx, dword [esp + 0x164]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebp
mov esi, dword [esp + 0x16c]
mov dword [esp + 0x2c], esi
call fcn.004cc900
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0xa8]
mov edi, dword [esp + 0x138]
mov dword [esp + 0x118], edi
mov edi, dword [esp + 0x9c]
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x134]
mov dword [esp + 0x11c], edi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x68], ebp
mov dword [esp + 0x120], ebx
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x168]
mov esi, dword [esp + 0xac]
mov edi, dword [esp + 0xa8]
jmp 0x4cf409
mov dword [esp + 0x130], eax
mov dword [esp + 0x98], ecx
mov dword [esp + 0x94], edx
mov ebx, dword [esp + 0x140]
mov dword [esp], ebx
mov ebx, dword [esp + 0x144]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x14c]
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 0x150]
mov dword [esp + 0x1c], ebp
mov esi, dword [esp + 0x154]
mov dword [esp + 0x20], esi
call fcn.004cac80
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x168]
test ebp, ebp
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x94]
mov edi, dword [esp + 0x98]
mov ebx, dword [esp + 0x130]
mov dword [esp + 0x118], ebx
mov ebx, dword [esp + 0x5c]
jmp 0x4cf51b
lea esi, [ebx - 2]
mov eax, dword [esp + 0x138]
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xe0]
jmp 0x4cfa36
mov ebp, dword [esp + 0x74]
inc ebp
shl ebx, 1
mov dword [esp + 0x74], ebp
mov dword [esp + 0x144], ecx
mov dword [esp + 0x140], eax
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], esi
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xac], eax
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x120]
mov ebp, dword [esp + 0x168]
mov esi, dword [esp + 0x78]
mov edi, edx
mov edx, dword [esp + 0x158]
mov ebp, dword [esp + 0x74]
cmp ebp, 0x20
jge 0x4cfa07
mov dword [esp + 0x90], edi
mov dword [esp + 0x12c], eax
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x5c], ebx
mov eax, dword [esp + 0x118]
mov dword [esp], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x140]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x144]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
call fcn.004cbe40
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x5c]
test ebx, 0x80000000
jne 0x4cf968
mov ebp, dword [esp + 0x168]
test ebp, ebp
mov esi, dword [esp + 0x144]
mov edi, dword [esp + 0x90]
mov esi, dword [esp + 0x140]
mov dword [esp + 0x118], esi
mov esi, dword [esp + 0x144]
jne 0x4cf87d
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x6c], eax
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x68], ecx
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0x12c]
mov dword [esp + 0x120], edx
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb0]
jmp 0x4cf72f
mov dword [esp + 0x88], edx
mov dword [esp + 0x128], eax
mov dword [esp + 0x84], ecx
mov ebx, dword [esp + 0x118]
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov ebx, dword [esp + 0x11c]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov ebx, dword [esp + 0x164]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebp
mov esi, dword [esp + 0x16c]
mov dword [esp + 0x2c], esi
call fcn.004cc900
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0xac]
mov edi, dword [esp + 0x12c]
mov dword [esp + 0x118], edi
mov edi, dword [esp + 0x88]
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x84]
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x128]
mov dword [esp + 0x11c], edi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x68], ebp
mov dword [esp + 0x120], ebx
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x168]
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0xac]
jmp 0x4cf72f
mov dword [esp + 0x124], eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], ecx
mov ebx, dword [esp + 0x140]
mov dword [esp], ebx
mov ebx, dword [esp + 0x144]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x14c]
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 0x150]
mov dword [esp + 0x1c], ebp
mov esi, dword [esp + 0x154]
mov dword [esp + 0x20], esi
call fcn.004cac80
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x168]
test ebp, ebp
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x80]
mov ebx, dword [esp + 0x124]
mov dword [esp + 0x118], ebx
mov ebx, dword [esp + 0x5c]
jmp 0x4cf828
dec esi
mov ebx, dword [esp + 0x15c]
mov ebp, dword [esp + 0xac]
mov ebp, dword [esp + 0x168]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xd8]
test esi, esi
jl 0x4cfa6d
cmp ebx, esi
jbe 0x4cff02
mov dword [esp + 0x78], esi
mov ebx, dword [edx + esi*4]
mov dword [esp + 0xd0], eax
xor eax, eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xd0]
jmp 0x4cf781
mov ecx, dword [esp + 0x144]
mov ebx, dword [esp + 0x140]
mov eax, ecx
jmp 0x4cfa81
mov ecx, ebp
test ecx, ecx
jle 0x4cfa98
lea ebp, [ecx - 1]
cmp eax, ebp
jbe 0x4cfef9
mov esi, dword [ebx + ecx*4 - 4]
test esi, esi
je 0x4cfa7f
cmp edi, ecx
jb 0x4cfef2
mov dword [esp + 0x170], ebx
mov dword [esp + 0x174], ecx
mov dword [esp + 0x178], edi
add esp, 0x13c
ret
mov eax, edi
xor ecx, ecx
jmp 0x4cf359
mov eax, dword [esp + 0x164]
mov eax, dword [eax]
test eax, 1
je 0x4cfb7b
mov eax, dword [esp + 0x140]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x148]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x14c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x154]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x160]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ebp
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x2c], eax
call fcn.004d0970
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], ecx
mov dword [esp + 0x178], edx
add esp, 0x13c
ret
mov eax, dword [esp + 0x140]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x148]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x14c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x154]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x160]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ebp
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x2c], eax
call fcn.004cff30
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], ecx
mov dword [esp + 0x178], edx
add esp, 0x13c
ret
mov ebp, dword [esp + 0x168]
jmp 0x4cf336
mov ebx, dword [esp + 0x15c]
mov ebp, dword [esp + 0x168]
jmp 0x4cf336
mov eax, ebx
jmp 0x4cf2a3
cmp ebx, 1
jne 0x4cfc95
lea eax, [0x5dabc0]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.004450a0
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x154]
mov ebp, dword [esp + 0x14c]
mov esi, dword [esp + 0x168]
mov edi, dword [esp + 0x158]
mov ebx, 1
mov eax, 1
jmp 0x4cf28d
lea eax, [0x5dabc0]
mov dword [esp], eax
mov dword [esp + 4], ebx
lea eax, [ebx + 4]
mov dword [esp + 0x4c], eax
mov dword [esp + 8], eax
call fcn.004450a0
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x154]
mov ebp, dword [esp + 0x14c]
mov esi, dword [esp + 0x168]
mov edi, dword [esp + 0x158]
mov ebx, dword [esp + 0x150]
mov eax, dword [esp + 0x4c]
jmp 0x4cf28d
cmp esi, 1
jne 0x4cfd2f
lea eax, [0x5dabc0]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.004450a0
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x154]
mov ebp, dword [esp + 0x14c]
mov esi, dword [esp + 0x168]
mov edi, dword [esp + 0x158]
mov eax, 1
jmp 0x4cf27d
lea eax, [0x5dabc0]
mov dword [esp], eax
mov dword [esp + 4], esi
lea ecx, [esi + 4]
mov dword [esp + 0x48], ecx
mov dword [esp + 8], ecx
call fcn.004450a0
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x154]
mov ebp, dword [esp + 0x14c]
mov esi, dword [esp + 0x168]
mov edi, dword [esp + 0x158]
mov eax, dword [esp + 0x48]
jmp 0x4cf27d
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x164]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x2c], eax
call fcn.004cc900
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], ecx
mov dword [esp + 0x178], edx
add esp, 0x13c
ret
mov edi, dword [esp + 0x158]
jmp 0x4cf271
cmp eax, 1
jl 0x4cfe30
mov dword [edx], 1
mov dword [esp + 0x170], edx
mov dword [esp + 0x174], 1
mov dword [esp + 0x178], eax
add esp, 0x13c
ret
lea eax, [0x5dabc0]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.004450a0
mov edx, dword [esp + 0xc]
mov eax, 1
jmp 0x4cfe0a
mov dword [esp + 0x170], edx
mov dword [esp + 0x174], 0
mov dword [esp + 0x178], eax
add esp, 0x13c
ret
mov edi, dword [esp + 0x164]
jmp 0x4cf245
test eax, eax
jle 0x4cfec0
mov ebx, dword [esp + 0x160]
test ebx, ebx
jle 0x4cfeb7
lea esi, [edx + eax*4 - 4]
mov edi, dword [esp + 0x158]
lea ebx, [edi + ebx*4 - 4]
cmp esi, ebx
je 0x4cf21f
mov ebx, dword [esp + 0x144]
jmp 0x4cf225
mov edi, dword [esp + 0x158]
jmp 0x4cfeab
mov edi, dword [esp + 0x158]
jmp 0x4cfeab
test eax, eax
mov edx, dword [esp + 0x140]
mov ebp, dword [esp + 0x14c]
jmp 0x4cfe87
mov ecx, dword [esp + 0x154]
mov edx, dword [esp + 0x140]
mov ebp, dword [esp + 0x14c]
jmp 0x4cfe87
mov edx, edi
call fcn.0045ded0
mov ecx, eax
mov eax, ebp
call fcn.0045de90
mov eax, esi
mov ecx, ebx
call fcn.0045de90
mov eax, edi
mov ecx, 0x100
call fcn.0045dea0
nop
call fcn.0045c8b0
jmp fcn.004cf1c0