Function at 0x55a960
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x28], 0
call fcn.00559480
mov esi, dword [esp + 0x34]
push esi
push 0
call fcn.00518226
push esi
push 1
call fcn.00518226
push esi
push 0
call fcn.00518226
push esi
push 0
call fcn.00518226
push 4
push 0x10000
call sym.convertifd.exe_PCL_CheckSum_Num
push 0x10000
call sym.convertifd.exe_TTF_CheckSum_Num
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov edx, dword [ecx + 4]
push eax
push edx
call sym.convertifd.exe_getTTFTableCount
mov ebp, eax
cdq
sub eax, edx
mov ebx, ebp
mov ecx, 1
sar eax, 1
add esp, 0x34
shl ebx, 0x10
cmp eax, ecx
mov dword [esp + 0x1c], ecx
jle 0x55a9f1
lea esp, [esp]
cdq
sub eax, edx
sar eax, 1
add ecx, 1
cmp eax, 1
jg 0x55a9e0
mov dword [esp + 0x1c], ecx
mov edi, 1
shl edi, cl
push esi
shl edi, 4
movzx eax, di
or ebx, eax
mov ecx, ebx
shr ecx, 0x18
push ecx
mov dword [esp + 0x20], ebx
call fcn.00518226
movzx edx, byte [esp + 0x22]
push esi
push edx
call fcn.00518226
movzx eax, bh
push esi
push eax
call fcn.00518226
mov ecx, ebx
and ecx, 0xff
push esi
push ecx
call fcn.00518226
push 4
push ebx
call sym.convertifd.exe_PCL_CheckSum_Num
push ebx
call sym.convertifd.exe_TTF_CheckSum_Num
mov eax, dword [esp + 0x48]
shl ebp, 4
mov ebx, ebp
sub ebx, edi
shl eax, 0x10
and ebx, 0xffff
or ebx, eax
mov edx, ebx
shr edx, 0x18
push esi
push edx
mov dword [esp + 0x4c], ebx
call fcn.00518226
movzx eax, byte [esp + 0x4e]
push esi
push eax
call fcn.00518226
movzx ecx, bh
push esi
push ecx
call fcn.00518226
add esp, 0x44
mov edx, ebx
and edx, 0xff
push esi
push edx
call fcn.00518226
push 4
push ebx
call sym.convertifd.exe_PCL_CheckSum_Num
push ebx
call sym.convertifd.exe_TTF_CheckSum_Num
push esi
call fcn.0051600c
xor ebx, ebx
add esp, 0x18
cmp ebp, ebx
mov dword [esp + 0x24], eax
jle 0x55aac5
push esi
push ebx
call fcn.00518226
add esp, 8
sub ebp, 1
jne 0x55aab2
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x3c]
cmp dword [edi], ebx
mov dword [esp + 0x24], ebx
je 0x55ada6
mov ecx, 0xc
sub ecx, eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], eax
mov ecx, dword [edi]
mov ebp, dword [esp + 0x38]
mov edx, dword [ebp + 4]
lea eax, [esp + 0x10]
push eax
push ebx
push ebx
push ecx
push edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
call sym.convertifd.exe_TT_Get_Font_Data
mov edx, dword [edi]
lea eax, [esp + 0x2c]
push eax
mov eax, dword [ebp + 4]
lea ecx, [esp + 0x2c]
push ecx
push edx
push eax
call sym.convertifd.exe_TT_Get_Table_Info
push esi
call fcn.0051600c
add eax, dword [esp + 0x54]
add esp, 0x28
mov dword [esp + 0x18], eax
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x10]
cmp eax, ebx
jbe 0x55ae15
push eax
call fcn.00513aeb
mov ebx, eax
add esp, 4
test ebx, ebx
mov dword [esp + 0x20], ebx
je 0x55ac2b
mov edx, dword [edi]
mov eax, dword [ebp + 4]
lea ecx, [esp + 0x10]
push ecx
push ebx
push 0
push edx
push eax
call sym.convertifd.exe_TT_Get_Font_Data
add esp, 0x14
cmp dword [edi], 0x68656164
jne 0x55ab91
cmp dword [esp + 0x10], 0xc
jbe 0x55ab91
push esi
mov dword [ebx + 8], 0
call fcn.0051600c
add esp, 4
add eax, 8
mov dword [esp + 0x28], eax
cmp dword [edi + 8], 0
je 0x55abbd
mov ecx, dword [esp + 0x40]
push ecx
mov ecx, dword [edi + 0xc]
lea edx, [esp + 0x14]
push edx
mov edx, dword [edi]
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x50]
push ecx
push ebp
call fcn.00559530
mov ebx, dword [esp + 0x34]
add esp, 0x14
mov ecx, dword [esp + 0x10]
push ebx
call fcn.005594b0
mov edx, dword [esp + 0x14]
push esi
push edx
push 1
push ebx
mov dword [esp + 0x28], eax
call fcn.0051646d
mov eax, dword [esp + 0x24]
push eax
push ebx
call sym.convertifd.exe_PCL_CheckSum_Bytes
mov ecx, dword [esp + 0x2c]
push ecx
push ebx
call sym.convertifd.exe_TTF_CheckSum_Data
push ebx
call fcn.00513a0e
mov eax, dword [esp + 0x38]
add esp, 0x28
and eax, 3
jbe 0x55ae0e
mov ebx, 4
sub ebx, eax
test ebx, ebx
jle 0x55ac22
mov ebp, ebx
push esi
push 0
call fcn.00518226
add esp, 8
sub ebp, 1
jne 0x55ac12
mov edx, dword [esp + 0x10]
add ebx, edx
mov dword [edi + 0x14], ebx
xor ebx, ebx
mov eax, dword [esp + 0x1c]
push ebx
push eax
push esi
call fcn.00515def
mov ebx, dword [edi]
mov ecx, ebx
shr ecx, 0x18
push esi
push ecx
call fcn.00518226
mov edx, ebx
shr edx, 0x10
and edx, 0xff
push esi
push edx
call fcn.00518226
movzx eax, bh
push esi
push eax
call fcn.00518226
push esi
and ebx, 0xff
push ebx
call fcn.00518226
mov ecx, dword [edi]
push 4
push ecx
call sym.convertifd.exe_PCL_CheckSum_Num
mov edx, dword [edi]
push edx
call sym.convertifd.exe_TTF_CheckSum_Num
mov eax, dword [esp + 0x4c]
mov ebx, eax
shr eax, 0x18
push esi
push eax
call fcn.00518226
mov eax, ebx
add esp, 0x40
shr eax, 0x10
and eax, 0xff
push esi
push eax
call fcn.00518226
movzx ecx, bh
push esi
push ecx
call fcn.00518226
push esi
and ebx, 0xff
push ebx
call fcn.00518226
mov edx, dword [esp + 0x2c]
push 4
push edx
call sym.convertifd.exe_PCL_CheckSum_Num
mov eax, dword [esp + 0x34]
push eax
call sym.convertifd.exe_TTF_CheckSum_Num
mov eax, dword [esp + 0x3c]
mov ebx, eax
shr eax, 0x18
push esi
push eax
call fcn.00518226
mov ecx, ebx
shr ecx, 0x10
and ecx, 0xff
push esi
push ecx
call fcn.00518226
movzx edx, bh
push esi
push edx
call fcn.00518226
push esi
and ebx, 0xff
push ebx
call fcn.00518226
add esp, 0x44
mov eax, dword [esp + 0x18]
push 4
push eax
call sym.convertifd.exe_PCL_CheckSum_Num
mov ecx, dword [esp + 0x20]
push ecx
call sym.convertifd.exe_TTF_CheckSum_Num
mov eax, dword [esp + 0x1c]
mov ebx, eax
shr eax, 0x18
push esi
push eax
call fcn.00518226
mov edx, ebx
shr edx, 0x10
and edx, 0xff
push esi
push edx
call fcn.00518226
movzx eax, bh
push esi
push eax
call fcn.00518226
push esi
and ebx, 0xff
push ebx
call fcn.00518226
mov ecx, dword [esp + 0x3c]
push 4
push ecx
call sym.convertifd.exe_PCL_CheckSum_Num
mov edx, dword [esp + 0x44]
push edx
call sym.convertifd.exe_TTF_CheckSum_Num
add dword [esp + 0x54], 0x10
push 2
push 0
push esi
call fcn.00515def
add esp, 0x44
xor ebx, ebx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
add eax, 1
mov dword [esp + 0x24], eax
lea eax, [eax + eax*2]
cmp dword [ecx + eax*8], ebx
lea edi, [ecx + eax*8]
jne 0x55aae4
mov edx, dword [esp + 0x28]
push ebx
push edx
push esi
call fcn.00515def
call fcn.00559490
mov ebx, eax
shr eax, 0x18
push esi
push eax
mov dword [esp + 0x50], ebx
call fcn.00518226
movzx ecx, byte [esp + 0x52]
push esi
push ecx
call fcn.00518226
movzx edx, bh
push esi
push edx
call fcn.00518226
mov eax, ebx
and eax, 0xff
push esi
push eax
call fcn.00518226
push 4
push ebx
call sym.convertifd.exe_PCL_CheckSum_Num
push ebx
call sym.convertifd.exe_TTF_CheckSum_Num
push 2
push 0
push esi
call fcn.00515def
add esp, 0x44
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
xor ebx, ebx
jmp 0x55ac22
cmp dword [edi + 4], ebx
jne 0x55ad88
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], ebx
jmp 0x55ac2d