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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x9c
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, ecx
mov dword [esp + 0x18], edx
mov al, byte [ebx]
mov dword [esp + 0x10], edi
test al, al
jne 0x4cf540
cmp byte [edi + 0x27], al
je 0x4cf52f
cmp byte [edi + 0x23], al
jne 0x4cf52f
cmp dword [edi + 8], 0
lea ebx, [edi + 8]
mov dword [esp + 0x1c], ebx
ja 0x4cf3e3
mov eax, dword [edi]
mov ecx, 0x64
mov dword [esp + 0x10], eax
mov eax, dword [edi + 4]
add eax, dword [edi + 0x2c]
cmp ecx, eax
mov dword [edi], 0
push 0
lea esi, [eax + 0x64]
cmovae esi, ecx
mov ecx, dword [edi + 0x10]
push esi
call fcn.00411a60
add esp, 8
test eax, eax
jne 0x4cf3cb
mov eax, dword [ebp + 0xc]
mov dword [edi + 0x30], eax
mov eax, dword [esp + 0x18]
mov byte [edi + 0x23], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [edi + 4]
mov dword [edi], eax
push dword [esp + 0x14]
mov dword [ebx], esi
push eax
call fcn.006239e0
add esp, 0xc
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x18]
lea eax, [esp + 0x28]
push eax
mov edx, ebx
mov ecx, edi
call fcn.004ce070
mov esi, dword [esp + 0x2c]
add esp, 4
add esi, eax
mov al, byte [edi + 0x27]
cmp al, 1
jne 0x4cf48f
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4cf418
sub esi, eax
mov dword [esp + 0x18], eax
add esi, ebx
xor ecx, ecx
mov ebx, esi
neg ebx
mov eax, ebx
adc ecx, ecx
neg ecx
or eax, ecx
je 0x4cf52f
mov edx, dword [edi + 4]
xor eax, eax
add edx, ebx
adc eax, ecx
mov ecx, dword [esp + 0x1c]
js 0x4cf458
jg 0x4cf441
cmp edx, dword [ecx]
jbe 0x4cf458
mov edx, dword [edi + 4]
mov ecx, edi
lea edx, [ebx + edx]
call fcn.004cc800
cmp byte [edi + 0x23], 0
jne 0x4cf52f
mov eax, dword [edi + 4]
mov ecx, dword [edi]
sub eax, esi
mov edx, dword [esp + 0x18]
sub eax, edx
push eax
lea eax, [ecx + esi]
add eax, edx
push eax
lea eax, [ecx + edx]
push eax
call fcn.006239e0
mov eax, dword [ebp + 0xc]
add esp, 0xc
add dword [edi + 4], ebx
add dword [edi + 0x28], ebx
mov dword [edi + 0x30], eax
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 3
je 0x4cf52f
mov ecx, dword [edi + 0x2c]
xor edx, edx
mov eax, dword [edi + 0x34]
mov ebx, ecx
sub ebx, esi
mov dword [esp + 0x34], eax
mov eax, ebx
mov dword [esp + 0x10], ecx
sbb edx, edx
or eax, edx
je 0x4cf512
mov ecx, dword [edi + 4]
xor eax, eax
add ecx, ebx
mov dword [esp + 0x2c], ecx
adc eax, edx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
js 0x4cf4e3
jg 0x4cf4d0
cmp dword [esp + 0x2c], ecx
jbe 0x4cf4e3
mov edx, dword [edi + 4]
mov ecx, edi
lea edx, [ebx + edx]
call fcn.004cc800
cmp byte [edi + 0x23], 0
jne 0x4cf52f
mov eax, dword [edi + 4]
mov ecx, dword [edi]
sub eax, esi
mov edx, dword [esp + 0x18]
sub eax, edx
push eax
lea eax, [esi + ecx]
add eax, edx
push eax
mov eax, dword [esp + 0x18]
add eax, ecx
add eax, edx
push eax
call fcn.006239e0
add dword [edi + 4], ebx
add esp, 0xc
add dword [edi + 0x28], ebx
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x4cf52f
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4cf52f
push ecx
push eax
mov eax, dword [edi]
add eax, dword [esp + 0x20]
push eax
call fcn.006239e0
add esp, 0xc
mov eax, dword [ebp + 0xc]
mov dword [edi + 0x30], eax
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 0x2e
jne 0x4cfabb
mov eax, dword [edi]
inc ebx
mov esi, edx
mov dword [esp + 0x34], 1
mov dword [ebp + 8], ebx
mov cl, byte [eax + esi]
mov al, byte [ebx]
mov byte [esp + 0x17], cl
cmp al, 0x22
jne 0x4cf5c3
mov al, byte [ebx + 1]
lea edx, [ebx + 1]
mov dword [esp + 0x1c], edx
mov ebx, 1
test al, al
je 0x4cf58d
mov ecx, dword [ebp + 8]
nop dword [eax + eax]
cmp al, 0x22
je 0x4cf58d
mov al, byte [ebx + ecx + 1]
inc ebx
test al, al
jne 0x4cf580
mov eax, dword [ebp + 8]
lea ecx, [ebx - 1]
mov dword [esp + 0x30], ecx
cmp byte [ebx + eax], 0
je 0x4cfdd4
push ecx
push 0x5c
inc ebx
push edx
mov dword [esp + 0x38], ebx
call fcn.00646ed0
mov cl, byte [esp + 0x23]
xor edx, edx
add esp, 0xc
test eax, eax
sete dl
mov dword [esp + 0x34], edx
jmp 0x4cf5f9
mov dword [esp + 0x1c], ebx
xor ebx, ebx
mov dword [esp + 0x2c], ebx
test al, al
je 0x4cf5ed
mov edi, dword [ebp + 8]
cmp al, 0x2e
je 0x4cf5e5
cmp al, 0x5b
je 0x4cf5e5
mov al, byte [ebx + edi + 1]
inc ebx
test al, al
jne 0x4cf5d4
mov edi, dword [esp + 0x10]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
test ebx, ebx
je 0x4cfdd4
and cl, 0xf
cmp cl, 0xc
jne 0x4cfdc8
lea eax, [esp + 0x28]
mov edx, esi
push eax
mov ecx, edi
call fcn.004ce070
add esp, 4
lea ebx, [esi + eax]
mov eax, dword [esp + 0x28]
add eax, ebx
mov dword [esp + 0x10], eax
cmp ebx, eax
jae 0x4cf769
nop dword [eax + eax]
mov eax, dword [edi]
mov al, byte [eax + ebx]
and al, 0xf
mov byte [esp + 0x17], al
cmp al, 7
jb 0x4cfbdf
cmp al, 0xa
ja 0x4cfbdf
lea eax, [esp + 0x28]
mov edx, ebx
push eax
mov ecx, edi
call fcn.004ce070
add esp, 4
test eax, eax
je 0x4cfbdf
mov ecx, dword [esp + 0x28]
add eax, ebx
lea esi, [eax + ecx]
mov dword [esp + 0x24], esi
cmp esi, dword [esp + 0x10]
jae 0x4cfbdf
mov edx, dword [edi]
add edx, eax
mov al, byte [esp + 0x17]
cmp al, 7
je 0x4cf68f
cmp al, 0xa
je 0x4cf68f
xor eax, eax
jmp 0x4cf694
mov eax, 1
cmp dword [esp + 0x34], 0
je 0x4cf70c
test eax, eax
je 0x4cf70c
mov eax, dword [esp + 0x30]
cmp eax, ecx
jne 0x4cf72b
mov ecx, dword [esp + 0x1c]
mov esi, eax
sub esi, 4
jb 0x4cf6c7
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4cf6cc
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4cf6b6
cmp esi, 0xfffffffc
je 0x4cf701
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4cf6f9
cmp esi, 0xfffffffd
je 0x4cf701
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4cf6f9
cmp esi, 0xfffffffe
je 0x4cf701
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4cf6f9
cmp esi, 0xffffffff
je 0x4cf701
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4cf701
mov esi, dword [esp + 0x24]
xor eax, eax
jmp 0x4cf723
mov esi, dword [esp + 0x24]
mov eax, 1
jmp 0x4cf723
push eax
push ecx
mov ecx, dword [esp + 0x24]
push edx
push dword [esp + 0x40]
mov edx, dword [esp + 0x40]
call fcn.004cf1d0
add esp, 0x10
test eax, eax
jne 0x4cf846
mov eax, dword [edi]
mov ebx, esi
mov al, byte [eax + ebx]
and al, 0xf
cmp al, 0xc
ja 0x4cfbdf
lea eax, [esp + 0x28]
mov edx, ebx
push eax
mov ecx, edi
call fcn.004ce070
add esp, 4
test eax, eax
je 0x4cfbdf
add eax, dword [esp + 0x28]
add ebx, eax
mov eax, dword [esp + 0x10]
cmp ebx, eax
jb 0x4cf630
cmp ebx, eax
ja 0x4cfbdf
cmp byte [edi + 0x27], 3
jb 0x4cfdc8
push 0x38
lea eax, [esp + 0x74]
push 0
push eax
call fcn.00623f60
mov eax, dword [edi + 0x10]
lea ecx, [esp + 0x7c]
add esp, 0xc
mov dword [esp + 0x80], eax
cmp dword [esp + 0x34], 0
setne dl
push 0
push dword [esp + 0x34]
add dl, 9
call fcn.004cc910
mov al, byte [edi + 0x23]
lea edx, [esp + 0x40]
or al, byte [esp + 0x9b]
mov ecx, edi
mov byte [edi + 0x23], al
mov eax, dword [esp + 0x34]
add eax, dword [ebp + 8]
push eax
call fcn.004cf2c0
mov esi, eax
add esp, 0xc
mov dword [esp + 0x2c], esi
cmp esi, 0xfffffffd
jae 0x4cfa0e
cmp byte [edi + 0x23], 0
jne 0x4cfa0e
cmp dword [edi + 8], 0
lea esi, [edi + 8]
mov dword [esp + 0x10], esi
ja 0x4cf90b
mov eax, dword [edi]
mov edx, 0x64
mov dword [esp + 0x10], eax
mov eax, dword [edi + 4]
add eax, dword [esp + 0x3c]
add eax, dword [esp + 0x74]
add eax, dword [esp + 0x30]
cmp edx, eax
mov dword [edi], 0
push 0
lea ecx, [eax + 0x64]
cmovae ecx, edx
mov dword [esp + 0x28], ecx
push ecx
mov ecx, dword [edi + 0x10]
call fcn.00411a60
add esp, 8
test eax, eax
jne 0x4cf8ee
mov byte [edi + 0x23], 1
jmp 0x4cfa0a
mov eax, dword [edi]
mov al, byte [esi + eax]
and al, 0xf
cmp al, 0xc
ja 0x4cfbdf
lea eax, [esp + 0x28]
mov edx, esi
push eax
mov ecx, edi
call fcn.004ce070
add esp, 4
test eax, eax
je 0x4cfbdf
mov ecx, dword [esp + 0x28]
add ecx, esi
add ecx, eax
cmp ecx, dword [esp + 0x10]
ja 0x4cfbdf
mov eax, dword [esp + 0x2c]
mov edx, esi
add eax, dword [ebp + 8]
push ebx
push eax
mov ecx, edi
call fcn.004cf340
mov ebx, dword [edi + 0x28]
add esp, 8
mov dword [esp + 0x24], eax
test ebx, ebx
je 0x4cfdd9
mov eax, dword [edi + 8]
mov ecx, edi
mov esi, dword [edi + 4]
mov edx, dword [esp + 0x18]
mov dword [edi + 4], eax
lea eax, [esp + 0x10]
push eax
mov dword [esp + 0x14], 0
call fcn.004ce070
mov eax, dword [esp + 0x14]
add esp, 4
mov edx, dword [esp + 0x18]
add eax, ebx
mov ecx, edi
mov dword [edi + 4], esi
push eax
call fcn.004cc9e0
add esp, 4
add dword [edi + 0x28], eax
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [edi + 4]
mov dword [edi], eax
push dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
push dword [edi]
mov dword [esi], eax
call fcn.006239e0
add esp, 0xc
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x3c]
add esi, dword [esp + 0x74]
add esi, dword [esp + 0x30]
mov eax, esi
or eax, 0
je 0x4cf96c
mov edx, dword [edi + 4]
xor eax, eax
mov ecx, dword [esp + 0x10]
add edx, esi
adc eax, eax
test eax, eax
jb 0x4cf94c
ja 0x4cf935
cmp edx, dword [ecx]
jbe 0x4cf94c
mov edx, dword [edi + 4]
mov ecx, edi
lea edx, [esi + edx]
call fcn.004cc800
cmp byte [edi + 0x23], 0
jne 0x4cfa0a
mov ecx, dword [edi]
mov eax, dword [edi + 4]
sub eax, ebx
push eax
lea eax, [ecx + ebx]
push eax
lea eax, [ecx + esi]
add eax, ebx
push eax
call fcn.006239e0
add dword [edi + 4], esi
add esp, 0xc
add dword [edi + 0x28], esi
cmp byte [edi + 0x23], 0
jne 0x4cfa0a
push dword [esp + 0x74]
mov eax, dword [edi]
push dword [esp + 0x74]
add eax, ebx
push eax
call fcn.006239e0
mov esi, dword [esp + 0x80]
add esp, 0xc
mov eax, dword [edi]
add esi, ebx
mov ebx, dword [esp + 0x30]
add eax, esi
push ebx
push dword [esp + 0x20]
push eax
call fcn.006239e0
mov eax, dword [edi]
add esp, 0xc
add eax, esi
add eax, ebx
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push eax
call fcn.006239e0
mov ebx, dword [edi + 0x28]
add esp, 0xc
test ebx, ebx
je 0x4cfa0a
mov eax, dword [esp + 0x10]
mov ecx, edi
mov esi, dword [edi + 4]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x1c], 0
mov eax, dword [eax]
mov dword [edi + 4], eax
lea eax, [esp + 0x1c]
push eax
call fcn.004ce070
mov eax, dword [esp + 0x20]
add esp, 4
mov edx, dword [esp + 0x18]
add eax, ebx
mov ecx, edi
mov dword [edi + 4], esi
push eax
call fcn.004cc9e0
add esp, 4
add dword [edi + 0x28], eax
mov esi, dword [esp + 0x2c]
cmp byte [esp + 0x5c], 0
je 0x4cfa36
push dword [esp + 0x44]
call fcn.004143d0
add esp, 4
mov dword [esp + 0x44], 0
mov dword [esp + 0x4c], 0
mov byte [esp + 0x5c], 0
cmp dword [esp + 0x40], 0
je 0x4cfa66
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4cfa4e
mov ecx, dword [esp + 0x48]
call fcn.004115d0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
cmp byte [esp + 0x94], 0
je 0x4cfa97
push dword [esp + 0x7c]
call fcn.004143d0
add esp, 4
mov dword [esp + 0x7c], 0
mov dword [esp + 0x84], 0
mov byte [esp + 0x94], 0
cmp dword [esp + 0x78], 0
je 0x4cfab2
mov edx, dword [esp + 0x70]
test edx, edx
je 0x4cfab2
mov ecx, dword [esp + 0x80]
call fcn.004115d0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 0x5b
jne 0x4cfdd4
mov eax, dword [edi]
mov ecx, edx
mov al, byte [ecx + eax]
and al, 0xf
cmp al, 0xb
jne 0x4cfdc8
lea eax, [esp + 0x28]
mov ecx, edi
push eax
call fcn.004ce070
mov dword [esp + 0x28], eax
xor esi, esi
mov al, byte [ebx + 1]
add esp, 4
movzx ecx, al
lea edx, [esi + 1]
test byte [ecx + 0x693e60], 4
je 0x4cfb30
jmp 0x4cfb02
mov al, cl
mov cl, byte [edx + ebx + 1]
lea esi, [esi + esi*4]
inc edx
movsx eax, al
lea esi, [esi - 0x18]
lea esi, [eax + esi*2]
movzx eax, cl
test byte [eax + 0x693e60], 4
jne 0x4cfb00
mov dword [esp + 0x1c], edx
cmp edx, 2
jb 0x4cfb2d
cmp cl, 0x5d
je 0x4cfb9d
mov al, byte [ebx + 1]
cmp al, 0x23
jne 0x4cfdd4
mov edx, dword [esp + 0x18]
mov ecx, edi
call fcn.004cee00
cmp byte [ebx + 2], 0x2d
mov edx, 2
mov esi, eax
mov dword [esp + 0x1c], edx
jne 0x4cfb93
mov al, byte [ebx + 3]
movzx ecx, al
test byte [ecx + 0x693e60], 4
je 0x4cfb93
xor ecx, ecx
lea edx, [ecx + 3]
movsx eax, al
lea ecx, [ecx + ecx*4]
inc edx
lea ecx, [ecx - 0x18]
lea ecx, [eax + ecx*2]
movzx eax, byte [edx + ebx]
test byte [eax + 0x693e60], 4
mov al, byte [edx + ebx]
jne 0x4cfb68
mov dword [esp + 0x1c], edx
cmp ecx, esi
ja 0x4cfdc8
sub esi, ecx
cmp byte [edx + ebx], 0x5d
jne 0x4cfdd4
mov ebx, dword [esp + 0x24]
add ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
add eax, ebx
mov dword [esp + 0x24], eax
cmp ebx, eax
jae 0x4cfbdd
mov edx, ebx
test esi, esi
je 0x4cfbe9
lea eax, [esp + 0x28]
mov ecx, edi
push eax
dec esi
call fcn.004ce070
add esp, 4
test eax, eax
je 0x4cfbdf
add eax, dword [esp + 0x28]
add ebx, eax
mov eax, dword [esp + 0x24]
cmp ebx, eax
jb 0x4cfbb3
cmp ebx, eax
jbe 0x4cfbfa
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x1c]
inc ecx
push 0
add eax, ecx
jmp 0x4cf88a
test esi, esi
jne 0x4cfdc8
cmp byte [edi + 0x27], 3
jb 0x4cfdc8
mov ecx, dword [ebp + 8]
lea edx, [esp + 0x38]
mov eax, dword [esp + 0x1c]
inc ecx
add eax, ecx
mov ecx, edi
push eax
call fcn.004cf2c0
add esp, 4
mov dword [esp + 0x1c], eax
cmp eax, 0xfffffffd
jae 0x4cfd1f
cmp byte [edi + 0x23], 0
jne 0x4cfd1f
cmp dword [edi + 8], 0
lea esi, [edi + 8]
mov dword [esp + 0x10], esi
ja 0x4cfca5
mov eax, dword [edi]
mov edx, 0x64
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
add eax, dword [edi + 4]
cmp edx, eax
mov dword [edi], 0
push 0
lea ecx, [eax + 0x64]
cmovae ecx, edx
mov dword [esp + 0x28], ecx
push ecx
mov ecx, dword [edi + 0x10]
call fcn.00411a60
add esp, 8
test eax, eax
jne 0x4cfc88
mov byte [edi + 0x23], 1
jmp 0x4cfd1f
push dword [edi + 4]
mov dword [edi], eax
push dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
push dword [edi]
mov dword [esi], eax
call fcn.006239e0
add esp, 0xc
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x3c]
mov eax, esi
or eax, 0
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x24], ecx
je 0x4cfd08
mov edx, dword [edi + 4]
xor eax, eax
mov ecx, dword [esp + 0x10]
add edx, esi
adc eax, eax
test eax, eax
jb 0x4cfce2
ja 0x4cfccf
cmp edx, dword [ecx]
jbe 0x4cfce2
mov edx, dword [edi + 4]
mov ecx, edi
lea edx, [esi + edx]
call fcn.004cc800
cmp byte [edi + 0x23], 0
jne 0x4cfd1f
mov ecx, dword [edi]
mov eax, dword [edi + 4]
sub eax, ebx
push eax
lea eax, [ecx + ebx]
push eax
lea eax, [esi + ecx]
add eax, ebx
push eax
call fcn.006239e0
mov ecx, dword [esp + 0x30]
mov eax, esi
add dword [edi + 4], eax
add esp, 0xc
add dword [edi + 0x28], eax
test esi, esi
je 0x4cfd1f
test ecx, ecx
je 0x4cfd1f
mov eax, dword [edi]
push esi
push ecx
add eax, ebx
push eax
call fcn.006239e0
add esp, 0xc
cmp byte [esp + 0x5c], 0
je 0x4cfd47
push dword [esp + 0x44]
call fcn.004143d0
add esp, 4
mov dword [esp + 0x44], 0
mov dword [esp + 0x4c], 0
mov byte [esp + 0x5c], 0
cmp dword [esp + 0x40], 0
je 0x4cfd77
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4cfd5f
mov ecx, dword [esp + 0x48]
call fcn.004115d0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov ebx, dword [edi + 0x28]
test ebx, ebx
je 0x4cfdbd
mov eax, dword [edi + 8]
mov ecx, edi
mov esi, dword [edi + 4]
mov edx, dword [esp + 0x18]
mov dword [edi + 4], eax
lea eax, [esp + 0x10]
push eax
mov dword [esp + 0x14], 0
call fcn.004ce070
mov eax, dword [esp + 0x14]
add esp, 4
mov edx, dword [esp + 0x18]
add eax, ebx
mov ecx, edi
mov dword [edi + 4], esi
push eax
call fcn.004cc9e0
add esp, 4
add dword [edi + 0x28], eax
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffffe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffffd
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret