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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xac
mov edi, dword [esp + 0xcc]
mov eax, dword [esp + 0xc4]
mov ebp, dword [edi]
mov eax, dword [eax]
mov dword [edi], 0
mov edi, dword [esp + 0xc4]
cmp ebp, 4
mov dword [esp + 0x1c], eax
mov eax, 6
mov dword [edi], 0
mov edi, dword [esp + 0xdc]
mov dword [edi], 0
jbe 0x466a38
cmp dword [esp + 0xd4], 4
mov dword [esp + 0x44], 0
mov eax, 4
mov dword [esp + 0x40], 0
jbe 0x466a38
mov esi, dword [esp + 0xd0]
movzx edx, byte [esi]
cmp dl, 0xe0
ja 0x466a38
mov edi, dword [esi + 1]
mov ecx, edx
mov byte [esp + 0x28], dl
mov dword [esp + 4], 0
mov dword [esp + 0x20], edi
movzx edi, dl
mov edx, dword [esp + 0xe0]
lea ebx, [edi*8]
sub ebx, edi
mov dword [esp], edx
lea ebx, [edi + ebx*8]
shr bx, 9
lea eax, [ebx + ebx*8]
sub ecx, eax
movsx ax, bl
imul eax, eax, 0x67
movzx esi, cl
mov dword [esp + 0x24], esi
shr ax, 9
lea eax, [eax + eax*4]
sub ebx, eax
movzx ebx, bl
lea ecx, [esi + ebx]
mov esi, 0x300
shl esi, cl
add esi, 0x736
call dword [edx + 4]
mov edx, dword [esp + 0xe0]
lea eax, [esi + esi]
mov dword [esp + 0x40], 0
mov dword [esp + 4], eax
mov dword [esp], edx
call dword [edx]
test eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x84], esi
je 0x466e20
lea eax, [edi + edi*2]
movzx edx, byte [esp + 0x28]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x54], 0
lea eax, [eax + eax*8]
mov dword [esp + 0x7c], 1
mov dword [esp + 0x78], 0
mov dword [esp + 0x30], esi
mov dword [esp + 0x88], 0
lea eax, [edi + eax*4]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x80], 1
shr ax, 8
mov dword [esp + 0x20], 0
sub edx, eax
shr dl, 1
add eax, edx
shr al, 5
cmp edi, 0x1000
movzx eax, al
mov dword [esp + 0x38], eax
mov eax, 0x1000
cmovae eax, edi
xor edi, edi
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xcc]
mov dword [eax], 0
mov eax, dword [esp + 0xdc]
mov dword [eax], 0
mov eax, 1
test eax, eax
je 0x466af6
mov esi, esi
lea edi, [edi]
test ebp, ebp
mov eax, dword [esp + 0x88]
je 0x466d30
cmp eax, 4
ja 0x466e30
mov edx, dword [esp + 0xcc]
lea ecx, [eax + 1]
lea esi, [edi + 1]
mov dword [esp + 0x88], ecx
mov ebx, dword [edx]
mov edx, ebx
movzx ebx, byte [edi]
mov dword [esp + 0x28], edx
mov byte [esp + eax + 0x8c], bl
mov ebx, edx
mov edx, dword [esp + 0xcc]
add ebx, 1
mov dword [edx], ebx
mov ebx, ebp
sub ebx, 1
je 0x466e00
cmp ecx, 5
je 0x466e10
lea ebx, [eax + 2]
lea esi, [edi + 2]
mov dword [esp + 0x88], ebx
movzx edx, byte [edi + 1]
mov byte [esp + ecx + 0x8c], dl
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0xcc]
add ecx, 2
mov dword [edx], ecx
mov ecx, ebp
sub ecx, 2
je 0x466ea0
cmp ebx, 5
je 0x466df0
lea ecx, [eax + 3]
lea esi, [edi + 3]
mov dword [esp + 0x88], ecx
movzx edx, byte [edi + 2]
mov byte [esp + ebx + 0x8c], dl
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0xcc]
add ebx, 3
mov dword [edx], ebx
mov ebx, ebp
sub ebx, 3
je 0x466e00
cmp ecx, 5
je 0x466e10
add eax, 4
lea esi, [edi + 4]
mov dword [esp + 0x88], eax
movzx ebx, byte [edi + 3]
mov byte [esp + ecx + 0x8c], bl
mov ebx, dword [esp + 0x28]
lea ecx, [ebx + 4]
mov dword [edx], ecx
mov ecx, ebp
sub ecx, 4
je 0x466d24
cmp eax, 4
jne 0x466df0
mov dword [esp + 0x88], 5
movzx eax, byte [edi + 4]
lea esi, [edi + 5]
mov edx, ebx
add edx, 5
mov edi, esi
sub ebp, 5
mov byte [esp + 0x90], al
mov eax, dword [esp + 0xcc]
mov dword [eax], edx
jmp 0x466d3b
mov eax, dword [esp + 0xd8]
test eax, eax
jne 0x466ee5
mov eax, dword [esp + 0xdc]
mov edi, dword [esp + 0x20]
mov dword [eax], 2
mov eax, dword [esp + 0xc4]
mov dword [eax], edi
xor eax, eax
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0xe0]
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [eax + 4]
mov eax, dword [esp + 0x1c]
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4669f0
mov esi, dword [esp + 0x50]
test esi, esi
je 0x466f0c
mov ebx, dword [esp + 0xd8]
test ebx, ebx
je 0x4669ff
mov ecx, dword [esp + 0x80]
mov byte [esp + 0x28], 1
test ecx, ecx
jne 0x466b18
mov edx, dword [esp + 0x88]
test edx, edx
jne 0x466c1e
cmp ebp, 0x13
jbe 0x466cf0
cmp byte [esp + 0x28], 0
lea eax, [esp + 0x30]
lea ecx, [edi + ebp - 0x14]
mov dword [esp + 0x24], eax
jne 0x466cf0
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x48], edi
call fcn.00463af0
test eax, eax
jne 0x466e80
mov eax, dword [esp + 0x48]
mov edx, eax
sub edx, edi
mov edi, dword [esp + 0xcc]
sub ebp, edx
add dword [edi], edx
mov edi, eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x54]
cmp eax, 0x112
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
je 0x466e40
mov eax, dword [esp + 0x7c]
test eax, eax
jne 0x4668b0
mov ecx, dword [esp + 0x20]
cmp dword [esp + 0x1c], ecx
jbe 0x466a43
mov ecx, dword [esp + 0x80]
mov byte [esp + 0x28], 0
test ecx, ecx
je 0x466a76
mov ecx, dword [esp + 0x34]
add ecx, dword [esp + 0x30]
mov edx, 0x300
mov esi, dword [esp + 0x40]
shl edx, cl
mov eax, edx
add eax, 0x736
mov dword [esp + 0x24], eax
je 0x466bdc
mov eax, esi
add edx, 0x735
shr eax, 1
and eax, 1
cmp edx, 4
mov edx, 0
jbe 0x466b8f
test eax, eax
je 0x466b61
mov edx, 0x400
mov word [esi], dx
mov edx, eax
mov ebx, dword [esp + 0x24]
lea ecx, [esi + eax*2]
sub ebx, eax
xor eax, eax
mov dword [esp + 0x2c], ebx
shr ebx, 1
mov dword [ecx + eax*4], 0x4000400
add eax, 1
cmp eax, ebx
jb 0x466b72
mov ecx, dword [esp + 0x2c]
mov eax, ecx
and eax, 0xfffffffe
add edx, eax
cmp eax, ecx
je 0x466bdc
mov ebx, 0x400
lea eax, [edx + 1]
mov word [esi + edx*2], bx
mov ebx, dword [esp + 0x24]
cmp ebx, eax
jbe 0x466bdc
mov ecx, 0x400
mov word [esi + eax*2], cx
lea eax, [edx + 2]
cmp ebx, eax
jbe 0x466bdc
mov ecx, 0x400
mov word [esi + eax*2], cx
lea eax, [edx + 3]
cmp ebx, eax
jbe 0x466bdc
add edx, 4
mov ecx, 0x400
cmp ebx, edx
mov word [esi + eax*2], cx
jbe 0x466bdc
mov ecx, 0x400
mov word [esi + edx*2], cx
mov edx, dword [esp + 0x88]
mov dword [esp + 0x74], 1
mov dword [esp + 0x70], 1
mov dword [esp + 0x6c], 1
mov dword [esp + 0x68], 1
mov dword [esp + 0x64], 0
test edx, edx
mov dword [esp + 0x80], 0
je 0x466a85
cmp edx, 0x13
setbe byte [esp + 0x24]
test ebp, ebp
movzx eax, byte [esp + 0x24]
je 0x466de0
mov ecx, edi
xor ebx, ebx
mov esi, edx
sub ecx, edx
test al, al
je 0x466de0
add esi, 1
add ebx, 1
movzx eax, byte [ecx + esi - 1]
cmp esi, 0x13
mov byte [esp + esi + 0x8b], al
setbe al
cmp ebp, ebx
jbe 0x466c63
test al, al
jne 0x466c43
test al, al
mov dword [esp + 0x88], esi
jne 0x466d80
lea eax, [esp + 0x30]
cmp byte [esp + 0x28], 0
mov dword [esp + 0x24], eax
lea eax, [esp + 0x8c]
mov dword [esp + 0x2c], eax
jne 0x466d80
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
mov ecx, eax
mov eax, dword [esp + 0x24]
call fcn.00463af0
test eax, eax
jne 0x466e80
mov eax, dword [esp + 0x48]
sub eax, dword [esp + 0x2c]
cmp eax, esi
ja 0x466ed6
sub esi, eax
cmp esi, ebx
ja 0x466ed6
mov eax, dword [esp + 0xcc]
sub ebx, esi
mov dword [esp + 0x88], 0
add edi, ebx
sub ebp, ebx
add dword [eax], ebx
jmp 0x466acf
lea eax, [esp + 0x30]
mov ecx, ebp
mov edx, edi
mov dword [esp + 0x24], eax
call fcn.004633d0
test eax, eax
je 0x466f27
cmp eax, 2
je 0x466d19
cmp byte [esp + 0x28], 0
jne 0x466db6
mov ecx, edi
mov eax, dword [esp + 0x24]
jmp 0x466aa5
mov edi, esi
lea esi, [esi]
lea edi, [edi]
cmp eax, 4
jbe 0x466eb2
xor ebp, ebp
cmp byte [esp + 0x8c], 0
jne 0x466f05
mov eax, dword [esp + 0x8d]
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x7c], 0
mov dword [esp + 0x88], 0
bswap eax
mov dword [esp + 0x50], eax
jmp 0x466af6
lea eax, [esp + 0x30]
lea edx, [esp + 0x8c]
mov ecx, esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], edx
call fcn.004633d0
test eax, eax
je 0x466ea9
cmp eax, 2
je 0x466c90
cmp byte [esp + 0x28], 0
je 0x466c90
mov eax, dword [esp + 0xdc]
mov edi, dword [esp + 0x20]
mov dword [eax], 2
mov eax, dword [esp + 0xc4]
mov dword [eax], edi
mov eax, 1
jmp 0x466a1b
mov esi, edx
xor ebx, ebx
jmp 0x466c63
mov ebp, ecx
mov edi, esi
jmp 0x466d3b
mov eax, ecx
mov edi, esi
jmp 0x466d30
mov ebp, ebx
mov edi, esi
jmp 0x466d3b
mov eax, 2
jmp 0x466a38
mov esi, edi
mov edi, esi
jmp 0x466d3b
mov edx, dword [esp + 0x50]
test edx, edx
je 0x466e5b
mov eax, dword [esp + 0xc4]
mov dword [eax], ecx
mov eax, 1
jmp 0x466a1b
mov eax, dword [esp + 0xdc]
mov dword [eax], 1
mov eax, dword [esp + 0xc4]
mov dword [eax], ecx
jmp 0x466a19
mov eax, dword [esp + 0x54]
mov dword [esp + 0x20], eax
mov eax, 1
mov edi, dword [esp + 0xc4]
mov esi, dword [esp + 0x20]
mov dword [edi], esi
jmp 0x466a1b
mov eax, ebx
mov edi, esi
jmp 0x466d30
mov eax, dword [esp + 0xcc]
add dword [eax], ebx
mov eax, dword [esp + 0xdc]
mov edi, dword [esp + 0x20]
mov dword [eax], 3
mov eax, dword [esp + 0xc4]
mov dword [eax], edi
mov eax, 6
jmp 0x466a1b
mov eax, dword [esp + 0x54]
mov dword [esp + 0x20], eax
mov eax, 0xb
jmp 0x466e8d
mov eax, dword [esp + 0xdc]
mov dword [eax], 2
mov eax, dword [esp + 0xc4]
mov dword [eax], ecx
mov eax, 1
jmp 0x466a1b
mov eax, 1
jmp 0x466e8d
mov eax, dword [esp + 0xdc]
mov dword [eax], 4
mov eax, dword [esp + 0xc4]
mov dword [eax], ecx
jmp 0x466a19
lea eax, [esp + 0x8c]
mov dword [esp + 8], ebp
mov dword [esp + 4], edi
mov dword [esp + 0xc8], edi
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x88], ebp
add dword [eax], ebp
jmp 0x466eb2