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

Disassembly:
push 0xffffffffffffffff
push 0x647b28
mov eax, dword fs:[0]
push eax
sub esp, 0x50c
mov eax, dword [0x74d890]
xor eax, esp
mov dword [esp + 0x508], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x74d890]
xor eax, esp
push eax
lea eax, [esp + 0x520]
mov dword fs:[0], eax
mov ebp, ecx
lea ecx, [esp + 0x54]
mov dword [esp + 0x28], ebp
call fcn.0045d970
xor edi, edi
mov dword [esp + 0x528], edi
mov edx, dword [esp + 0x530]
push edi
lea eax, [esp + 0x58]
push eax
lea ecx, [ebp + 8]
push edx
mov dword [esp + 0x24], ecx
call fcn.005df130
test al, al
je 0x4cb3e3
xor eax, eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x38], edi
mov word [esp + 0x34], ax
mov byte [esp + 0x528], 1
mov ecx, dword [esp + 0xb0]
push ecx
lea ecx, [esp + 0x34]
call fcn.004017f0
mov eax, dword [esp + 0xb0]
xor edx, edx
push eax
lea ecx, [esp + 0x4c]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x54], edi
mov word [esp + 0x50], dx
call fcn.004017f0
mov byte [esp + 0x528], 2
cmp byte [esp + 0x92], 4
mov byte [esp + 0x17], 1
je 0x4cb3a1
mov al, byte [esp + 0x91]
mov bl, 3
cmp al, 1
je 0x4cad5d
cmp al, bl
je 0x4cad5d
cmp al, 6
jne 0x4cad62
mov byte [esp + 0x17], 0
cmp dword [esp + 0xc4], edi
je 0x4cad7f
mov eax, dword [esp + 0xbc]
cmp eax, edi
jne 0x4cad8b
lea eax, [esp + 0xc0]
jmp 0x4cad8b
mov eax, dword [esp + 0x30]
cmp eax, edi
jne 0x4cad8b
lea eax, [esp + 0x34]
push pe_nt_image_headers32
lea ecx, [esp + 0x120]
push ecx
push pe_nt_image_headers32
lea edx, [esp + 0x328]
push edx
push edi
push edi
push edi
push edi
push eax
call fcn.00618767
add esp, 0x24
test eax, eax
jne 0x4cb3c1
mov eax, dword [esp + 0x78]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x294]
cmp eax, edi
jne 0x4cb061
lea ecx, [esp + 0x11c]
push 0x2e
push ecx
call fcn.006152e7
mov esi, eax
add esp, 8
cmp esi, edi
je 0x4cadeb
add esi, 2
xor edx, edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x44], edi
mov word [esp + 0x40], dx
mov byte [esp + 0x528], bl
cmp dword [ebp + 0x1a4], edi
je 0x4caf00
lea ecx, [esp + 0x20]
call fcn.00402500
mov byte [esp + 0x528], 4
cmp esi, edi
je 0x4cae2c
push esi
lea ecx, [esp + 0x24]
call fcn.0040e140
lea ecx, [esp + 0x1c]
call fcn.00402500
mov byte [esp + 0x528], 5
mov eax, dword [esp + 0xa4]
push 0x66e990
push eax
call fcn.00616e70
add esp, 8
cmp eax, edi
je 0x4cae7f
add eax, 3
push eax
lea ecx, [esp + 0x20]
push 0x66dea8
push ecx
call fcn.00402f70
mov edx, dword [esp + 0x28]
push 0x2f
push edx
call fcn.00616db0
add esp, 0x14
cmp eax, edi
je 0x4cae7f
mov byte [eax], 0
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x2c]
push eax
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [ebp + 0x1a4]
push edx
push eax
call fcn.004bdb90
test al, al
jne 0x4caeb5
lea ecx, [esp + 0x3c]
push ecx
mov dword [esp + 0x7c], edi
call fcn.0044bbb0
add esp, 4
jmp 0x4caebd
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x78], edx
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x24], eax
je 0x4caedd
mov edx, dword [esp + 0x530]
lea ecx, [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
call fcn.005ddf80
mov byte [esp + 0x528], 4
lea ecx, [esp + 0x1c]
call fcn.00402570
mov byte [esp + 0x528], bl
lea ecx, [esp + 0x20]
call fcn.00402570
jmp 0x4caf0d
lea eax, [esp + 0x3c]
push eax
call fcn.0044bbb0
add esp, 4
mov ebp, dword [esp + 0x3c]
mov eax, ebp
cmp ebp, edi
jne 0x4caf1b
lea eax, [esp + 0x40]
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4caf20
sub eax, edx
sar eax, 1
mov ebx, eax
mov ecx, 0x103
sub ecx, ebx
cmp ecx, 0x100
jbe 0x4caf45
mov ecx, pe_nt_image_headers32
lea eax, [esp + 0x31c]
lea esi, [eax + 2]
nop
mov dx, word [eax]
add eax, 2
cmp dx, di
jne 0x4caf50
sub eax, esi
sar eax, 1
mov esi, eax
lea eax, [esp + 0x11c]
lea edi, [eax + 2]
jmp 0x4caf70
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4caf70
sub eax, edi
sar eax, 1
add eax, esi
cmp eax, ecx
jbe 0x4caffd
lea eax, [esp + 0x11c]
lea esi, [eax + 2]
nop
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4caf90
sub eax, esi
sar eax, 1
cmp eax, 5
jbe 0x4cafae
xor edx, edx
mov word [esp + 0x126], dx
lea eax, [esp + 0x11c]
lea esi, [eax + 2]
jmp 0x4cafc0
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4cafc0
sub eax, esi
sar eax, 1
sub ecx, eax
lea eax, [esp + 0x31c]
lea esi, [eax + 2]
jmp 0x4cafe0
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4cafe0
sub eax, esi
sar eax, 1
cmp eax, ecx
jbe 0x4caffd
xor eax, eax
mov word [esp + ecx*2 + 0x31c], ax
mov eax, ebp
test ebp, ebp
jne 0x4cb007
lea eax, [esp + 0x40]
cmp word [eax + ebx*2 - 2], 0x5c
mov ecx, 0x66ec78
je 0x4cb019
mov ecx, 0x66e980
mov eax, ebp
test ebp, ebp
jne 0x4cb023
lea eax, [esp + 0x40]
push 0
lea edx, [esp + 0x120]
push edx
lea edx, [esp + 0x324]
push edx
push ecx
push eax
push str._s_s_s_s
lea ecx, [esp + 0x48]
call fcn.0043b9c0
mov byte [esp + 0x528], 2
lea ecx, [esp + 0x3c]
call fcn.00401210
mov ebp, dword [esp + 0x28]
xor edi, edi
jmp 0x4cb20c
mov ebx, 0x5c
cmp eax, 2
jne 0x4cb13a
mov eax, dword [ebp + 0x298]
cmp eax, edi
jne 0x4cb07f
lea eax, [ebp + 0x29c]
push eax
lea ecx, [esp + 0x40]
call fcn.00402180
mov byte [esp + 0x528], 6
mov edx, dword [esp + 0x3c]
mov eax, edx
cmp edx, edi
jne 0x4cb09f
lea eax, [esp + 0x40]
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4cb0a2
sub eax, esi
sar eax, 1
mov ecx, edx
cmp edx, edi
jne 0x4cb0bb
lea ecx, [esp + 0x40]
cmp word [ecx + eax*2 - 2], bx
mov ecx, 0x66ec78
je 0x4cb0cc
mov ecx, 0x66e980
mov eax, edx
cmp edx, edi
jne 0x4cb0d6
lea eax, [esp + 0x40]
push edi
lea edx, [esp + 0x120]
push edx
lea edx, [esp + 0x324]
push edx
push ecx
push eax
push str._s_s_s_s
lea ecx, [esp + 0x48]
call fcn.0043b9c0
cmp byte [ebp + 0x2a4], 0
je 0x4cb129
lea eax, [esp + 0x11c]
push eax
mov eax, dword [esp + 0x534]
lea ecx, [esp + 0x320]
push ecx
lea edx, [esp + 0x38]
push edx
push eax
lea ecx, [esp + 0x64]
push ecx
mov ecx, ebp
call fcn.004ca340
mov byte [esp + 0x528], 2
lea ecx, [esp + 0x3c]
call fcn.00401210
cmp dword [ebp + 0x294], 1
jne 0x4cb20c
mov eax, dword [ebp + 0x2a8]
cmp eax, edi
jne 0x4cb157
lea eax, [ebp + 0x2ac]
push eax
lea ecx, [esp + 0x40]
call fcn.00402180
mov byte [esp + 0x528], 7
mov edx, dword [esp + 0x3c]
mov eax, edx
cmp edx, edi
jne 0x4cb177
lea eax, [esp + 0x40]
lea esi, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4cb180
sub eax, esi
sar eax, 1
mov ecx, edx
cmp edx, edi
jne 0x4cb199
lea ecx, [esp + 0x40]
cmp word [ecx + eax*2 - 2], bx
mov ecx, 0x66ec78
je 0x4cb1aa
mov ecx, 0x66e980
mov eax, edx
cmp edx, edi
jne 0x4cb1b4
lea eax, [esp + 0x40]
push edi
lea edx, [esp + 0x120]
push edx
lea edx, [esp + 0x324]
push edx
push ecx
push eax
push str._s_s_s_s
lea ecx, [esp + 0x48]
call fcn.0043b9c0
mov eax, dword [ebp + 0x2b4]
mov dword [esp + 0x78], eax
cmp dword [esp + 0x24], eax
je 0x4cb1fb
mov ecx, dword [esp + 0x530]
lea eax, [esp + 0x54]
push eax
push ecx
mov ecx, dword [esp + 0x20]
call fcn.005ddf80
mov byte [esp + 0x528], 2
lea ecx, [esp + 0x3c]
call fcn.00401210
cmp byte [esp + 0x17], 0
je 0x4cb22d
mov eax, dword [esp + 0x530]
mov ecx, dword [esp + 0x6c]
push edi
lea edx, [esp + 0x34]
push edx
push eax
push ecx
mov ecx, ebp
call fcn.004c7ac0
mov esi, dword [esp + 0x48]
mov ecx, esi
cmp esi, edi
jne 0x4cb23b
lea ecx, [esp + 0x4c]
mov ebx, dword [esp + 0x30]
mov eax, ebx
cmp ebx, edi
jne 0x4cb250
lea eax, [esp + 0x34]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4cb276
cmp dx, di
je 0x4cb272
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4cb276
add eax, 4
add ecx, 4
cmp dx, di
jne 0x4cb250
xor eax, eax
jmp 0x4cb27b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
je 0x4cb2c3
push ebx
lea ecx, [esp + 0xb4]
call fcn.004017f0
mov ebx, dword [esp + 0x530]
mov esi, dword [esp + 0x18]
lea edx, [esp + 0x54]
push edx
push ebx
mov ecx, esi
call fcn.005ddf80
mov eax, dword [esp + 0x30]
cmp eax, edi
jne 0x4cb2b0
lea eax, [esp + 0x34]
push 1
push ebx
push eax
mov ecx, esi
call fcn.005e0160
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x6c]
test edi, edi
je 0x4cb398
mov ecx, esi
test esi, esi
jne 0x4cb2d9
lea ecx, [esp + 0x4c]
mov eax, ebx
test ebx, ebx
jne 0x4cb2e3
lea eax, [esp + 0x34]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4cb309
test dx, dx
je 0x4cb305
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4cb309
add eax, 4
add ecx, 4
test dx, dx
jne 0x4cb2e3
xor eax, eax
jmp 0x4cb30e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4cb31c
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x24], eax
je 0x4cb398
mov ecx, dword [esp + 0x28]
push edi
call fcn.004c6a50
test eax, eax
je 0x4cb394
mov esi, dword [esp + 0x48]
test esi, esi
jne 0x4cb336
lea esi, [esp + 0x4c]
mov ebp, dword [esp + 0x30]
mov edx, ebp
test ebp, ebp
jne 0x4cb344
lea edx, [esp + 0x34]
mov di, word [edx]
cmp di, word [esi]
jne 0x4cb36a
test di, di
je 0x4cb366
mov di, word [edx + 2]
cmp di, word [esi + 2]
jne 0x4cb36a
add edx, 4
add esi, 4
test di, di
jne 0x4cb344
xor edx, edx
jmp 0x4cb36f
sbb edx, edx
sbb edx, 0xffffffff
test edx, edx
je 0x4cb388
mov edx, ebp
test ebp, ebp
jne 0x4cb37d
lea edx, [esp + 0x34]
push edx
lea ecx, [eax + 0x20]
call fcn.005c35d0
jmp 0x4cb394
mov ecx, dword [esp + 0x78]
push ecx
mov ecx, eax
call fcn.005ac440
mov ebx, dword [esp + 0x30]
cmp byte [esp + 0x17], 0
je 0x4cb3c1
jmp 0x4cb3a5
mov ebx, dword [esp + 0x30]
mov eax, ebx
test ebx, ebx
jne 0x4cb3af
lea eax, [esp + 0x34]
mov edx, dword [esp + 0x530]
mov ecx, dword [esp + 0x18]
push edx
push eax
call fcn.005e01e0
mov byte [esp + 0x528], 1
lea ecx, [esp + 0x48]
call fcn.00401210
mov byte [esp + 0x528], 0
lea ecx, [esp + 0x30]
call fcn.00401210
mov dword [esp + 0x528], 0xffffffff
lea ecx, [esp + 0x54]
call fcn.0045dac0
mov ecx, dword [esp + 0x520]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x508]
xor ecx, esp
call fcn.006157d3
add esp, 0x518
ret 4