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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x64]
cmp eax, dword [ecx + 8]
jbe 0x4c8002
sub esp, 0xe4
mov eax, 0
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], eax
mov byte [esp + 0x43], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x110], 0
mov eax, dword [esp + 0xec]
test eax, eax
je 0x4c7fdd
call fcn.0049d5f0
lea edi, [esp + 0xc8]
mov esi, esp
call fcn.0045b46e
mov eax, dword [esp + 0xe8]
mov dword [esp], eax
mov ecx, dword [esp + 0xec]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xf0]
mov dword [esp + 8], edx
lea edi, [esp + 0xc]
lea esi, [esp + 0xc8]
call fcn.0045b46e
call fcn.004c5f00
lea esi, [esp + 0x20]
lea edi, [esp + 0xa0]
call fcn.0045b46e
lea edi, [esp + 0x8c]
lea esi, [esp + 0xa0]
call fcn.0045b46e
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
test ecx, 0x80000000
je 0x4c7fc8
shl ecx, 1
mov edx, eax
shr eax, 0x1f
or ecx, eax
mov ebx, edx
shl edx, 1
mov ebp, ecx
shl ecx, 1
shr edx, 0x1f
or edx, ecx
mov ecx, edx
add edx, 0xd7b17f80
shr ebp, 0x1f
add ecx, 0xd7b17f80
adc ebp, 0xd
test ebp, ebp
sete cl
test edx, edx
sete dl
and edx, ecx
test dl, dl
je 0x4c7edb
test ebx, 0x3fffffff
jne 0x4c7edb
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xf0]
xor edx, edx
mov ebx, dword [esp + 0xe8]
mov ebp, dword [ebx + 0x3c]
test ebp, ebp
jne 0x4c7e60
mov dword [esp + 0x74], ecx
mov dword [esp + 0x48], eax
mov byte [esp + 0x42], dl
mov ebx, dword [eax + 0x1c]
mov dword [esp], ecx
lea ebp, [0x637160]
mov dword [esp + 4], ebp
lea esi, [0x8324a4]
mov dword [esp + 8], esi
call ebx
mov eax, dword [esp + 0x10]
lea ecx, [0x623860]
cmp dword [esp + 0xc], ecx
jne 0x4c7e59
test eax, eax
jne 0x4c7d94
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0xe8]
mov ebx, dword [edx + 0x38]
test ebx, ebx
je 0x4c7d89
mov ebp, dword [edx + 0x1c]
mov esi, dword [edx + 0x20]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
lea eax, [0x66ecac]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 4
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x14], ecx
mov ebx, dword [esp + 0xf8]
mov dword [esp + 0x18], ebx
mov edi, dword [esp + 0xfc]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x100]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], esi
call fcn.004c6660
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x3c]
test eax, eax
je 0x4c79c0
mov dword [esp + 0x80], ebp
mov dword [esp + 0x5c], eax
lea eax, [0x654780]
mov dword [esp], eax
call fcn.0040b4f0
mov eax, dword [esp + 4]
mov dword [eax + 4], 4
lea ecx, [0x66ecac]
mov dword [eax], ecx
mov ecx, dword [esp + 0xf8]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x8326a0]
test ecx, ecx
jne 0x4c79a8
mov ecx, dword [esp + 0xf4]
mov dword [eax + 8], ecx
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0x20], ecx
mov ecx, dword [0x8326a0]
test ecx, ecx
jne 0x4c7990
mov ecx, dword [esp + 0x80]
mov dword [eax + 0x24], ecx
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
lea ecx, [0x6c82d0]
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], eax
movzx eax, byte [esp + 0x42]
test al, 2
jne 0x4c7973
test al, 1
jne 0x4c795f
add esp, 0xe4
ret
and eax, 0xfffffffe
mov byte [esp + 0x43], al
mov edx, dword [esp + 0xe0]
mov eax, dword [edx]
call eax
jmp 0x4c7958
and eax, 0xfffffffd
mov byte [esp + 0x42], al
mov byte [esp + 0x43], al
mov edx, dword [esp + 0xdc]
mov ecx, dword [edx]
call ecx
movzx eax, byte [esp + 0x42]
jmp 0x4c7953
lea edi, [eax + 0x24]
mov ecx, eax
mov eax, dword [esp + 0x80]
call fcn.0045ace0
mov eax, ecx
jmp 0x4c791f
lea edi, [eax + 8]
mov ecx, eax
mov eax, dword [esp + 0xf4]
call fcn.0045ace0
mov eax, ecx
jmp 0x4c78e8
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x78], ecx
lea eax, [0x64d0a0]
mov dword [esp], eax
call fcn.0040b4f0
mov edi, dword [esp + 4]
mov dword [esp + 0x70], edi
mov eax, dword [0x8326a0]
test eax, eax
jne 0x4c7d67
mov esi, dword [esp + 0xe8]
call fcn.0045b3f6
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0x70]
mov dword [edx + 0x48], ecx
mov ebx, dword [0x8326a0]
test ebx, ebx
jne 0x4c7d51
mov ebx, dword [esp + 0xf4]
mov dword [edx + 0x44], ebx
mov ebp, dword [esp + 0x100]
mov dword [edx + 0x50], ebp
mov ebp, dword [0x8326a0]
test ebp, ebp
jne 0x4c7d3d
mov eax, dword [esp + 0xfc]
mov dword [edx + 0x4c], eax
mov eax, dword [esp + 0xe8]
mov ebp, dword [eax + 0x28]
test ebp, ebp
xchg ebp, ebx
setae bl
xchg ebp, ebx
mov esi, dword [eax + 0x2c]
test esi, esi
xchg esi, ebx
sete bl
xchg esi, ebx
xchg edi, ebx
setg bl
xchg edi, ebx
and esi, ebp
or edi, esi
xchg edi, eax
test al, al
xchg edi, eax
je 0x4c7a8a
cmp ecx, 3
jne 0x4c7a8a
cmp word [ebx], 0x6374
jne 0x4c7a8a
cmp byte [ebx + 2], 0x70
je 0x4c7ce8
xor ecx, ecx
xor ebx, ebx
xor ebp, ebp
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x88], ecx
xor ecx, ecx
test ecx, ecx
jle 0x4c7ca8
mov dword [esp], edx
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ebx
call fcn.004c8010
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
test edx, edx
je 0x4c7b63
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], edx
mov dword [esp + 0x110], ebx
movzx eax, byte [esp + 0x42]
test al, 2
jne 0x4c7b46
test al, 1
jne 0x4c7b32
add esp, 0xe4
ret
and eax, 0xfffffffe
mov byte [esp + 0x43], al
mov edx, dword [esp + 0xe0]
mov eax, dword [edx]
call eax
jmp 0x4c7b2b
and eax, 0xfffffffd
mov byte [esp + 0x42], al
mov byte [esp + 0x43], al
mov edx, dword [esp + 0xdc]
mov ecx, dword [edx]
call ecx
movzx eax, byte [esp + 0x42]
jmp 0x4c7b26
lea ebx, [0x6cb9a0]
cmp eax, ebx
jne 0x4c7c9c
mov edx, ecx
jne 0x4c7ba5
mov ebx, dword [esp + 0xe8]
mov ebp, dword [ebx + 0x34]
test ebp, ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg esi, ebx
setg bl
xchg esi, ebx
mov edi, dword [ebx + 0x30]
test edi, edi
xchg edi, ebx
setae bl
xchg edi, ebx
and edi, ebp
or esi, edi
xchg esi, eax
test al, al
xchg esi, eax
jne 0x4c7c10
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], edx
mov dword [esp + 0x10c], 0
mov dword [esp + 0x110], 0
movzx eax, byte [esp + 0x42]
test al, 2
jne 0x4c7bf3
test al, 1
jne 0x4c7bdf
add esp, 0xe4
ret
and eax, 0xfffffffe
mov byte [esp + 0x43], al
mov edx, dword [esp + 0xe0]
mov eax, dword [edx]
call eax
jmp 0x4c7bd8
and eax, 0xfffffffd
mov byte [esp + 0x42], al
mov byte [esp + 0x43], al
mov edx, dword [esp + 0xdc]
mov ecx, dword [edx]
call ecx
movzx eax, byte [esp + 0x42]
jmp 0x4c7bd3
mov dword [esp + 0x88], edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], ecx
mov eax, dword [ecx]
mov dword [esp], eax
mov byte [esp + 4], 1
call fcn.004d5cd0
mov eax, dword [esp + 0xe8]
mov ecx, dword [eax + 0x30]
test ecx, ecx
sete dl
mov eax, dword [eax + 0x34]
test eax, eax
sete bl
and edx, ebx
test dl, dl
je 0x4c7c55
mov eax, 3
mov ecx, 0x7e11d600
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x68]
mov edx, dword [edx]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004d6f00
mov edx, dword [0x8158cc]
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov eax, dword [edx]
call eax
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x88]
jmp 0x4c7ba5
mov edx, ecx
mov ecx, 0
jmp 0x4c7b73
mov dword [esp], edx
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
call fcn.004c8630
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
jmp 0x4c7af4
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
lea eax, [0x6895a0]
mov dword [esp + 0xc], eax
call fcn.004ce180
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x70]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xe8]
jmp 0x4c7aa5
lea edi, [edx + 0x4c]
mov eax, dword [esp + 0xfc]
call fcn.0045ace0
jmp 0x4c7a44
lea edi, [edx + 0x44]
mov eax, dword [esp + 0xf4]
call fcn.0045ace0
mov ebx, eax
jmp 0x4c7a22
lea eax, [0x65c420]
mov dword [esp], eax
mov dword [esp + 4], edi
mov eax, dword [esp + 0xe8]
mov dword [esp + 8], eax
call fcn.00410a20
jmp 0x4c79fc
mov ebx, dword [0x8158b8]
jmp 0x4c7822
mov dword [esp + 0x64], eax
lea eax, [0x650c20]
mov dword [esp], eax
call fcn.0040b4f0
mov edi, dword [esp + 4]
mov eax, dword [0x8326a0]
mov ecx, dword [esp + 0x64]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
test eax, eax
jne 0x4c7e3b
mov dword [edi], edx
mov dword [edi + 4], ecx
mov ecx, dword [0x8326a0]
test ecx, ecx
jne 0x4c7e1d
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov ecx, dword [esp + 0x74]
mov dword [esp + 4], ecx
lea edx, [0x637160]
mov dword [esp + 8], edx
lea edx, [0x8324a4]
mov dword [esp + 0xc], edx
lea edx, [0x623860]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edi
call fcn.004b55d0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
jmp 0x4c7810
lea ecx, [edi + 8]
mov eax, edi
mov edi, ecx
mov edx, eax
xor eax, eax
call fcn.0045ace0
lea edi, [edx + 0xc]
xor eax, eax
call fcn.0045ace0
mov edi, edx
jmp 0x4c7dda
mov eax, edx
call fcn.0045ace0
lea edx, [edi + 4]
mov eax, edi
mov edi, edx
mov ebx, eax
mov eax, ecx
call fcn.0045ace0
mov edi, ebx
jmp 0x4c7dc2
xor eax, eax
jmp 0x4c7800
mov dword [esp + 0x7c], ebp
mov byte [esp + 0x42], dl
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004b44e0
mov eax, dword [esp + 8]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x6c], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0xdc], edx
movzx ebx, byte [esp + 0x42]
or ebx, 2
mov byte [esp + 0x42], bl
mov byte [esp + 0x43], bl
mov dword [esp], 0x10
lea ebp, [0x68956c]
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0x7c]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
call fcn.0043a390
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x6c]
movzx edx, byte [esp + 0x42]
jmp 0x4c77c4
lea edi, [esp + 0xc8]
xor eax, eax
call fcn.0045af8b
mov ecx, dword [esp + 0xec]
mov edx, dword [ecx + 0x10]
mov ebx, dword [esp + 0xf0]
mov dword [esp], ebx
call edx
lea esi, [esp + 4]
mov dword [esp + 0x84], esi
lea edi, [esp + 0xc8]
call fcn.0045b46e
movzx ecx, byte [esp + 0x18]
mov byte [esp + 0x41], cl
lea edi, [esp + 0xb4]
mov esi, dword [esp + 0x84]
call fcn.0045b46e
movzx ecx, byte [esp + 0x41]
test cl, cl
jne 0x4c7f87
mov eax, dword [esp + 0xec]
mov dword [esp], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 4], eax
lea edi, [esp + 8]
lea esi, [esp + 0xa0]
call fcn.0045b46e
call fcn.004b4e80
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0xe0], edx
mov byte [esp + 0x43], 1
mov edx, 1
jmp 0x4c77b2
mov edi, esp
lea esi, [esp + 0xa0]
call fcn.0045b46e
lea edi, [esp + 0x14]
lea esi, [esp + 0xb4]
call fcn.0045b46e
call fcn.0049bb50
movzx eax, byte [esp + 0x28]
test al, al
jne 0x4c7f3b
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xf0]
xor edx, edx
jmp 0x4c77b2
mov edx, dword [esp + 0x94]
mov ebp, dword [esp + 0x98]
mov ebx, eax
jmp 0x4c7782
lea eax, [0x633ac0]
mov dword [esp], eax
lea eax, [0x6c50c0]
mov dword [esp + 4], eax
call fcn.00430630
nop
call fcn.0042fd30
add esp, 0xe4
ret
call fcn.00459790
jmp fcn.004c7660