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

Disassembly:
push ebp
push edi
push esi
push ebx
xor ebx, ebx
sub esp, 0x5c
mov eax, dword [esp + 0x70]
mov ebp, dword [esp + 0x78]
mov edi, dword [eax + 0x10]
movzx eax, byte [edi + 6]
movzx edx, byte [edi + 8]
mov dword [esp + 0x24], edi
shl eax, 0x18
shl edx, 8
mov esi, eax
movzx eax, byte [edi + 7]
shl eax, 0x10
or eax, esi
movzx esi, byte [edi + 9]
or esi, eax
or esi, edx
jmp 0x4a1077
cmp eax, ebp
jae 0x4a10ef
lea ebx, [edi + 1]
cmp esi, ebx
jbe 0x4a1320
lea edi, [ebx + esi]
shr edi, 1
lea eax, [edi + edi*4]
lea edx, [edi + eax*2 + 0xa]
add edx, dword [esp + 0x24]
movzx eax, byte [edx]
add edx, 3
shl eax, 0x10
mov ecx, eax
movzx eax, byte [edx - 2]
shl eax, 8
or eax, ecx
movzx ecx, byte [edx - 1]
or eax, ecx
cmp ebp, eax
jae 0x4a1070
cmp ebx, edi
jae 0x4a1320
lea ecx, [edi + ebx]
shr ecx, 1
lea eax, [ecx + ecx*4]
lea edx, [ecx + eax*2 + 0xa]
add edx, dword [esp + 0x24]
movzx eax, byte [edx]
shl eax, 0x10
mov esi, eax
movzx eax, byte [edx + 1]
shl eax, 8
or eax, esi
movzx esi, byte [edx + 2]
or eax, esi
cmp ebp, eax
jb 0x4a1313
add edx, 3
cmp eax, ebp
mov esi, edi
mov edi, ecx
jb 0x4a1074
test edx, edx
mov ecx, edx
mov edi, dword [esp + 0x24]
je 0x4a1320
movzx eax, byte [edx]
movzx ebx, byte [ecx + 2]
shl eax, 0x18
shl ebx, 8
mov edx, eax
movzx eax, byte [ecx + 1]
shl eax, 0x10
or eax, edx
movzx edx, byte [ecx + 3]
or eax, edx
movzx edx, byte [ecx + 4]
or eax, ebx
mov ebx, edx
movzx edx, byte [ecx + 5]
shl ebx, 0x18
shl edx, 0x10
or edx, ebx
movzx ebx, byte [ecx + 7]
movzx ecx, byte [ecx + 6]
or edx, ebx
shl ecx, 8
or edx, ecx
mov ebx, edx
or ebx, eax
je 0x4a1320
test eax, eax
je 0x4a1389
test edx, edx
je 0x4a13c1
add edx, edi
add edi, eax
movzx eax, byte [edx]
movzx ebx, byte [edi + 3]
shl eax, 0x18
mov ecx, eax
movzx eax, byte [edx + 1]
shl eax, 0x10
or eax, ecx
movzx ecx, byte [edx + 3]
or eax, ecx
movzx ecx, byte [edx + 2]
shl ecx, 8
or eax, ecx
mov dword [esp + 0x38], eax
movzx eax, byte [edi]
shl eax, 0x18
mov ecx, eax
movzx eax, byte [edi + 1]
shl eax, 0x10
or eax, ecx
movzx ecx, byte [edi + 2]
or ebx, eax
lea eax, [edi + 7]
shl ecx, 8
or ebx, ecx
mov dword [esp + 0x3c], ebx
je 0x4a13a0
mov ecx, ebx
xor ebx, ebx
movzx esi, byte [eax]
add eax, 4
sub ecx, 1
lea ebx, [ebx + esi + 1]
jne 0x4a11b1
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4a14c5
test ebx, ebx
je 0x4a13ac
mov eax, dword [esp + 0x38]
mov dword [esp + 0x4c], 0
lea ebx, [eax + ebx + 1]
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 0x1c]
cmp ebx, eax
ja 0x4a132a
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 0x20]
movzx ecx, byte [edi + 4]
movzx esi, byte [edx + 4]
mov dword [esp + 0x2c], 1
mov dword [esp + 0x28], 1
mov ebx, ecx
movzx ecx, byte [edi + 5]
shl esi, 0x10
shl ebx, 0x10
mov ebp, esi
movzx esi, byte [edx + 5]
shl ecx, 8
or ecx, ebx
movzx ebx, byte [edi + 6]
shl esi, 8
or esi, ebp
movzx ebp, byte [edx + 6]
or ecx, ebx
lea ebx, [edi + 8]
or esi, ebp
mov dword [esp + 0x34], ebx
movzx ebx, byte [edi + 7]
lea edi, [edx + 9]
mov dword [esp + 0x24], esi
xor edx, edx
lea esi, [ebx + ecx]
mov dword [esp + 0x30], esi
mov ebp, esi
mov esi, esi
lea edi, [edi]
cmp dword [esp + 0x24], ebp
jbe 0x4a12c9
xor esi, esi
nop
lea esi, [esi]
lea ebp, [esi + ecx]
add esi, 1
add edx, 1
cmp ebx, esi
mov dword [eax + edx*4 - 4], ebp
jae 0x4a1270
add dword [esp + 0x28], 1
mov ebx, dword [esp + 0x28]
cmp ebx, dword [esp + 0x3c]
ja 0x4a13d9
mov esi, dword [esp + 0x34]
movzx ecx, byte [esi]
add esi, 4
mov ebx, ecx
movzx ecx, byte [esi - 3]
shl ebx, 0x10
shl ecx, 8
or ecx, ebx
movzx ebx, byte [esi - 2]
or ecx, ebx
movzx ebx, byte [esi - 1]
mov dword [esp + 0x34], esi
lea esi, [ebx + ecx]
mov ebp, esi
cmp dword [esp + 0x24], ebp
mov dword [esp + 0x30], esi
ja 0x4a1266
cmp ecx, dword [esp + 0x24]
jbe 0x4a12d9
mov esi, dword [esp + 0x24]
mov dword [eax + edx*4], esi
add edx, 1
add dword [esp + 0x2c], 1
mov esi, dword [esp + 0x2c]
cmp dword [esp + 0x38], esi
jb 0x4a144a
movzx esi, byte [edi]
add edi, 5
shl esi, 0x10
mov ebp, esi
movzx esi, byte [edi - 4]
shl esi, 8
or esi, ebp
movzx ebp, byte [edi - 3]
or esi, ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x24], esi
jmp 0x4a1260
mov edi, ecx
cmp ebx, edi
jb 0x4a10b5
lea esi, [esi]
xor eax, eax
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x74]
mov dword [ecx + 0x24], edx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x70]
mov ecx, dword [ecx + 0x20]
mov dword [esp], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], 4
mov dword [esp + 0x10], ecx
call sym._ft_mem_realloc
mov edx, dword [esp + 0x4c]
mov ecx, eax
mov eax, dword [esp + 0x70]
mov dword [eax + 0x20], ecx
xor eax, eax
test edx, edx
jne 0x4a1322
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x24]
mov dword [eax + 0x1c], ebx
mov eax, ecx
jmp 0x4a11fa
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
add edx, edi
call sym._tt_cmap14_get_nondef_chars
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4a14c5
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
call sym._tt_cmap14_get_nondef_chars
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
lea edx, [edi + eax]
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
call sym._tt_cmap14_get_def_chars
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x38], ecx
jb 0x4a143b
lea ebx, [edx + 1]
mov ebp, ecx
lea ecx, [edx*4]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x24]
mov dword [eax + edx*4], ebx
mov ebx, dword [esp + 0x38]
cmp ebx, ebp
jbe 0x4a14dc
mov edx, ebx
lea esi, [eax + ecx + 4]
sub edx, ebp
lea ebp, [edx + edx*4]
add ebp, edi
movzx ecx, byte [edi]
add edi, 5
add esi, 4
mov ebx, ecx
movzx ecx, byte [edi - 4]
shl ebx, 0x10
shl ecx, 8
or ecx, ebx
movzx ebx, byte [edi - 3]
or ecx, ebx
mov dword [esi - 4], ecx
cmp edi, ebp
jne 0x4a1413
add edx, dword [esp + 0x28]
mov dword [eax + edx*4], 0
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, dword [esp + 0x28]
cmp dword [esp + 0x3c], esi
jb 0x4a143b
xor esi, esi
lea esi, [esi]
lea edi, [edi]
lea edi, [esi + ecx]
add esi, 1
add edx, 1
cmp esi, ebx
mov dword [eax + edx*4 - 4], edi
jbe 0x4a1460
mov ebx, dword [esp + 0x28]
cmp dword [esp + 0x3c], ebx
jbe 0x4a143b
mov ebp, dword [esp + 0x34]
nop
movzx esi, byte [ebp]
movzx ecx, byte [ebp + 1]
add ebp, 4
shl ecx, 8
shl esi, 0x10
or esi, ecx
movzx ecx, byte [ebp - 2]
movzx edi, byte [ebp - 1]
or esi, ecx
xor ecx, ecx
nop
lea ebx, [ecx + esi]
add ecx, 1
add edx, 1
cmp edi, ecx
mov dword [eax + edx*4 - 4], ebx
jae 0x4a14a0
add dword [esp + 0x28], 1
mov edi, dword [esp + 0x28]
cmp edi, dword [esp + 0x3c]
jne 0x4a1480
jmp 0x4a143b
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov edx, edi
call sym._tt_cmap14_get_def_chars
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esp + 0x28]
jmp 0x4a143b