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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x9c
mov ebp, dword [esp + 0xb4]
mov dword [esp + 0x58], 0
mov eax, dword [ebp + 0x64]
mov dword [esp + 4], 0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
call sym._FT_Stream_Seek
test eax, eax
mov dword [esp + 0x58], eax
je 0x471370
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [esp + 0x5c]
mov dword [esp + 4], 0x2203c
mov dword [esp + 0x60], 1
mov dword [esp + 0x64], 1
mov dword [esp + 0x68], 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x6c], 8
mov dword [esp + 0x5c], 0
mov dword [esp], eax
call sym._ft_mem_alloc
mov edi, eax
mov eax, dword [esp + 0x5c]
test eax, eax
jne 0x471540
lea eax, [esp + 0x60]
mov esi, dword [esp + 0x20]
mov dword [edi + 0x22028], 0
mov dword [edi + 0x2202c], 0
mov dword [edi + 0x22030], 0
mov dword [edi + 0x24], eax
mov eax, 0x7fff
mov word [edi + 0xc], ax
lea eax, [edi + 0x22028]
mov dword [edi + 0x22038], esi
mov dword [edi + 0x22034], esi
lea esi, [esp + 0x80]
mov dword [esp + 0x80], 0
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x40], esi
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x400
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], eax
mov dword [esp + 0x30], eax
call sym._ft_mem_realloc
mov ecx, eax
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x4717e1
xor eax, eax
mov dword [esp + 0x28], 0x400
mov dword [esp + 0xb4], ebp
mov ebp, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x70], sym.__bdf_parse_start
mov dword [esp + 0x48], edi
mov byte [ecx], 0
xor esi, esi
mov dword [esp + 0x24], 0x100
mov dword [esp + 0x34], 1
mov edi, ecx
sub eax, esi
mov dword [esp + 8], eax
lea eax, [edi + esi]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
call sym._FT_Stream_TryRead
lea ecx, [esi + eax]
mov dword [esp + 0x3c], eax
cmp ebp, ecx
jl 0x4716a0
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4717d4
test ebp, ebp
jne 0x471960
cmp dword [esp + 0x28], 0xffff
ja 0x472245
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], edi
mov dword [esp + 4], 1
lea ebx, [eax + eax]
mov esi, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call sym._ft_mem_realloc
mov edi, eax
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x4717d4
mov dword [esp + 0x28], ebx
mov eax, ebx
jmp 0x4714a5
test edi, edi
je 0x471982
lea eax, [edi + 0x22028]
mov dword [esp + 0x24], 0
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x22034]
test eax, eax
je 0x471595
mov edx, dword [edi + 0x22028]
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._ft_mem_free
mov eax, dword [esp + 0x38]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov eax, dword [esp + 0x20]
mov dword [esp + 4], edi
mov dword [esp], eax
call sym._ft_mem_free
mov eax, dword [esp + 0x5c]
cmp al, 0xb0
mov dword [esp + 0x58], eax
je 0x47198e
test eax, eax
jne 0x47135f
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0x24]
test edx, edx
mov dword [ebp + 0x8c], eax
jle 0x471ab6
mov ebx, dword [ebp + 0x64]
call sym._bdf_free_font
mov eax, dword [ebp + 0x90]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._ft_mem_free
mov eax, dword [ebp + 0x84]
mov dword [ebp + 0x90], 0
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._ft_mem_free
mov eax, dword [ebp + 0x88]
mov dword [ebp + 0x84], 0
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._ft_mem_free
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x88], 0
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._ft_mem_free
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x14], 0
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._ft_mem_free
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x18], 0
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._ft_mem_free
mov eax, dword [ebp + 0x8c]
mov dword [ebp + 0x20], 0
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._ft_mem_free
mov dword [ebp + 0x8c], 0
add esp, 0x9c
mov eax, 6
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [edi + ebp]
movsx esi, byte [eax]
mov dword [esp + 0x2c], eax
cmp esi, dword [esp + 0x24]
mov edx, esi
je 0x471950
cmp dl, 0xa
je 0x4721b0
cmp dl, 0xd
je 0x4721b0
mov ebx, ebp
jmp 0x4716d5
cmp dl, 0xd
je 0x4716ec
add ebx, 1
cmp ebx, ecx
je 0x4714d0
movzx edx, byte [edi + ebx]
lea eax, [edi + ebx]
cmp dl, 0xa
jne 0x4716d0
mov byte [eax], 0
mov dword [esp + 0x24], eax
movsx esi, dl
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
cmp al, 0x1a
setne byte [esp + 0x47]
cmp al, 0x23
setne al
test byte [esp + 0x47], al
je 0x471713
cmp ebp, ebx
jl 0x47174b
mov eax, dword [esp + 0x24]
add dword [esp + 0x34], 1
cmp esi, 0xa
lea ebp, [ebx + 1]
mov dword [esp + 0x24], 0xd
mov byte [eax], dl
je 0x4714c8
cmp esi, 0xd
mov eax, 0x100
mov esi, 0xa
cmove eax, esi
mov dword [esp + 0x24], eax
jmp 0x4714c8
mov eax, ebx
mov dword [esp + 0x4c], ecx
mov byte [esp + 0x47], dl
sub eax, ebp
mov ebp, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], ebp
mov dword [esp + 0x10], eax
lea eax, [esp + 0x70]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call dword [esp + 0x70]
cmp eax, 0xffffffff
mov dword [esp + 0x80], eax
movzx edx, byte [esp + 0x47]
mov ecx, dword [esp + 0x4c]
jne 0x4717cc
mov eax, dword [esp + 0x48]
mov dword [esp + 4], ebp
mov dword [esp + 0x10], eax
lea eax, [esp + 0x70]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call dword [esp + 0x70]
movzx edx, byte [esp + 0x47]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x80], eax
test eax, eax
je 0x471713
mov ecx, edi
mov ebp, dword [esp + 0xb4]
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x30]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._ft_mem_free
mov eax, dword [esp + 0x80]
test eax, eax
mov dword [esp + 0x5c], eax
jne 0x471a72
mov eax, dword [edi + 0x20]
test eax, eax
je 0x4721e6
cmp dword [eax + 0x1c], 8
je 0x47181d
movzx edx, word [eax + 4]
mov word [eax + 0x20], dx
mov edx, dword [eax + 0x34]
mov ecx, dword [eax + 0x40]
lea ebx, [ecx + edx]
cmp dword [edi + 4], ebx
je 0x471837
mov ebx, 1
mov word [eax + 0x44084], bx
mov ebx, dword [edi + 0x24]
mov esi, dword [ebx]
test esi, esi
je 0x4718dc
or ecx, edx
je 0x4718dc
movsx esi, word [edi + 0xc]
movsx ecx, word [edi + 0x10]
mov edx, esi
mov ebx, ecx
sub ecx, esi
movzx esi, word [eax + 4]
cmp ecx, esi
je 0x471874
sub ebx, edx
mov word [eax + 4], bx
mov ebx, 1
mov word [eax + 0x44084], bx
cmp dx, word [eax + 8]
je 0x47188a
mov ecx, 1
mov word [eax + 8], dx
mov word [eax + 0x44084], cx
movzx ecx, word [edi + 0x12]
cmp word [eax + 0xc], cx
je 0x4718a4
mov edx, 1
mov word [eax + 0xc], cx
mov word [eax + 0x44084], dx
movzx ebx, word [edi + 0x14]
cmp word [eax + 0xe], bx
je 0x4718c6
mov edx, ebx
mov esi, 1
mov word [eax + 0xe], bx
neg edx
mov word [eax + 0x44084], si
mov word [eax + 0xa], dx
movsx esi, bx
movsx edx, cx
add edx, esi
movzx esi, word [eax + 6]
cmp edx, esi
je 0x4718dc
add ecx, ebx
mov word [eax + 6], cx
mov edx, dword [edi]
test dl, 1
jne 0x471a58
mov edx, dword [eax + 0x58]
mov ecx, dword [eax + 0x44088]
mov dword [esp + 0x24], eax
test edx, edx
je 0x47155a
mov esi, eax
lea eax, [esp + 0x5c]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x54]
mov dword [esp], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], 1
mov dword [esp + 0x10], eax
lea eax, [edx + 1]
mov dword [esp + 0xc], eax
call sym._ft_mem_realloc
mov ecx, dword [esp + 0x5c]
mov dword [esi + 0x54], eax
test ecx, ecx
jne 0x471a72
mov eax, dword [edi + 0x20]
mov edx, dword [eax + 0x54]
mov eax, dword [eax + 0x58]
mov byte [edx + eax], 0
mov eax, dword [edi + 0x20]
mov dword [esp + 0x24], eax
jmp 0x47155a
add ebp, 1
mov dword [esp + 0x24], 0x100
jmp 0x4714c8
lea eax, [edi + ebp]
mov esi, ecx
mov dword [esp], edi
sub esi, ebp
xor ebp, ebp
mov dword [esp + 8], esi
mov dword [esp + 4], eax
call sym._memmove
mov eax, dword [esp + 0x28]
jmp 0x4714a5
cmp al, 0xb0
mov dword [esp + 0x58], eax
jne 0x47135f
mov eax, dword [ebp + 0x8c]
mov ebx, dword [ebp + 0x64]
call sym._bdf_free_font
mov eax, dword [ebp + 0x90]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._ft_mem_free
mov eax, dword [ebp + 0x84]
mov dword [ebp + 0x90], 0
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._ft_mem_free
mov eax, dword [ebp + 0x88]
mov dword [ebp + 0x84], 0
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._ft_mem_free
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x88], 0
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._ft_mem_free
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x14], 0
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._ft_mem_free
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x18], 0
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._ft_mem_free
mov eax, dword [ebp + 0x8c]
mov dword [ebp + 0x20], 0
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._ft_mem_free
mov dword [ebp + 0x8c], 0
mov eax, 2
jmp 0x47135f
and edx, 0x20
jne 0x471aa1
mov dword [esp + 0x5c], 0xb9
mov dword [esp + 0x24], 0
jmp 0x47155a
mov eax, dword [edi + 0x20]
call sym._bdf_free_font
mov eax, dword [edi + 0x20]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call sym._ft_mem_free
mov dword [edi + 0x20], 0
mov dword [esp + 0x24], 0
jmp 0x47155a
mov dword [esp + 0x5c], 0xba
mov dword [esp + 0x24], 0
jmp 0x47155a
mov ebx, dword [ebp + 8]
mov dword [ebp], 1
mov edx, str.SPACING
mov dword [ebp + 4], 0
mov eax, ebx
or al, 0x92
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x24]
call sym._bdf_get_font_property
test eax, eax
je 0x471aea
cmp dword [eax + 4], 1
je 0x472262
mov eax, dword [esp + 0x24]
mov edx, 0x4f6fb7
call sym._bdf_get_font_property
test eax, eax
je 0x472212
mov eax, dword [eax + 0xc]
test eax, eax
je 0x472212
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x58]
mov dword [esp + 8], edx
mov dword [esp], eax
call sym._ft_mem_strdup
mov dword [ebp + 0x14], eax
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x47135f
mov eax, dword [ebp + 0x8c]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x64]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
mov dword [ebp + 0xc], 0
test eax, eax
je 0x471d87
mov esi, dword [eax + 0x48]
test esi, esi
mov dword [esp + 0x34], esi
je 0x471d87
mov eax, dword [eax + 0x80]
mov edx, 0x53
mov esi, 0x4f6f80
mov dword [esp + 0x38], eax
mov ecx, dword [eax + 4]
mov ebx, dword [eax + 0xc]
xor eax, eax
lea esi, [esi]
mov edi, eax
add esi, 1
shl edi, 5
sub edi, eax
mov eax, edi
add eax, edx
movsx edx, byte [esi]
test dl, dl
jne 0x471bb0
xor edx, edx
lea esi, [ebx + ecx*4 - 4]
mov dword [esp + 0xb4], ebp
div ecx
mov dword [esp + 0x28], ebx
mov ebp, esi
lea eax, [ebx + edx*4]
jmp 0x471bec
mov ecx, dword [esp + 0x28]
sub eax, 4
cmp ecx, eax
cmova eax, ebp
mov edx, dword [eax]
test edx, edx
je 0x472226
mov esi, dword [edx]
cmp byte [esi], 0x53
jne 0x471be0
mov ecx, 6
mov edi, 0x4f6f80
repe cmpsb byte [esi], byte es:[edi]
seta cl
mov esi, ecx
setb cl
mov ebx, esi
cmp bl, cl
jne 0x471be0
mov eax, dword [edx + 4]
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp + 0xb4]
shl eax, 4
add eax, dword [esi + 0x50]
je 0x471c37
cmp dword [eax + 4], 1
je 0x47228a
mov eax, dword [esp + 0x38]
mov edx, 0x57
mov esi, 0x4f6f95
mov ecx, dword [eax + 4]
mov ebx, dword [eax + 0xc]
xor eax, eax
lea esi, [esi]
mov edi, eax
add esi, 1
shl edi, 5
sub edi, eax
mov eax, edi
add eax, edx
movsx edx, byte [esi]
test dl, dl
jne 0x471c50
xor edx, edx
lea esi, [ebx + ecx*4 - 4]
mov dword [esp + 0xb4], ebp
div ecx
mov dword [esp + 0x28], ebx
mov ebp, esi
lea eax, [ebx + edx*4]
jmp 0x471c8c
mov esi, dword [esp + 0x28]
sub eax, 4
cmp esi, eax
cmova eax, ebp
mov edx, dword [eax]
test edx, edx
je 0x472232
mov esi, dword [edx]
cmp byte [esi], 0x57
jne 0x471c80
mov ecx, 0xc
mov edi, 0x4f6f95
repe cmpsb byte [esi], byte es:[edi]
seta cl
mov esi, ecx
setb cl
mov ebx, esi
cmp bl, cl
jne 0x471c80
mov eax, dword [edx + 4]
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp + 0xb4]
shl eax, 4
add eax, dword [esi + 0x50]
je 0x471cd7
cmp dword [eax + 4], 1
je 0x4722da
mov eax, dword [esp + 0x34]
test eax, eax
je 0x471d87
mov eax, dword [esp + 0x2c]
mov edx, 0x53
mov esi, 0x4f6fa1
mov eax, dword [eax + 0x80]
mov ecx, dword [eax + 4]
mov ebx, dword [eax + 0xc]
xor eax, eax
nop
mov edi, eax
add esi, 1
shl edi, 5
sub edi, eax
mov eax, edi
add eax, edx
movsx edx, byte [esi]
test dl, dl
jne 0x471d00
xor edx, edx
lea esi, [ebx + ecx*4 - 4]
mov dword [esp + 0xb4], ebp
div ecx
mov dword [esp + 0x28], ebx
mov ebp, esi
lea eax, [ebx + edx*4]
jmp 0x471d3c
mov esi, dword [esp + 0x28]
sub eax, 4
cmp esi, eax
cmova eax, ebp
mov edx, dword [eax]
test edx, edx
je 0x472206
mov esi, dword [edx]
cmp byte [esi], 0x53
jne 0x471d30
mov ecx, 0xe
mov edi, 0x4f6fa1
repe cmpsb byte [esi], byte es:[edi]
seta cl
mov esi, ecx
setb cl
mov ebx, esi
cmp bl, cl
jne 0x471d30
mov eax, dword [edx + 4]
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp + 0xb4]
shl eax, 4
add eax, dword [esi + 0x50]
je 0x471d87
cmp dword [eax + 4], 1
je 0x472304
mov eax, dword [esp + 0x2c]
mov edx, 0x4f6fc8
call sym._bdf_get_font_property
test eax, eax
je 0x471da3
cmp dword [eax + 4], 1
je 0x47232e
mov eax, dword [esp + 0x70]
mov dword [esp + 0x80], 0
test eax, eax
je 0x472358
mov dword [esp], eax
call sym._strlen
lea ebx, [eax + 1]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x84], 0
test eax, eax
je 0x471df2
mov dword [esp], eax
call sym._strlen
lea ebx, [ebx + eax + 1]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x88], 0
test eax, eax
je 0x471e18
mov dword [esp], eax
call sym._strlen
lea ebx, [ebx + eax + 1]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x8c], 0
test eax, eax
je 0x471e3e
mov dword [esp], eax
call sym._strlen
lea ebx, [ebx + eax + 1]
mov dword [esp + 0x8c], eax
test ebx, ebx
jne 0x471e57
mov dword [esp + 0x70], 0x4f6fd7
mov dword [esp + 0x80], 7
mov bl, 8
lea eax, [esp + 0x5c]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call sym._ft_mem_alloc
mov edx, eax
mov dword [ebp + 0x18], eax
mov eax, dword [esp + 0x5c]
test eax, eax
jne 0x47135f
lea eax, [esp + 0x80]
xor edi, edi
mov dword [esp + 0x40], eax
mov eax, dword [esp + edi*4 + 0x70]
mov esi, dword [esp + 0x40]
test eax, eax
mov esi, dword [esi + edi*4]
je 0x471ed0
cmp dword [ebp + 0x18], edx
je 0x47223e
lea ebx, [edx + 1]
mov byte [edx], 0x20
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym._memcpy
cmp edi, 3
je 0x4721c2
test edi, edi
je 0x4721c2
add ebx, esi
mov edx, ebx
add edi, 1
cmp edi, 4
jne 0x471e8d
mov byte [edx], 0
mov eax, dword [esp + 0x5c]
test eax, eax
mov dword [esp + 0x58], eax
jne 0x47135f
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x30]
mov dword [ebp + 0x1c], 1
mov dword [esp + 0x28], eax
add eax, 1
mov dword [ebp + 0x10], eax
lea eax, [esp + 0x58]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], 0x10
mov dword [esp], eax
call sym._ft_mem_realloc
mov ebx, eax
mov dword [ebp + 0x20], eax
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x47135f
mov eax, dword [esp + 0x24]
mov dword [ebx], 0
mov edx, 0x4f6fdf
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov esi, dword [eax + 0x28]
add si, word [eax + 0x2c]
mov word [ebx], si
call sym._bdf_get_font_property
test eax, eax
je 0x472391
mov ecx, dword [eax + 0xc]
mov edx, 0x66666667
add ecx, 5
mov eax, ecx
sar ecx, 0x1f
imul edx
sar edx, 2
mov esi, edx
sub esi, ecx
mov eax, dword [esp + 0x24]
mov word [ebx + 2], si
mov edx, 0x4f6fed
call sym._bdf_get_font_property
test eax, eax
je 0x472386
imul ecx, dword [eax + 0xc], 0x70800
mov edx, 0x3a095da3
add ecx, 0x8d27
mov eax, ecx
sar ecx, 0x1f
imul edx
sar edx, 0xe
mov esi, edx
sub esi, ecx
mov eax, dword [esp + 0x24]
mov dword [ebx + 4], esi
mov edx, 0x4f6ff8
call sym._bdf_get_font_property
test eax, eax
je 0x47237e
movsx edi, word [eax + 0xc]
shl edi, 6
mov dword [ebx + 0xc], edi
mov eax, dword [esp + 0x24]
mov edx, 0x4f7003
call sym._bdf_get_font_property
test eax, eax
je 0x472372
movzx eax, word [eax + 0xc]
mov word [esp + 0x28], ax
mov eax, dword [esp + 0x24]
mov edx, 0x4f7010
call sym._bdf_get_font_property
test eax, eax
je 0x47235f
test edi, edi
mov ecx, dword [eax + 0xc]
jne 0x47205a
test cx, cx
je 0x472363
movsx eax, cx
mov edx, 0x38e38e39
imul esi, eax
mov eax, esi
sar esi, 0x1f
imul edx
sar edx, 4
mov edi, edx
sub edi, esi
mov dword [ebx + 0xc], edi
movsx eax, word [esp + 0x28]
test ax, ax
je 0x47236b
test cx, cx
je 0x47236b
imul eax, edi
movsx ecx, cx
cdq
idiv ecx
mov esi, eax
mov eax, dword [esp + 0x24]
mov dword [ebx + 8], esi
lea esi, [esp + 0x58]
mov ebx, dword [eax + 0x38]
mov dword [esp + 0x14], esi
mov esi, eax
mov dword [esp + 0x10], 0
mov eax, dword [eax + 0x30]
mov dword [esp + 8], 0
mov dword [esp + 4], 8
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call sym._ft_mem_realloc
mov edx, eax
mov dword [ebp + 0x90], eax
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x47135f
mov esi, dword [esi + 0x30]
mov dword [ebp + 0xa4], 0
test esi, esi
je 0x472112
mov eax, dword [esp + 0x24]
lea ecx, [ebx + 4]
mov edi, dword [eax + 0x24]
mov eax, edx
xor edx, edx
mov ebx, dword [ecx]
mov word [eax + 4], dx
cmp ebx, edi
mov dword [eax], ebx
jne 0x472105
cmp edx, 0xffffffff
je 0x472105
mov dword [ebp + 0xa4], edx
add edx, 1
add ecx, 0x24
add eax, 8
cmp edx, esi
jne 0x4720ee
mov esi, dword [esp + 0x24]
mov edx, 0x4f701d
mov eax, esi
call sym._bdf_get_font_property
mov edx, 0x4f702e
mov ebx, eax
mov eax, esi
call sym._bdf_get_font_property
test eax, eax
je 0x472142
test ebx, ebx
je 0x472142
cmp dword [ebx + 4], 1
je 0x4723ab
mov eax, dword [esp + 0x40]
xor ecx, ecx
mov edx, 7
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp], 0x4f71e0
mov dword [esp + 0x80], ebp
mov dword [esp + 8], eax
mov dword [esp + 0x84], 0x41444f42
mov word [esp + 0x88], dx
mov word [esp + 0x8a], cx
call sym._FT_CMap_New
mov ebx, dword [ebp + 0x24]
mov dword [esp + 0x58], eax
test ebx, ebx
je 0x47135f
mov edx, dword [ebp + 0x28]
mov edx, dword [edx]
mov dword [ebp + 0x5c], edx
jmp 0x47135f
mov eax, dword [esp + 0x2c]
mov ebx, ebp
mov byte [eax], 0
mov dword [esp + 0x24], eax
jmp 0x471713
test esi, esi
je 0x471ece
mov eax, ebx
lea ebx, [ebx + esi]
jmp 0x4721dc
add eax, 1
cmp eax, ebx
je 0x471ece
cmp byte [eax], 0x20
jne 0x4721d1
mov byte [eax], 0x2d
jmp 0x4721d1
mov edx, dword [edi]
test dl, 1
jne 0x471a58
mov dword [esp + 0x5c], 3
mov dword [esp + 0x24], 0
jmp 0x47155a
mov ebp, dword [esp + 0xb4]
jmp 0x471d87
mov eax, dword [esp + 0x24]
mov dword [ebp + 0x14], 0
mov dword [esp + 0x2c], eax
jmp 0x471b3c
mov ebp, dword [esp + 0xb4]
jmp 0x471c37
mov ebp, dword [esp + 0xb4]
jmp 0x471cd7
mov ebx, edx
jmp 0x471eab
mov ecx, edi
mov ebp, dword [esp + 0xb4]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x80], 6
jmp 0x4717e1
mov eax, dword [eax + 0xc]
test eax, eax
je 0x471aea
movzx eax, byte [eax]
and eax, 0xffffffdf
cmp al, 0x43
je 0x47227f
cmp al, 0x4d
jne 0x471aea
or bl, 0x96
mov dword [ebp + 8], ebx
jmp 0x471aea
mov edx, dword [eax + 0xc]
test edx, edx
je 0x471c37
movzx eax, byte [edx]
and eax, 0xffffffdf
cmp al, 0x49
je 0x4722a7
cmp al, 0x4f
jne 0x471c37
mov dword [ebp + 0xc], 1
movzx eax, byte [edx]
mov edx, 0x4f6f8e
and eax, 0xffffffdf
cmp al, 0x4f
mov eax, 0x4f6f86
cmovne eax, edx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x80]
mov dword [esp + 0x38], eax
jmp 0x471c37
mov eax, dword [eax + 0xc]
test eax, eax
je 0x471cd7
movzx eax, byte [eax]
and eax, 0xffffffdf
cmp al, 0x42
jne 0x471cd7
or dword [ebp + 0xc], 2
mov dword [esp + 0x74], 0x4f6fc3
jmp 0x471cd7
mov edx, dword [eax + 0xc]
test edx, edx
je 0x471d87
movzx eax, byte [edx]
test al, al
je 0x471d87
and eax, 0xffffffdf
cmp al, 0x4e
je 0x471d87
mov dword [esp + 0x7c], edx
jmp 0x471d87
mov edx, dword [eax + 0xc]
test edx, edx
je 0x471da3
movzx eax, byte [edx]
test al, al
je 0x471da3
and eax, 0xffffffdf
cmp al, 0x4e
je 0x471da3
mov dword [esp + 0x70], edx
jmp 0x471da3
xor ebx, ebx
jmp 0x471dcc
test edi, edi
jne 0x47236b
mov dword [ebx + 0xc], esi
jmp 0x47207c
mov esi, edi
jmp 0x47207c
xor eax, eax
mov word [esp + 0x28], ax
jmp 0x472018
mov edi, dword [ebx + 0xc]
jmp 0x471ff9
movsx esi, si
shl esi, 6
jmp 0x471fd6
movsx ecx, si
mov edx, 0x55555556
add ecx, ecx
mov eax, ecx
sar ecx, 0x1f
imul edx
mov esi, edx
sub esi, ecx
jmp 0x471f9c
cmp dword [eax + 4], 1
jne 0x472142
cmp dword [ebx + 0xc], 0
je 0x472142
mov eax, dword [eax + 0xc]
test eax, eax
je 0x472142
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
lea esi, [esp + 0x58]
mov dword [esp + 8], esi
mov dword [esp], eax
call sym._ft_mem_strdup
mov dword [ebp + 0x84], eax
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x47135f
lea eax, [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call sym._ft_mem_strdup
mov edx, eax
mov dword [ebp + 0x88], eax
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x47135f
movzx eax, byte [edx]
and eax, 0xffffffdf
cmp al, 0x49
jne 0x4724e3
movzx eax, byte [edx + 1]
and eax, 0xffffffdf
cmp al, 0x53
jne 0x4724e3
movzx eax, byte [edx + 2]
and eax, 0xffffffdf
cmp al, 0x4f
jne 0x4724e3
lea ebx, [edx + 3]
mov dword [esp + 4], 0x4f703f
mov dword [esp], ebx
call sym._strcmp
test eax, eax
je 0x472494
mov dword [esp + 4], 0x4f7045
mov dword [esp], ebx
call sym._strcmp
test eax, eax
jne 0x4724e3
mov dword [esp + 4], 0x4f704a
mov eax, dword [ebp + 0x84]
mov dword [esp], eax
call sym._strcmp
test eax, eax
jne 0x4724e3
mov dword [esp + 0x80], ebp
mov dword [esp + 0x84], 0x756e6963
mov word [esp + 0x88], 3
mov word [esp + 0x8a], 1
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp], 0x4f71e0
mov dword [esp + 8], eax
call sym._FT_CMap_New
jmp 0x47135f
mov dword [esp + 0x80], ebp
mov dword [esp + 0x84], 0
mov word [esp + 0x88], 0
mov word [esp + 0x8a], 0
jmp 0x4724ba