Function at 0x4904b0
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x7c
mov eax, dword [esp + 0x90]
lea ecx, [esp + 0x90]
lea edx, [esp + 0x94]
mov esi, eax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x6c]
mov dword [esi + 0x40], 0
xor eax, ecx
xor eax, edx
mov ecx, eax
mov edx, eax
sar ecx, 0xa
sar edx, 0x14
xor edx, ecx
xor eax, edx
mov edx, 0x7384
movzx eax, ax
test eax, eax
cmove eax, edx
mov edx, dword [esi + 0x5d0]
mov dword [esp + 0x6c], eax
mov eax, esi
add eax, 0x70
mov dword [esi + 0x470], eax
lea eax, [esi + 0x474]
test edx, edx
mov dword [esp + 0x44], eax
mov dword [esi + 0x540], eax
mov eax, dword [esi + 0x48]
mov dword [esp + 0x40], eax
je 0x49053a
mov eax, dword [esi + 0x5d4]
test eax, eax
jne 0x490a52
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov esi, dword [eax + 0x18]
mov dword [eax + 0x478], edi
add ecx, edi
mov dword [eax + 0x474], edi
mov dword [eax + 0x47c], ecx
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x34], eax
test esi, esi
je 0x490582
mov eax, dword [esi]
mov dword [esp], eax
call dword [esi + 4]
cmp edi, dword [esp + 0x24]
jae 0x49070c
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x90]
mov byte [esp + 0x20], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x48], eax
xor eax, eax
mov ecx, dword [ebp + 0x470]
mov esi, ebp
mov ebp, eax
lea eax, [edi + 1]
mov dword [esp + 0x1c], eax
movzx eax, byte [edi]
cmp al, 0xb
je 0x4909a0
ja 0x4907b0
cmp al, 6
je 0x490990
ja 0x4908a0
cmp al, 3
je 0x490980
jbe 0x490932
cmp al, 4
je 0x4909b0
cmp al, 5
mov edx, 9
jne 0x4907d9
lea esi, [esi]
xor ebx, ebx
xor ebp, ebp
cmp byte [esp + 0x20], 0
je 0x490783
cmp edx, 0x14
je 0x490783
test edx, edx
je 0x490783
mov byte [esp + 0x20], 0
cmp edx, 0x15
je 0x4908d0
lea ebx, [esi + 0x70]
mov edi, ecx
mov eax, dword [edx*4 + 0x4fa980]
sub edi, ebx
mov ebx, edi
sar ebx, 2
cmp eax, ebx
jg 0x491770
shl eax, 2
sub ecx, eax
cmp edx, 0x1a
mov edi, ecx
ja case.0x490659.0
jmp dword [edx*4 + 0x4f9fc4]
mov eax, dword [ecx]
sar eax, 0x10
test eax, eax
js case.0x490659.0
cmp eax, dword [esi + 0x554]
jge case.0x490659.0
mov ebx, dword [esp + 0x44]
lea edx, [esi + 0x474]
mov ecx, ebx
sub ecx, edx
cmp ecx, 0xbf
jg case.0x490659.0
mov ecx, ebx
mov ebx, dword [esp + 0x1c]
lea edx, [ecx + 0xc]
mov dword [esp + 0x38], edx
mov edx, dword [esi + 0x558]
mov dword [ecx], ebx
lea ebx, [eax*4]
mov dword [esp + 0x1c], edx
mov edx, dword [edx + eax*4]
mov dword [ecx + 0x10], edx
mov ecx, dword [esi + 0x55c]
test ecx, ecx
je 0x4919c2
mov ebx, dword [ecx + eax*4]
mov ecx, dword [esp + 0x44]
mov eax, edx
mov dword [esp + 0x1c], edx
add ebx, edx
mov dword [ecx + 0x14], ebx
mov dword [esp + 0x24], ebx
test eax, eax
mov dword [ecx + 0xc], eax
je case.0x490659.0
mov eax, dword [esp + 0x38]
mov dword [esi + 0x540], eax
mov dword [esp + 0x44], eax
mov dword [esi + 0x470], edi
mov ecx, edi
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
cmp dword [esp + 0x1c], ebx
jb 0x4905b4
xor ebx, ebx
add esp, 0x7c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sym._t1_builder_close_contour
mov edx, dword [esp + 0x40]
test edx, edx
je 0x491999
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x40]
mov eax, dword [eax + 0x14]
movsx eax, word [eax + 2]
mov dword [esp + 4], eax
mov eax, dword [esi]
mov dword [esp], eax
call dword [esi + 8]
test eax, eax
je 0x491960
nop
lea esi, [esi]
mov ebx, 0xa0
add esp, 0x7c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, 0xf
xor ebx, ebx
xor ebp, ebp
cmp byte [esp + 0x20], 0
jne 0x490620
test edx, edx
jne 0x490625
lea eax, [esi + 0x70]
mov edi, ecx
sub edi, eax
cmp edi, 0x3ff
jg case.0x490659.0
lea eax, [ecx + 4]
mov dword [ecx], ebx
mov edi, dword [esp + 0x1c]
mov dword [esi + 0x470], eax
mov ecx, eax
jmp 0x4906fe
cmp al, 0x15
je 0x4909d0
ja 0x490823
cmp al, 0xd
je 0x4909c0
jb 0x490a10
cmp al, 0xe
je 0x490a00
cmp al, 0xf
mov edx, 0x1a
je 0x490774
cmp al, 0x1f
jbe case.0x490659.0
cmp al, 0xf6
lea ebx, [eax - 0x8b]
jbe 0x490810
lea edx, [edi + 2]
cmp edx, dword [esp + 0x24]
mov dword [esp + 0x1c], edx
ja case.0x490659.0
cmp al, 0xfa
ja 0x4911e0
movzx edx, byte [edi + 1]
sub eax, 0xf7
shl eax, 8
lea ebx, [eax + edx + 0x6c]
cmp byte [esp + 0x20], 0
jne 0x490a4b
shl ebx, 0x10
jmp 0x49078b
cmp al, 0x1e
je 0x4909f0
jbe 0x490920
cmp al, 0x1f
je 0x4909e0
cmp al, 0xff
jne 0x4907d9
lea eax, [edi + 5]
cmp eax, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
ja case.0x490659.0
movzx eax, byte [edi + 1]
shl eax, 0x18
mov edx, eax
movzx eax, byte [edi + 2]
shl eax, 0x10
or eax, edx
movzx edx, byte [edi + 4]
or eax, edx
movzx edx, byte [edi + 3]
shl edx, 8
or eax, edx
lea edx, [eax + 0x7d00]
mov ebx, eax
cmp edx, 0xfa00
jbe 0x490a40
xor edx, edx
cmp byte [esp + 0x20], 0
jne 0x490604
mov byte [esp + 0x20], 1
jmp 0x49060f
cmp al, 8
je 0x490970
jb 0x490960
cmp al, 9
je 0x490953
xor ebx, ebx
cmp al, 0xa
mov edx, 0x16
je 0x490604
jmp 0x4907d9
lea edx, [esi + 0x70]
mov eax, ecx
sub eax, edx
cmp eax, 7
jle 0x491770
lea edi, [ecx - 8]
movsx ebp, word [ecx - 6]
movsx eax, word [ecx - 2]
mov ecx, edi
sub ecx, edx
sar ecx, 2
movsx ebx, ax
cmp ebp, ecx
jg 0x491770
lea ecx, [ebp*4]
sub edi, ecx
cmp ax, 0x1c
mov dword [esp + 0x38], edi
ja case.0x490917.4
movzx eax, ax
jmp dword [eax*4 + 0x4fa030]
cmp al, 0x16
mov edx, 7
je 0x490600
jmp 0x4907d9
cmp al, 1
mov edx, 0x10
jne 0x4907d9
xor ebx, ebx
xor ebp, ebp
cmp byte [esp + 0x20], 0
jne 0x490620
jmp 0x490783
mov edx, 5
jmp 0x490600
mov edx, 0xd
jmp 0x490600
mov edx, 0xb
jmp 0x490600
mov edx, 0x12
jmp 0x490600
mov edx, 6
jmp 0x490600
xor ebx, ebx
mov edx, 0x18
jmp 0x490604
mov edx, 0xe
jmp 0x490600
mov edx, 2
jmp 0x490600
mov edx, 0xa
jmp 0x490600
mov edx, 8
jmp 0x490600
mov edx, 0xc
jmp 0x490600
mov edx, 1
jmp 0x490600
mov ebx, dword [esp + 0x24]
cmp dword [esp + 0x1c], ebx
ja case.0x490659.0
cmp byte [edi + 1], 0x21
lea eax, [edi + 2]
mov dword [esp + 0x1c], eax
ja case.0x490659.0
movzx eax, byte [edi + 1]
jmp dword [eax*4 + 0x4fa0a4]
cmp byte [esp + 0x20], 0
je 0x4911d0
xor edx, edx
jmp 0x490604
shl eax, 2
mov dword [esp + 4], 0
mov dword [esp], edx
mov dword [esp + 8], eax
call sym._memset
jmp 0x49053a
mov eax, dword [ecx]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 4]
mov dword [esi + 0x578], 0
mov dword [esp + 0x34], eax
jmp case.0x490659.15
mov ecx, dword [esp + 0x2c]
mov eax, dword [edi]
add dword [ecx + 0x20], eax
mov dword [ecx + 0x40], 1
mov eax, dword [edi + 4]
mov dword [ecx + 0x2c], 0
mov dword [ecx + 0x28], eax
mov eax, ecx
mov ecx, dword [edi]
add ecx, dword [eax + 0x18]
cmp byte [eax + 0x46], 0
mov ebx, dword [eax + 0x1c]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ebx
jne 0x49070c
mov dword [esp + 0x48], ecx
jmp case.0x490659.15
mov ebp, esi
mov edx, dword [ecx + 0x10]
mov eax, dword [ecx + 0xc]
cmp byte [ebp + 0x5d8], 0
mov esi, dword [ecx + 8]
mov ebx, dword [ecx + 4]
mov edi, dword [ecx]
mov ecx, dword [ebp + 4]
jne case.0x490659.0
cmp byte [ebp + 0x46], 0
jne case.0x490659.0
sar eax, 0x10
sar edx, 0x10
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x54c]
test eax, eax
mov eax, dword [ecx + 0x80]
je 0x491b30
mov eax, dword [eax + 0x30]
test eax, eax
je 0x491b40
mov eax, dword [esp + 0x1c]
shr eax, 0x1f
test al, al
jne case.0x490659.0
mov eax, dword [esp + 0x20]
shr eax, 0x1f
test al, al
jne case.0x490659.0
add ebx, dword [esp + 0x24]
cmp byte [ebp + 0x45], 0
mov dword [esp + 0x24], ebx
je 0x491a6e
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x9c]
mov dword [esp + 0x2c], ecx
mov edx, dword [eax]
mov dword [esp + 4], 2
mov dword [esp], edx
mov dword [esp + 0x28], edx
call sym._FT_GlyphLoader_CheckSubGlyphs
test eax, eax
mov ebx, eax
mov edx, dword [esp + 0x28]
jne 0x490765
mov ebp, dword [edx + 0x58]
mov eax, dword [esp + 0x20]
mov dword [ebp], eax
mov eax, 0x202
mov dword [ebp + 8], 0
mov word [ebp + 4], ax
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0xc], 0
mov dword [ebp + 0x20], eax
mov eax, 2
mov word [ebp + 0x24], ax
mov eax, dword [esp + 0x24]
sub eax, edi
mov dword [esp], eax
call sym._FT_RoundFix
sar eax, 0x10
mov dword [ebp + 0x28], eax
mov dword [esp], esi
call sym._FT_RoundFix
mov edx, dword [esp + 0x28]
sar eax, 0x10
mov ecx, dword [esp + 0x2c]
mov dword [ebp + 0x2c], eax
mov eax, dword [edx + 0x34]
mov dword [ecx + 0x80], 2
mov dword [ecx + 0x48], 0x636f6d70
mov dword [ecx + 0x84], eax
mov dword [edx + 0x54], 2
jmp 0x490765
mov ebx, dword [esp + 0x2c]
mov eax, dword [ecx]
add dword [ebx + 0x20], eax
mov dword [ebx + 0x40], 1
mov eax, dword [edi + 4]
add dword [ebx + 0x24], eax
mov eax, dword [edi + 8]
mov dword [ebx + 0x28], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0x2c], eax
mov ecx, dword [edi]
add ecx, dword [ebx + 0x18]
mov dword [esp + 0x30], ecx
mov ecx, dword [edi + 4]
add ecx, dword [ebx + 0x1c]
cmp byte [ebx + 0x46], 0
mov dword [esp + 0x34], ecx
je case.0x490659.15
xor ebx, ebx
jmp 0x49070e
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x40]
mov dword [esp + 0x38], eax
sub eax, 2
cmp eax, 1
jbe 0x4919f8
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x40], 1
jmp case.0x490659.15
mov eax, dword [esp + 0x2c]
cmp dword [eax + 0x40], 3
je 0x490caf
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
call sym._t1_builder_start_point.part.3
test eax, eax
jne 0x491761
mov esi, dword [edi]
add dword [esp + 0x30], esi
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
movsx ecx, word [eax + 0x16]
movsx edx, word [eax + 0x3a]
lea edx, [ecx + edx + 1]
cmp edx, dword [eax + 4]
ja 0x491741
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x44], 0
mov esi, dword [eax + 0x14]
jne 0x490df5
add word [esi + 2], 1
mov esi, dword [esp + 0x90]
jmp case.0x490659.15
mov eax, dword [esi + 0x578]
mov ebx, dword [ecx]
add dword [esp + 0x30], ebx
test eax, eax
jne case.0x490659.15
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x40]
test edx, edx
je case.0x490659.0
mov dword [eax + 0x40], 2
jmp case.0x490659.15
mov eax, dword [esp + 0x2c]
cmp dword [eax + 0x40], 3
je 0x490d41
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
call sym._t1_builder_start_point.part.3
test eax, eax
jne 0x491761
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
movsx ecx, word [eax + 0x16]
movsx edx, word [eax + 0x3a]
lea edx, [ecx + edx + 3]
cmp edx, dword [eax + 4]
ja 0x4917a3
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
add ecx, dword [edi]
cmp byte [eax + 0x44], 0
mov esi, dword [eax + 0x14]
jne 0x4918a2
mov eax, dword [esp + 0x2c]
mov ebx, esi
add ecx, dword [edi + 4]
add word [esi + 2], 1
mov esi, ebx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x34]
add ecx, dword [edi + 8]
cmp byte [eax + 0x44], 0
je 0x490ddf
movsx eax, word [ebx + 2]
mov edx, dword [ebx + 4]
mov dword [esp + 0x34], ecx
lea esi, [edx + eax*8]
add eax, dword [ebx + 8]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call sym._FT_RoundFix
mov ecx, dword [esp + 0x34]
sar eax, 0x10
mov dword [esi], eax
mov dword [esp], ecx
call sym._FT_RoundFix
sar eax, 0x10
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x2c]
mov byte [edx], 2
mov esi, dword [eax + 0x14]
add word [ebx + 2], 1
add ecx, dword [edi + 0xc]
cmp byte [eax + 0x44], 0
mov dword [esp + 0x34], ecx
je 0x490ce2
movsx edx, word [esi + 2]
mov eax, dword [esi + 4]
lea ebx, [eax + edx*8]
add edx, dword [esi + 8]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x38], edx
mov dword [esp], eax
call sym._FT_RoundFix
sar eax, 0x10
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sym._FT_RoundFix
mov edx, dword [esp + 0x38]
sar eax, 0x10
mov dword [ebx + 4], eax
mov byte [edx], 1
jmp 0x490ce2
mov eax, dword [esp + 0x40]
test eax, eax
je case.0x490659.15
mov dword [esp + 8], ecx
mov dword [esp + 4], 1
mov esi, eax
mov eax, dword [eax]
mov dword [esp], eax
call dword [esi + 0xc]
mov esi, dword [esp + 0x90]
jmp case.0x490659.15
mov eax, dword [esp + 0x40]
test eax, eax
je case.0x490659.15
mov dword [esp + 8], ecx
mov dword [esp + 4], 1
mov esi, eax
mov eax, dword [eax]
mov dword [esp], eax
call dword [esi + 0x10]
mov esi, dword [esp + 0x90]
jmp case.0x490659.15
mov eax, dword [esp + 0x40]
test eax, eax
je case.0x490659.15
mov esi, dword [esp + 0x48]
add dword [ecx], esi
mov dword [esp + 8], ecx
mov dword [esp + 4], 0
jmp 0x490e4d
mov eax, dword [esp + 0x40]
test eax, eax
je case.0x490659.15
mov esi, dword [esp + 0x48]
add dword [ecx], esi
add dword [ecx + 8], esi
add dword [ecx + 0x10], esi
mov dword [esp + 8], ecx
mov dword [esp + 4], 0
jmp 0x490e7b
mov eax, dword [ecx + 4]
add edi, 4
mov dword [esp + 4], eax
mov eax, dword [ecx]
mov dword [esp], eax
call sym._FT_DivFix
mov esi, dword [esp + 0x90]
mov dword [edi - 4], eax
mov byte [esp + 0x20], 0
jmp case.0x490659.15
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4919af
sub eax, 1
mov dword [esp + 0x28], eax
jmp case.0x490659.15
mov ecx, dword [esp + 0x44]
lea eax, [esi + 0x474]
cmp ecx, eax
jbe case.0x490659.0
mov edx, dword [ecx - 0xc]
mov ebx, dword [ecx - 4]
lea eax, [ecx - 0xc]
mov dword [esi + 0x540], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], ebx
jmp case.0x490659.15
mov eax, dword [esp + 0x2c]
cmp dword [eax + 0x40], 3
je 0x490f81
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
call sym._t1_builder_start_point.part.3
test eax, eax
jne 0x491761
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
movsx ecx, word [eax + 0x16]
movsx edx, word [eax + 0x3a]
lea edx, [ecx + edx + 3]
cmp edx, dword [eax + 4]
ja 0x49177f
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
add ecx, dword [edi]
add edx, dword [edi + 4]
cmp byte [eax + 0x44], 0
mov esi, dword [eax + 0x14]
jne 0x49184f
mov eax, dword [esp + 0x2c]
mov ebx, esi
add word [esi + 2], 1
add ecx, dword [edi + 8]
mov esi, ebx
add edx, dword [edi + 0xc]
cmp byte [eax + 0x44], 0
je 0x491022
movsx eax, word [ebx + 2]
mov esi, dword [ebx + 4]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], edx
lea esi, [esi + eax*8]
add eax, dword [ebx + 8]
mov dword [esp], ecx
mov dword [esp + 0x30], eax
call sym._FT_RoundFix
mov edx, dword [esp + 0x34]
sar eax, 0x10
mov dword [esi], eax
mov dword [esp], edx
call sym._FT_RoundFix
sar eax, 0x10
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x30]
mov byte [eax], 2
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x14]
add word [ebx + 2], 1
add ecx, dword [edi + 0x10]
add edx, dword [edi + 0x14]
cmp byte [eax + 0x44], 0
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
je 0x490ce2
movsx edx, word [esi + 2]
mov eax, dword [esi + 4]
lea ebx, [eax + edx*8]
add edx, dword [esi + 8]
mov eax, ecx
mov dword [esp + 0x38], edx
jmp 0x490e0a
mov eax, dword [esp + 0x2c]
cmp dword [eax + 0x40], 3
je 0x49107f
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
call sym._t1_builder_start_point.part.3
test eax, eax
jne 0x491761
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
movsx ecx, word [eax + 0x16]
movsx edx, word [eax + 0x3a]
lea edx, [ecx + edx + 3]
cmp edx, dword [eax + 4]
ja 0x4917d0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
add ecx, dword [edi]
cmp byte [eax + 0x44], 0
mov esi, dword [eax + 0x14]
jne 0x491800
mov eax, dword [esp + 0x2c]
mov ebx, esi
add word [esi + 2], 1
add ecx, dword [edi + 8]
mov esi, ebx
mov edx, dword [esp + 0x30]
add edx, dword [edi + 4]
cmp byte [eax + 0x44], 0
mov dword [esp + 0x34], ecx
je 0x491119
movsx eax, word [ebx + 2]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x30], edx
lea esi, [ecx + eax*8]
add eax, dword [ebx + 8]
mov dword [esp], edx
mov dword [esp + 0x38], eax
call sym._FT_RoundFix
sar eax, 0x10
mov dword [esi], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sym._FT_RoundFix
sar eax, 0x10
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x30]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x2c]
mov byte [ecx], 2
mov esi, dword [eax + 0x14]
add word [ebx + 2], 1
add edx, dword [edi + 0xc]
cmp byte [eax + 0x44], 0
mov dword [esp + 0x30], edx
je 0x490ce2
jmp 0x490df5
mov eax, dword [esp + 0x2c]
cmp dword [eax + 0x40], 3
je 0x491153
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
call sym._t1_builder_start_point.part.3
test eax, eax
jne 0x491761
mov esi, dword [edi]
add dword [esp + 0x30], esi
mov esi, dword [edi + 4]
add dword [esp + 0x34], esi
jmp 0x490cb5
mov ebx, dword [ecx + 4]
add dword [esp + 0x34], ebx
mov ebx, dword [esi + 0x578]
mov edx, dword [ecx]
add dword [esp + 0x30], edx
test ebx, ebx
jne case.0x490659.15
jmp 0x490d07
mov eax, dword [esp + 0x2c]
cmp dword [eax + 0x40], 3
je 0x4911a4
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
call sym._t1_builder_start_point.part.3
test eax, eax
jne 0x491761
mov esi, dword [edi]
add dword [esp + 0x34], esi
jmp 0x490cb5
mov ecx, dword [ecx]
add dword [esp + 0x34], ecx
mov ecx, dword [esi + 0x578]
test ecx, ecx
jne case.0x490659.15
jmp 0x490d07
shl eax, 0x10
mov ebx, eax
jmp 0x49078b
mov ebx, 0xfb
sub ebx, eax
movzx eax, byte [edi + 1]
shl ebx, 8
sub ebx, eax
sub ebx, 0x6c
jmp 0x490810
mov dword [esp + 0x38], edx
xor ecx, ecx
xor ebp, ebp
mov dword [esp + 0x28], 0
nop
lea esi, [esi]
add ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x1c]
mov dword [esi + 0x470], ecx
jmp 0x4906fe
test ebp, ebp
jne case.0x490659.0
mov eax, dword [esp + 0x6c]
xor edx, edx
mov ecx, dword [esp + 0x38]
cmp eax, 0x8000
setge dl
add eax, edx
mov edx, 0x10000
mov dword [ecx], eax
mov eax, dword [esp + 0x6c]
sub edx, eax
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
test eax, eax
jne 0x49191f
mov dword [esp + 0x6c], 0x2873
mov ecx, 4
mov dword [esp + 0x28], 1
jmp 0x491210
cmp ebp, 1
jne case.0x490659.0
mov ecx, dword [esi + 0x5b8]
test ecx, ecx
je case.0x490659.0
mov edi, dword [esp + 0x38]
mov eax, dword [edi]
mov dword [esp + 0x28], eax
sar eax, 0x10
test ax, ax
js case.0x490659.0
cwde
cmp eax, dword [esi + 0x5d4]
jae case.0x490659.0
mov edx, dword [esi + 0x5d0]
mov ecx, 4
xor bp, bp
mov dword [esp + 0x28], 1
mov eax, dword [edx + eax*4]
mov dword [edi], eax
jmp 0x491210
cmp ebp, 4
jne case.0x490659.0
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0xc]
cmp dword [eax + 8], ecx
jle 0x49172d
mov ecx, eax
mov eax, dword [eax + 4]
xor bp, bp
mov dword [esp + 0x28], 1
mov dword [ecx], eax
mov ecx, 4
jmp 0x491210
cmp ebp, 3
jne case.0x490659.0
mov eax, dword [esi + 0x578]
test eax, eax
je case.0x490659.0
cmp dword [esi + 0x57c], 7
jne case.0x490659.0
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x30]
mov ecx, 8
mov edi, dword [esp + 0x34]
xor bp, bp
mov dword [esp + 0x28], 2
mov dword [eax], edx
mov dword [eax + 4], edi
jmp 0x491210
test ebp, ebp
jne case.0x490659.0
mov edi, dword [esi + 0x578]
test edi, edi
je case.0x490659.0
mov ebx, dword [esi + 0x57c]
xor ecx, ecx
mov dword [esp + 0x28], 0
lea eax, [ebx + 1]
mov dword [esi + 0x57c], eax
lea eax, [ebx - 1]
cmp eax, 5
ja 0x491210
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x44], 0
mov edx, dword [eax + 0x14]
jne 0x491a10
add word [edx + 2], 1
xor ecx, ecx
mov dword [esp + 0x28], 0
jmp 0x491210
cmp ebp, 1
jne case.0x490659.0
mov edi, dword [esp + 0x40]
test edi, edi
je 0x49172d
mov eax, dword [esp + 0x2c]
xor bp, bp
mov eax, dword [eax + 0x14]
movsx eax, word [eax + 2]
mov dword [esp + 4], eax
mov eax, dword [edi]
mov dword [esp], eax
call dword [edi + 0x14]
mov esi, dword [esp + 0x90]
mov ecx, 4
mov dword [esp + 0x28], 1
jmp 0x491210
test ebp, ebp
jne case.0x490659.0
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x578], 1
mov dword [esi + 0x57c], 0
cmp dword [eax + 0x40], 3
je 0x491441
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
call sym._t1_builder_start_point.part.3
test eax, eax
jne 0x491761
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
movsx ecx, word [eax + 0x16]
movsx edx, word [eax + 0x3a]
lea edx, [ecx + edx + 6]
cmp edx, dword [eax + 4]
ja 0x491935
mov esi, dword [esp + 0x90]
xor ecx, ecx
mov dword [esp + 0x28], 0
jmp 0x491210
mov eax, dword [esi + 0x5b8]
test eax, eax
mov edi, eax
mov dword [esp + 0x50], eax
je case.0x490659.0
xor eax, eax
cmp ebx, 0x12
sete al
lea eax, [eax + ebx - 0xd]
mov ebx, dword [edi]
mov ecx, eax
mov dword [esp + 0x58], eax
imul eax, ebx
mov dword [esp + 0x28], ebx
cmp eax, ebp
jne case.0x490659.0
mov edx, dword [esp + 0x38]
mov dword [esp + 0x5c], esi
lea eax, [edx + ecx*4]
mov dword [esp + 0x3c], edx
mov edi, eax
mov dword [esp + 0x4c], eax
lea eax, [ebx*4 - 4]
mov dword [esp + 0x54], eax
mov eax, edx
lea esi, [esi]
cmp dword [esp + 0x28], 1
mov esi, dword [eax]
jbe 0x491521
mov eax, dword [esp + 0x50]
mov ebx, 1
mov ebp, dword [eax + 0x88]
nop
lea esi, [esi]
mov eax, dword [edi + ebx*4 - 4]
mov edx, dword [ebp + ebx*4]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
add esi, eax
add ebx, 1
cmp ebx, dword [esp + 0x28]
jne 0x4914f0
add edi, dword [esp + 0x54]
add dword [esp + 0x3c], 4
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x4c], eax
mov dword [eax - 4], esi
jne 0x4914d0
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
xor ebp, ebp
mov dword [esp + 0x28], eax
lea ecx, [eax*4]
jmp 0x491210
cmp ebp, 2
jne case.0x490659.0
mov edi, dword [esp + 0x38]
mov ecx, 4
xor bp, bp
mov dword [esp + 0x28], 1
mov eax, dword [edi + 4]
sub dword [edi], eax
jmp 0x491210
cmp ebp, 1
mov ecx, dword [esi + 0x5b8]
jne case.0x490659.0
test ecx, ecx
je case.0x490659.0
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov dword [esp + 0x28], eax
sar eax, 0x10
test ax, ax
js case.0x490659.0
mov edx, dword [ecx]
cwde
lea ebx, [eax + edx]
cmp ebx, dword [esi + 0x5d4]
ja case.0x490659.0
mov ebx, dword [esi + 0x5d0]
mov ecx, dword [ecx + 0x88]
shl edx, 2
mov dword [esp + 8], edx
xor bp, bp
lea eax, [ebx + eax*4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memcpy
mov esi, dword [esp + 0x90]
xor ecx, ecx
mov dword [esp + 0x28], 0
jmp 0x491210
cmp ebp, 2
jne case.0x490659.0
mov edi, dword [esp + 0x38]
mov ecx, 4
xor bp, bp
mov dword [esp + 0x28], 1
mov eax, dword [edi + 4]
add dword [edi], eax
jmp 0x491210
cmp ebp, 2
jne case.0x490659.0
mov esi, dword [esp + 0x38]
mov eax, dword [esi + 4]
test eax, eax
je case.0x490659.0
mov dword [esp + 4], eax
mov eax, dword [esi]
xor bp, bp
mov dword [esp], eax
call sym._FT_DivFix
mov ecx, 4
mov dword [esi], eax
mov dword [esp + 0x28], 1
mov esi, dword [esp + 0x90]
jmp 0x491210
cmp ebp, 2
jne case.0x490659.0
mov ebx, dword [esi + 0x5b8]
test ebx, ebx
je case.0x490659.0
mov edi, dword [esp + 0x38]
movsx eax, word [edi + 6]
test ax, ax
js case.0x490659.0
cwde
cmp eax, dword [esi + 0x5d4]
jae case.0x490659.0
mov ecx, dword [edi]
mov edx, dword [esi + 0x5d0]
xor bp, bp
mov dword [esp + 0x28], 0
mov dword [edx + eax*4], ecx
xor ecx, ecx
jmp 0x491210
cmp ebp, 2
jne case.0x490659.0
mov ebx, dword [esp + 0x38]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov ecx, 4
mov dword [ebx], eax
xor bp, bp
mov dword [esp + 0x28], 1
jmp 0x491210
mov edx, 0x19
jmp 0x490774
xor ebx, ebx
mov edx, 0x17
jmp 0x490604
mov edx, 0x13
jmp 0x490600
test ebx, ebx
js case.0x490659.0
test ebp, ebp
js case.0x490659.0
xor ecx, ecx
mov dword [esp + 0x28], 0
jmp 0x491210
mov ecx, 4
xor ebp, ebp
mov dword [esp + 0x28], 1
jmp 0x491210
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], eax
call sym._FT_GlyphLoader_CheckPoints
test eax, eax
je 0x490cd1
mov ebx, eax
add esp, 0x7c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
add esp, 0x7c
mov ebx, 0xa1
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], 0
mov dword [esp + 4], 3
mov dword [esp], eax
call sym._FT_GlyphLoader_CheckPoints
test eax, eax
je 0x490f9d
mov ebx, eax
jmp 0x491763
mov dword [esp + 8], 0
mov dword [esp + 4], 3
mov dword [esp], eax
call sym._FT_GlyphLoader_CheckPoints
test eax, eax
je 0x490d5d
mov ebx, eax
jmp 0x491763
mov dword [esp + 8], 0
mov dword [esp + 4], 3
mov dword [esp], eax
call sym._FT_GlyphLoader_CheckPoints
test eax, eax
je 0x49109b
mov ebx, eax
jmp 0x491763
movsx eax, word [esi + 2]
mov edx, dword [esi + 4]
mov dword [esp + 0x34], ecx
lea ebx, [edx + eax*8]
add eax, dword [esi + 8]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call sym._FT_RoundFix
mov ecx, dword [esp + 0x34]
sar eax, 0x10
mov dword [ebx], eax
mov dword [esp], ecx
call sym._FT_RoundFix
sar eax, 0x10
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x2c]
mov byte [edx], 2
mov ebx, dword [eax + 0x14]
jmp 0x4910b8
movsx eax, word [esi + 2]
mov ebx, dword [esi + 4]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], edx
lea ebx, [ebx + eax*8]
add eax, dword [esi + 8]
mov dword [esp], ecx
mov dword [esp + 0x30], eax
call sym._FT_RoundFix
mov edx, dword [esp + 0x34]
sar eax, 0x10
mov dword [ebx], eax
mov dword [esp], edx
call sym._FT_RoundFix
sar eax, 0x10
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x30]
mov byte [eax], 2
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0x14]
jmp 0x490fc1
movsx eax, word [esi + 2]
mov edx, dword [esi + 4]
mov dword [esp + 0x30], ecx
lea ebx, [edx + eax*8]
add eax, dword [esi + 8]
mov dword [esp], ecx
mov dword [esp + 0x38], eax
call sym._FT_RoundFix
sar eax, 0x10
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sym._FT_RoundFix
sar eax, 0x10
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x2c]
mov byte [edx], 2
mov ebx, dword [eax + 0x14]
jmp 0x490d7a
mov edx, 3
jmp 0x490600
mov edx, 4
jmp 0x490600
mov edx, 0x14
jmp 0x490600
mov edx, 0x15
jmp 0x490600
mov edx, 0x11
jmp 0x490600
mov dword [esp + 0x6c], eax
mov ecx, 4
mov dword [esp + 0x28], 1
jmp 0x491210
mov dword [esp + 8], 0
mov dword [esp + 4], 6
mov dword [esp], eax
call sym._FT_GlyphLoader_CheckPoints
test eax, eax
je 0x49145d
jmp 0x491761
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x2c]
mov eax, dword [eax + 0x5bc]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x4c]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x14]
mov esi, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esi]
mov dword [esp], eax
call dword [esi + 0x18]
test eax, eax
mov ebx, eax
jne 0x490765
mov eax, dword [esp + 0x2c]
xor ebx, ebx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sym._FT_GlyphLoader_Add
jmp 0x490765
test ebp, ebp
je case.0x490659.0
sub ebp, 1
add edi, 4
jmp case.0x490659.15
mov eax, dword [esi + 0x550]
test eax, eax
cmovns ecx, dword [esi + 0x550]
mov eax, dword [esp + 0x1c]
add ecx, edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x1c], ecx
mov dword [edx + 0x10], ecx
mov eax, dword [eax + ebx + 4]
mov ecx, edx
mov dword [edx + 0x14], eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
jmp 0x4906dd
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sym._t1_builder_close_contour
mov esi, dword [esp + 0x90]
jmp 0x490c77
movsx eax, word [edx + 2]
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], edx
lea edi, [ecx + eax*8]
add eax, dword [edx + 8]
mov esi, eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call sym._FT_RoundFix
sar eax, 0x10
mov dword [edi], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sym._FT_RoundFix
sar eax, 0x10
cmp ebx, 3
mov edx, dword [esp + 0x28]
mov dword [edi + 4], eax
je 0x491a67
cmp ebx, 6
mov eax, 2
je 0x491a67
mov byte [esi], al
mov esi, dword [esp + 0x90]
jmp 0x4913aa
mov eax, 1
jmp 0x491a59
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call sym._FT_GlyphLoader_Prepare
mov eax, dword [esp + 0x20]
mov byte [ebp + 0x5d8], 1
mov dword [esp], ebp
mov dword [esp + 4], eax
call dword [ebp + 0x5c0]
test eax, eax
mov byte [ebp + 0x5d8], 0
mov ebx, eax
jne 0x490765
mov eax, dword [ebp + 0x20]
mov ebx, dword [esp + 0x24]
mov edx, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x28]
mov dword [ebp + 0x20], 0
mov dword [ebp + 0x24], 0
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x2c]
sub ebx, edi
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], esi
mov byte [ebp + 0x5d8], 1
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], ecx
mov dword [esp], ebp
mov dword [esp + 4], eax
call dword [ebp + 0x5c0]
test eax, eax
mov byte [ebp + 0x5d8], 0
mov ebx, eax
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
jne 0x490765
mov eax, dword [esp + 0x20]
mov dword [ebp + 0x24], edx
mov dword [ebp + 0x28], ecx
mov dword [ebp + 0x18], 0
mov dword [ebp + 0x1c], 0
mov dword [ebp + 0x20], eax
mov eax, dword [esp + 0x28]
mov dword [ebp + 0x2c], eax
jmp 0x490765
mov eax, dword [eax + 0x30]
test eax, eax
jne 0x490b30
jmp case.0x490659.0
mov edx, dword [esp + 0x20]
mov eax, ebp
call sym._t1_lookup_glyph_by_stdcharcode
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov eax, ebp
call sym._t1_lookup_glyph_by_stdcharcode
mov dword [esp + 0x1c], eax
jmp 0x490b30