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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x60]
cmp eax, dword [ecx + 8]
jbe 0x4c4b27
sub esp, 0xe0
mov eax, 0
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov byte [esp + 0x43], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0
mov eax, dword [esp + 0xe8]
test eax, eax
je 0x4c4b02
call fcn.0049f7d0
lea edi, [esp + 0xc4]
mov esi, esp
call fcn.0045d09e
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
mov ecx, dword [esp + 0xe8]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xec]
mov dword [esp + 8], edx
lea edi, [esp + 0xc]
lea esi, [esp + 0xc4]
call fcn.0045d09e
call fcn.004c2b00
lea esi, [esp + 0x20]
lea edi, [esp + 0x9c]
call fcn.0045d09e
lea edi, [esp + 0x88]
lea esi, [esp + 0x9c]
call fcn.0045d09e
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
test ecx, 0x80000000
je 0x4c4aed
shl ecx, 1
mov edx, eax
shr eax, 0x1f
or eax, ecx
mov ecx, edx
shl edx, 1
mov ebx, eax
shl eax, 1
shr edx, 0x1f
or edx, eax
mov ebp, edx
add edx, 0xd7b17f80
shr ebx, 0x1f
add ebp, 0xd7b17f80
adc ebx, 0xd
test ebx, ebx
sete bl
test edx, edx
sete dl
and edx, ebx
test dl, dl
je 0x4c4a07
test ecx, 0x3fffffff
jne 0x4c4a07
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
xor edx, edx
mov ebx, dword [esp + 0xe4]
mov ebp, dword [ebx + 0x3c]
test ebp, ebp
jne 0x4c498c
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, [0x646920]
mov dword [esp + 4], ebp
lea esi, [0x7e32f0]
mov dword [esp + 8], esi
call ebx
mov eax, dword [esp + 0x10]
lea ecx, [0x634200]
cmp dword [esp + 0xc], ecx
jne 0x4c4985
test eax, eax
jne 0x4c48c0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0xe4]
mov ebx, dword [edx + 0x38]
test ebx, ebx
je 0x4c48b5
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, [0x679d20]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 4
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0x14], ecx
mov ebx, dword [esp + 0xf4]
mov dword [esp + 0x18], ebx
mov edi, dword [esp + 0xf8]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0xfc]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], esi
call fcn.004c32d0
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 0x4c4500
mov dword [esp + 0x80], ebp
mov dword [esp + 0x5c], eax
lea eax, [0x6612a0]
mov dword [esp], eax
call fcn.0040c800
mov eax, dword [esp + 4]
mov dword [eax + 4], 4
lea ecx, [0x679d20]
mov dword [eax], ecx
mov ecx, dword [esp + 0xf4]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x7e34e0]
test ecx, ecx
jne 0x4c44e8
mov ecx, dword [esp + 0xf0]
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 [0x7e34e0]
test ecx, ecx
jne 0x4c44d0
mov ecx, dword [esp + 0x80]
mov dword [eax + 0x24], ecx
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
lea ecx, [0x6caeb0]
mov dword [esp + 0x108], ecx
mov dword [esp + 0x10c], eax
movzx eax, byte [esp + 0x42]
test al, 2
jne 0x4c44b3
test al, 1
jne 0x4c449f
add esp, 0xe0
ret
and eax, 0xfffffffe
mov byte [esp + 0x43], al
mov edx, dword [esp + 0xdc]
mov eax, dword [edx]
call eax
jmp 0x4c4498
and eax, 0xfffffffd
mov byte [esp + 0x42], al
mov byte [esp + 0x43], al
mov edx, dword [esp + 0xd8]
mov ecx, dword [edx]
call ecx
movzx eax, byte [esp + 0x42]
jmp 0x4c4493
lea edi, [eax + 0x24]
mov ecx, eax
mov eax, dword [esp + 0x80]
call fcn.0045c920
mov eax, ecx
jmp 0x4c445f
lea edi, [eax + 8]
mov ecx, eax
mov eax, dword [esp + 0xf0]
call fcn.0045c920
mov eax, ecx
jmp 0x4c4428
mov dword [esp + 0x78], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ebx
lea eax, [0x65a140]
mov dword [esp], eax
call fcn.0040c800
mov edi, dword [esp + 4]
mov dword [esp + 0x70], edi
mov eax, dword [0x7e34e0]
test eax, eax
jne 0x4c4893
mov esi, dword [esp + 0xe4]
call fcn.0045d026
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0x70]
mov dword [edx + 0x48], ecx
mov ebx, dword [0x7e34e0]
test ebx, ebx
jne 0x4c487d
mov ebx, dword [esp + 0xf0]
mov dword [edx + 0x44], ebx
mov ebp, dword [esp + 0xfc]
mov dword [edx + 0x50], ebp
mov ebp, dword [0x7e34e0]
test ebp, ebp
jne 0x4c4869
mov eax, dword [esp + 0xf8]
mov dword [edx + 0x4c], eax
mov eax, dword [esp + 0xe4]
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 0x4c45ca
cmp ecx, 3
jne 0x4c45ca
cmp word [ebx], 0x6374
jne 0x4c45ca
cmp byte [ebx + 2], 0x70
je 0x4c4817
xor ecx, ecx
xor ebx, ebx
xor ebp, ebp
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x50]
test ecx, ecx
jle 0x4c47da
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 + 0x78]
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.004c4b40
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
test edx, edx
je 0x4c4693
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], edx
mov dword [esp + 0x10c], ebx
movzx eax, byte [esp + 0x42]
test al, 2
jne 0x4c4676
test al, 1
jne 0x4c4662
add esp, 0xe0
ret
and eax, 0xfffffffe
mov byte [esp + 0x43], al
mov edx, dword [esp + 0xdc]
mov eax, dword [edx]
call eax
jmp 0x4c465b
and eax, 0xfffffffd
mov byte [esp + 0x42], al
mov byte [esp + 0x43], al
mov edx, dword [esp + 0xd8]
mov ecx, dword [edx]
call ecx
movzx eax, byte [esp + 0x42]
jmp 0x4c4656
lea ebx, [0x6ce220]
cmp eax, ebx
jne 0x4c47ce
mov edx, ecx
jne 0x4c46d7
mov ebx, dword [esp + 0xe4]
mov ebp, dword [ebx + 0x34]
test ebp, ebp
xchg esi, ebx
setg bl
xchg esi, ebx
mov edi, dword [ebx + 0x30]
test edi, edi
xchg edi, ebx
setae bl
xchg edi, ebx
test ebp, ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
and edi, ebp
or esi, edi
xchg esi, eax
test al, al
xchg esi, eax
jne 0x4c4742
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], edx
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0
movzx eax, byte [esp + 0x42]
test al, 2
jne 0x4c4725
test al, 1
jne 0x4c4711
add esp, 0xe0
ret
and eax, 0xfffffffe
mov byte [esp + 0x43], al
mov edx, dword [esp + 0xdc]
mov eax, dword [edx]
call eax
jmp 0x4c470a
and eax, 0xfffffffd
mov byte [esp + 0x42], al
mov byte [esp + 0x43], al
mov edx, dword [esp + 0xd8]
mov ecx, dword [edx]
call ecx
movzx eax, byte [esp + 0x42]
jmp 0x4c4705
mov dword [esp + 0x84], 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.004d30a0
mov eax, dword [esp + 0xe4]
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 0x4c4787
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.004d42d0
mov edx, dword [0x61be84]
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 + 0x84]
jmp 0x4c46d7
mov edx, ecx
mov ecx, 0
jmp 0x4c46a3
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 + 0x78]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
call fcn.004c5160
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
jmp 0x4c4624
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, [0x692734]
mov dword [esp + 0xc], eax
call fcn.004cb530
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 + 0x78], eax
mov eax, dword [esp + 0xe4]
jmp 0x4c45d8
lea edi, [edx + 0x4c]
mov eax, dword [esp + 0xf8]
call fcn.0045c920
jmp 0x4c4584
lea edi, [edx + 0x44]
mov eax, dword [esp + 0xf0]
call fcn.0045c920
mov ebx, eax
jmp 0x4c4562
lea eax, [0x668a20]
mov dword [esp], eax
mov dword [esp + 4], edi
mov eax, dword [esp + 0xe4]
mov dword [esp + 8], eax
call fcn.00411d70
jmp 0x4c453c
mov ebx, dword [0x61be70]
jmp 0x4c4362
mov dword [esp + 0x64], eax
lea eax, [0x65d8c0]
mov dword [esp], eax
call fcn.0040c800
mov edi, dword [esp + 4]
mov eax, dword [0x7e34e0]
mov ecx, dword [esp + 0x64]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
test eax, eax
jne 0x4c4967
mov dword [edi], edx
mov dword [edi + 4], ecx
mov ecx, dword [0x7e34e0]
test ecx, ecx
jne 0x4c4949
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, [0x646920]
mov dword [esp + 8], edx
lea edx, [0x7e32f0]
mov dword [esp + 0xc], edx
lea edx, [0x634200]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edi
call fcn.004bf040
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
jmp 0x4c4350
lea ecx, [edi + 8]
mov eax, edi
mov edi, ecx
mov edx, eax
xor eax, eax
call fcn.0045c920
lea edi, [edx + 0xc]
xor eax, eax
call fcn.0045c920
mov edi, edx
jmp 0x4c4906
mov eax, edx
call fcn.0045c920
lea edx, [edi + 4]
mov eax, edi
mov edi, edx
mov ebx, eax
mov eax, ecx
call fcn.0045c920
mov edi, ebx
jmp 0x4c48ee
xor eax, eax
jmp 0x4c4340
mov dword [esp + 0x7c], ebp
mov byte [esp + 0x42], dl
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004bdf10
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 + 0xd8], 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, [0x692700]
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.0043bb40
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x6c]
movzx edx, byte [esp + 0x42]
jmp 0x4c4304
lea edi, [esp + 0xc4]
xor eax, eax
call fcn.0045cbbb
mov ecx, dword [esp + 0xe8]
mov edx, dword [ecx + 0x10]
mov ebx, dword [esp + 0xec]
mov dword [esp], ebx
call edx
lea esi, [esp + 4]
lea edi, [esp + 0xc4]
call fcn.0045d09e
movzx ecx, byte [esp + 0x18]
mov byte [esp + 0x41], cl
lea edi, [esp + 0xb0]
lea esi, [esp + 0xc4]
call fcn.0045d09e
movzx ecx, byte [esp + 0x41]
test cl, cl
jne 0x4c4aac
mov eax, dword [esp + 0xe8]
mov dword [esp], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 4], eax
lea edi, [esp + 8]
lea esi, [esp + 0x9c]
call fcn.0045d09e
call fcn.004be8b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0xdc], edx
mov byte [esp + 0x43], 1
mov edx, 1
jmp 0x4c42f2
mov edi, esp
lea esi, [esp + 0x9c]
call fcn.0045d09e
lea edi, [esp + 0x14]
lea esi, [esp + 0xb0]
call fcn.0045d09e
call fcn.0049dcf0
movzx eax, byte [esp + 0x28]
test al, al
jne 0x4c4a60
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
xor edx, edx
jmp 0x4c42f2
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0x94]
mov ecx, eax
jmp 0x4c42c2
lea eax, [0x643700]
mov dword [esp], eax
lea eax, [0x6c7eb8]
mov dword [esp + 4], eax
call fcn.00431bb0
nop
call fcn.004312b0
add esp, 0xe0
ret
call fcn.0045b380
jmp fcn.004c41a0