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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x78]
mov eax, dword [ebp + 0x44]
test ecx, ecx
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x40]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x34], eax
je 0x4caf12
mov eax, dword [ebp]
cmp eax, 1
je 0x4caf40
jb 0x4cb110
cmp eax, 2
jne 0x4caf33
xor esi, esi
mov ecx, dword [esp + 0x74]
test ecx, ecx
je 0x4cb4b0
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x78]
jmp 0x4caeb8
lea edx, [eax - 1]
mov dword [ebp + 0x5c], edx
mov edx, dword [ebp + 0x58]
movzx eax, byte [edx + eax - 1]
mov byte [ecx + esi], al
add esi, 1
cmp esi, ebx
je 0x4caf12
mov eax, dword [ebp + 0x5c]
test eax, eax
jne 0x4caea0
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebp + 0x30]
jae 0x4caef2
mov ebx, dword [ebp + 0x54]
cmp edx, ebx
jae 0x4cb43a
movzx edi, word [esp + 0x2c]
mov eax, dword [ebp + 0x4c]
movzx ecx, byte [esp + 0x28]
mov word [eax + edx*2], di
mov eax, dword [ebp + 0x50]
mov byte [eax + edx], cl
mov eax, dword [ebp + 0x38]
lea edx, [eax + 1]
mov dword [ebp + 0x38], edx
mov eax, dword [esp + 0x34]
mov dword [ebp], 1
mov dword [esp + 0x2c], eax
jmp 0x4caf45
mov esi, dword [esp + 0x3c]
mov dword [ebp], 3
mov dword [esp + 0x78], esi
mov eax, dword [esp + 0x2c]
mov dword [ebp + 0x40], eax
mov eax, dword [esp + 0x28]
mov dword [ebp + 0x44], eax
mov eax, dword [esp + 0x34]
mov dword [ebp + 0x48], eax
mov eax, dword [esp + 0x78]
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x78], 0
jmp 0x4caf12
mov edx, dword [ebp + 0x38]
xor esi, esi
mov ecx, dword [ebp + 0x34]
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x24], ecx
lea ecx, [ebp + 8]
mov dword [esp + 0x30], eax
movzx eax, byte [ebp + 0x20]
mov dword [esp + 0x38], ecx
jmp 0x4cb02e
mov ecx, dword [esp + 0x30]
cmp dword [ebp + 0x1c], ecx
jle 0x4cb0d0
cmp dword [ebp + 0x3c], edx
jbe 0x4cb0d5
mov eax, ecx
sar ecx, 3
mov edi, eax
lea esi, [ebp + ecx + 8]
and edi, 7
mov edx, edi
mov dword [esp + 0x20], edi
mov edi, 8
sub edi, edx
mov edx, edi
add eax, ebx
sub ebx, edi
lea edi, [esi + 1]
mov dword [esp + 0x30], eax
mov dword [ebp + 0x18], eax
movzx eax, byte [ebp + ecx + 8]
movzx ecx, byte [esp + 0x20]
sar eax, cl
cmp ebx, 7
jbe 0x4cafdb
lea edi, [esi + 2]
movzx esi, byte [esi + 1]
mov ecx, edx
mov edx, 0x10
sub edx, dword [esp + 0x20]
sub ebx, 8
shl esi, cl
or eax, esi
test ebx, ebx
je 0x4caff6
mov ecx, ebx
mov esi, 1
movzx ebx, byte [edi]
shl esi, cl
lea ecx, [esi - 1]
and ebx, ecx
mov ecx, edx
shl ebx, cl
or eax, ebx
cmp eax, 0x100
jne 0x4cb135
mov eax, dword [ebp + 0x2c]
test eax, eax
je 0x4cb270
mov dword [ebp + 0x38], 0
mov byte [ebp + 0x20], 1
mov eax, 1
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
xor edx, edx
test al, al
mov ebx, dword [esp + 0x24]
je 0x4caf70
cmp edx, dword [ebp + 0x3c]
jae 0x4cb0d5
mov dword [ebp + 0x34], 9
mov dword [ebp + 0x3c], 0x100
mov ebx, 9
mov byte [ebp + 0x20], 0
mov eax, dword [ebp + 4]
test eax, eax
mov dword [esp + 0x20], eax
jne 0x4caf03
mov esi, dword [esp + 0x38]
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov eax, dword [ebp + 0xa4]
mov dword [esp], eax
call sym._FT_Stream_TryRead
mov edi, dword [ebp + 0x34]
xor edx, edx
add dword [ebp + 0x24], eax
mov dword [ebp + 0x18], 0
cmp eax, edi
mov dword [esp + 0x24], edi
setb dl
mov dword [ebp + 4], edx
mov edx, 1
sub edx, edi
test eax, eax
lea edx, [edx + eax*8]
mov dword [ebp + 0x1c], edx
je 0x4caf03
xor ecx, ecx
mov edi, 8
mov edx, 8
xor eax, eax
jmp 0x4cafa3
cmp edx, dword [ebp + 0x3c]
jb 0x4cb05a
mov ebx, dword [esp + 0x24]
add ebx, 1
cmp ebx, dword [ebp + 0x28]
mov dword [ebp + 0x34], ebx
jae 0x4cb103
mov edx, 1
mov ecx, ebx
shl edx, cl
sub edx, 0x100
test al, al
mov dword [ebp + 0x3c], edx
je 0x4cb05a
jmp 0x4cb043
mov esi, dword [ebp + 0x30]
lea edx, [esi + 1]
jmp 0x4cb0f3
mov dword [esp + 4], 2
mov eax, dword [ebp + 0xa4]
mov dword [esp], eax
call sym._FT_Stream_Seek
test eax, eax
je 0x4cb290
xor esi, esi
jmp 0x4caf07
cmp eax, 0xff
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x34], eax
jg 0x4cb173
mov dword [esp + 0x28], eax
mov edx, dword [ebp + 0x5c]
mov eax, dword [ebp + 0x60]
cmp edx, eax
jae 0x4cb3b5
mov eax, dword [ebp + 0x58]
lea ecx, [edx + 1]
mov dword [ebp + 0x5c], ecx
movzx ecx, byte [esp + 0x28]
mov byte [eax + edx], cl
mov dword [ebp], 2
jmp 0x4cae89
sub eax, 0x100
cmp eax, dword [ebp + 0x38]
jae 0x4cb360
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], eax
mov ecx, dword [ebp + 0x4c]
test ecx, ecx
je 0x4cb607
lea eax, [ebp + 0x64]
mov dword [esp + 0x38], esi
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x24], eax
jmp 0x4cb1db
mov eax, dword [ebp + 0x58]
lea edx, [ecx + 1]
mov dword [ebp + 0x5c], edx
mov edx, dword [ebp + 0x50]
movzx edx, byte [edx + ebx - 0x100]
mov byte [eax + ecx], dl
mov eax, dword [ebp + 0x4c]
movzx ebx, word [eax + ebx*2 - 0x200]
cmp ebx, 0xff
jbe 0x4cb501
test eax, eax
je 0x4cb4f0
mov ecx, dword [ebp + 0x5c]
mov eax, dword [ebp + 0x60]
cmp ecx, eax
jb 0x4cb1a5
mov edx, eax
mov ecx, dword [ebp + 0xa8]
shr edx, 1
lea esi, [eax + edx + 4]
mov edx, dword [ebp + 0x58]
cmp edx, dword [esp + 0x24]
je 0x4cb520
cmp esi, 0x10000
jbe 0x4cb4e0
cmp eax, 0x10000
je 0x4cb4f0
mov dword [esp + 0x20], eax
mov edi, 0x10000
mov esi, 0x10000
lea eax, [esp + 0x4c]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
mov dword [esp], ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 8], eax
call sym._ft_mem_realloc
mov edx, dword [esp + 0x4c]
mov dword [ebp + 0x58], eax
test edx, edx
jne 0x4cb4f0
mov dword [ebp + 0x60], esi
mov ecx, dword [ebp + 0x5c]
jmp 0x4cb1a8
mov eax, dword [ebp + 0x38]
mov esi, dword [esp + 0x3c]
test eax, eax
jne 0x4cb3a0
mov dword [esp + 0x34], 0x100
jmp 0x4cb366
lea eax, [esp + 0x4c]
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xa4]
mov dword [esp], eax
call sym._FT_Stream_TryRead
cmp eax, 1
jne 0x4cb12e
movzx ebx, byte [esp + 0x4c]
mov ecx, ebx
and ebx, 0xffffff80
and ecx, 0x1f
shl eax, cl
movzx edx, cl
cmp cl, 0x10
mov dword [ebp + 0x28], edx
movzx edx, bl
mov ebx, eax
lea eax, [eax - 0x100]
mov dword [ebp + 0x2c], edx
mov dword [ebp + 0x30], eax
ja 0x4cb12e
xor eax, eax
test edx, edx
mov edx, 0x100
setne al
cmp cl, 9
mov dword [ebp + 0x34], 9
mov dword [ebp + 0x38], eax
lea eax, [ebx - 0xff]
cmova eax, edx
mov dword [ebp + 0x3c], eax
mov eax, ebp
call sym._ft_lzwstate_get_code
cmp eax, 0xff
ja 0x4cb5d8
mov edx, dword [esp + 0x74]
test edx, edx
je 0x4cb32b
mov esi, dword [esp + 0x74]
mov byte [esi], al
cmp dword [esp + 0x78], 1
jbe 0x4cb614
mov dword [ebp], 1
mov edx, dword [ebp + 0x38]
mov esi, 1
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], 0
jmp 0x4caf45
ja 0x4caf07
mov edx, dword [ebp + 0x5c]
mov eax, dword [ebp + 0x60]
cmp edx, eax
jae 0x4cb555
mov ecx, dword [ebp + 0x58]
lea eax, [edx + 1]
cmp dword [esp + 0x2c], 0xff
mov dword [ebp + 0x5c], eax
movzx eax, byte [esp + 0x28]
mov byte [ecx + edx], al
ja 0x4cb651
mov eax, dword [esp + 0x2c]
jmp 0x4cb144
mov dword [esp + 0x30], 0x100
mov dword [esp + 0x34], 0x100
jmp 0x4cb189
mov edi, dword [ebp + 0xa8]
mov edx, eax
shr edx, 1
lea ebx, [eax + edx + 4]
lea edx, [ebp + 0x64]
mov dword [esp + 0x20], edi
mov edi, dword [ebp + 0x58]
cmp edi, edx
je 0x4cb5e7
cmp ebx, 0x10000
mov edx, ebx
mov ecx, eax
jbe 0x4cb3f8
cmp eax, 0x10000
je 0x4caf07
mov ecx, eax
mov edx, 0x10000
mov ebx, 0x10000
lea eax, [esp + 0x4c]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], 1
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call sym._ft_mem_realloc
mov edi, dword [esp + 0x4c]
mov dword [ebp + 0x58], eax
test edi, edi
jne 0x4caf07
mov dword [ebp + 0x60], ebx
mov edx, dword [ebp + 0x5c]
jmp 0x4cb159
test ebx, ebx
mov ecx, dword [ebp + 0xa8]
je 0x4cb546
mov eax, ebx
shr eax, 2
lea edi, [eax + ebx]
mov edx, edi
lea eax, [esp + 0x4c]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x4c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ebx
mov dword [esp + 4], 3
mov dword [esp], ecx
mov dword [esp + 0x10], eax
call sym._ft_mem_realloc
mov edx, dword [esp + 0x4c]
mov dword [ebp + 0x4c], eax
test edx, edx
jne 0x4caf07
lea edx, [eax + edi*2]
lea eax, [eax + ebx*2]
mov dword [ebp + 0x50], edx
mov dword [esp], edx
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
call sym._memmove
mov dword [ebp + 0x54], edi
mov edx, dword [ebp + 0x38]
jmp 0x4caed2
mov edx, dword [esp + 0x78]
mov eax, dword [ebp + 0x5c]
jmp 0x4cb4d1
add esi, 1
sub eax, 1
cmp esi, edx
mov dword [ebp + 0x5c], eax
je 0x4caf12
test eax, eax
jne 0x4cb4c0
jmp 0x4caebf
mov edi, esi
mov dword [esp + 0x20], eax
jmp 0x4cb225
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x34], eax
jmp 0x4caf07
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x34], eax
jmp 0x4cb148
cmp esi, 0x10000
mov eax, 0x10000
mov dword [ebp + 0x58], 0
cmova esi, eax
mov dword [esp + 0x20], 0
xor edx, edx
mov edi, esi
jmp 0x4cb225
mov edx, 0x200
mov edi, 0x200
jmp 0x4cb452
mov edi, dword [ebp + 0xa8]
mov edx, eax
shr edx, 1
lea ebx, [eax + edx + 4]
lea edx, [ebp + 0x64]
mov dword [esp + 0x20], edi
mov edi, dword [ebp + 0x58]
cmp edi, edx
je 0x4cb631
cmp ebx, 0x10000
mov ecx, ebx
jbe 0x4cb594
cmp eax, 0x10000
je 0x4caf07
mov ecx, 0x10000
mov ebx, 0x10000
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x4c]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 4], 1
mov dword [esp], eax
call sym._ft_mem_realloc
mov edi, dword [esp + 0x4c]
mov dword [ebp + 0x58], eax
test edi, edi
jne 0x4caf07
mov dword [ebp + 0x60], ebx
mov edx, dword [ebp + 0x5c]
mov ecx, eax
jmp 0x4cb377
mov dword [esp + 0x34], 0
xor esi, esi
jmp 0x4caf07
cmp ebx, 0x10000
mov eax, 0x10000
mov dword [ebp + 0x58], 0
cmova ebx, eax
xor ecx, ecx
xor edi, edi
mov edx, ebx
jmp 0x4cb3f8
mov eax, dword [esp + 0x30]
mov dword [esp + 0x34], eax
jmp 0x4caf07
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x78], 1
jmp 0x4caf12
cmp ebx, 0x10000
mov eax, 0x10000
mov dword [ebp + 0x58], 0
cmova ebx, eax
xor edi, edi
xor eax, eax
mov ecx, ebx
jmp 0x4cb594
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x34], eax
jmp 0x4cb189