Function at 0x5648f0
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x12c
mov eax, dword [0x5bd254]
xor eax, esp
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x130]
push ebx
mov ebx, dword [esp + 0x140]
push ebp
mov ecx, ebx
shr ecx, 0x18
push esi
push ecx
mov dword [esp + 0x18], eax
call fcn.00518226
movzx edx, byte [esp + 0x14e]
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
push esi
call fcn.0051600c
push esi
push 0
mov dword [esp + 0x34], eax
call fcn.00518226
push esi
push 0
call fcn.00518226
push esi
push 0
call fcn.00518226
push esi
push 0
call fcn.00518226
add esp, 0x44
push esi
push 2
push 1
push 0x58fa0c
call fcn.0051646d
push esi
push 0
call fcn.00518226
push esi
push 0x2e
call fcn.00518226
mov ecx, dword [edi + 0x24]
cmp dword [ecx + 0xc], 0
mov edx, dword [esp + 0x160]
push edx
sete bl
call sym.convertifd.exe_CV_IsAsianSymSet
add esp, 0x24
test eax, eax
je 0x5649b6
mov bl, 1
movzx eax, bl
push esi
push eax
call fcn.00518226
mov cx, word [edi + 0x558]
neg cx
push esi
sbb ecx, ecx
and ecx, 3
push ecx
call fcn.00518226
mov dx, word [edi + 0x55c]
add dx, dx
add dx, dx
add dx, word [edi + 0x55a]
push esi
movzx eax, dx
movzx ebp, ax
mov eax, ebp
shr eax, 8
push eax
call fcn.00518226
push esi
and ebp, 0xff
push ebp
call fcn.00518226
movzx eax, word [edi + 0x570]
movzx ebp, ax
mov ecx, ebp
shr ecx, 8
push esi
push ecx
call fcn.00518226
push esi
and ebp, 0xff
push ebp
call fcn.00518226
cmp dword [edi + 0x560], 0x10
push esi
setne bl
sub bl, 1
and bl, 0x40
add bl, 0x40
movzx edx, bl
push edx
call fcn.00518226
push esi
push 0
call fcn.00518226
lea eax, [edi + 0x34c]
lea ebp, [esp + 0x70]
add esp, 0x40
sub ebp, eax
mov cl, byte [eax]
mov byte [eax + ebp], cl
add eax, 1
test cl, cl
jne 0x564a60
lea eax, [esp + 0x30]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x564a73
sub eax, edx
cmp eax, 0x10
jae 0x564ac8
lea eax, [esp + 0x30]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x564a90
sub eax, edx
cmp eax, 0x10
mov dword [esp + 0xc], eax
jge 0x564ac3
mov ebp, 0x10
sub ebp, eax
push ebp
lea ecx, [esp + eax + 0x34]
push 0x20
push ecx
call fcn.00511e90
add esp, 0xc
add dword [esp + 0xc], ebp
mov eax, dword [esp + 0xc]
mov byte [esp + eax + 0x30], 0
lea eax, [esp + 0x30]
push eax
push str._16.16s
push esi
call fcn.00517e58
mov ecx, dword [edi + 0x18]
movzx eax, word [ecx + 0x12]
movzx ebp, ax
mov edx, ebp
shr edx, 8
push esi
push edx
call fcn.00518226
push esi
and ebp, 0xff
push ebp
call fcn.00518226
mov eax, dword [edi + 0x30]
push 0x2e
push eax
call sym.convertifd.exe_TT_Char_Index
mov ecx, dword [edi + 0x38]
mov edx, dword [edi + 0x34]
movzx ebp, ax
push 0
push ebp
push ecx
push edx
call sym.convertifd.exe_TT_Load_Glyph
add esp, 0x34
test eax, eax
jne 0x564b36
mov ecx, dword [edi + 0x38]
lea eax, [esp + 0x14]
push eax
push ecx
call sym.convertifd.exe_TT_Get_Glyph_Metrics
movzx ebp, word [esp + 0x34]
add esp, 8
movzx ebp, bp
mov edx, ebp
shr edx, 8
push esi
push edx
call fcn.00518226
push esi
and ebp, 0xff
push ebp
call fcn.00518226
mov eax, dword [edi + 0x24]
movzx eax, word [eax + 0xa]
movzx ebp, ax
mov ecx, ebp
shr ecx, 8
push esi
push ecx
call fcn.00518226
push esi
and ebp, 0xff
push ebp
call fcn.00518226
mov edx, dword [edi + 0x24]
movzx eax, word [edx + 8]
movzx ebp, ax
mov eax, ebp
shr eax, 8
push esi
push eax
call fcn.00518226
push esi
and ebp, 0xff
push ebp
call fcn.00518226
mov eax, dword [esp + 0x174]
add esp, 0x30
cmp eax, 0x131
jne 0x564bc3
mov ecx, dword [esp + 0x140]
push ecx
call sym.convertifd.exe_CV_IsDBSymSet
add esp, 4
test eax, eax
setne bl
add bl, 2
jmp 0x564bcc
cmp eax, 0x12c
jne 0x564bcc
mov bl, 0xb
movzx edx, bl
push esi
push edx
call fcn.00518226
push esi
push 0
call fcn.00518226
mov ebx, dword [esp + 0x154]
add esp, 0x10
cmp ebx, 0x12c
jne 0x564c4b
push esi
push 0
call fcn.00518226
push esi
push 0
call fcn.00518226
push esi
push 0
call fcn.00518226
push esi
push 0
call fcn.00518226
push esi
push 0
call fcn.00518226
push esi
push 0
call fcn.00518226
push esi
push 0
call fcn.00518226
push esi
push 0
call fcn.00518226
add esp, 0x40
push esi
push 0
call fcn.00518226
push esi
push 0
call fcn.00518226
add esp, 0x10
jmp 0x564d52
cmp ebx, 0x131
jne 0x564d52
mov eax, dword [esp + 0x140]
push eax
call sym.convertifd.exe_CV_GetPCLName
mov ebp, eax
add esp, 4
cmp byte [ebp], 0
je 0x564ca0
push ebp
call fcn.00511d40
mov ecx, ebp
add esp, 4
lea ebx, [ecx + 1]
lea ecx, [ecx]
mov dl, byte [ecx]
add ecx, 1
test dl, dl
jne 0x564c80
sub ecx, ebx
movzx cx, byte [ecx + ebp - 1]
shl eax, 5
add cx, ax
sub cx, 0x40
movzx eax, cx
jmp 0x564ca5
mov eax, 0x115
movzx ebx, ax
mov edx, ebx
shr edx, 8
push esi
push edx
call fcn.00518226
push esi
and ebx, 0xff
push ebx
call fcn.00518226
mov ebp, dword [esp + 0x150]
add esp, 0x10
cmp ebp, 7
jne 0x564cd5
lea eax, [ebp + 0x19]
jmp 0x564cdc
mov eax, dword [edi + 0x20]
movzx eax, word [eax + 0x42]
movzx ebx, ax
mov ecx, ebx
shr ecx, 8
push esi
push ecx
call fcn.00518226
push esi
and ebx, 0xff
push ebx
call fcn.00518226
push ebp
call sym.convertifd.exe_CV_IsDBSymSet
neg eax
sbb eax, eax
and eax, 0xff00
add eax, 0xff
movzx ebx, ax
mov edx, ebx
shr edx, 8
push esi
push edx
call fcn.00518226
push esi
and ebx, 0xff
push ebx
call fcn.00518226
push esi
push 0
call fcn.00518226
push esi
push 0
call fcn.00518226
push esi
push 0
call fcn.00518226
push esi
push 0
call fcn.00518226
mov ebx, dword [esp + 0x188]
add esp, 0x44
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x10]
push ebx
push eax
mov eax, dword [esp + 0x144]
push ecx
push edi
mov ecx, esi
call fcn.00563ba0
push esi
call fcn.0051600c
mov ebx, eax
mov eax, dword [esp + 0x1c]
push 0
push eax
sub ebx, eax
push esi
mov dword [esp + 0x28], ebx
call fcn.00515def
mov edx, ebx
shr edx, 0x18
push esi
push edx
call fcn.00518226
movzx eax, byte [esp + 0x32]
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
add esp, 0x40
push 2
push 0
push esi
call fcn.00515def
mov ecx, dword [esp + 0x13c]
add esp, 0xc
pop ebp
pop ebx
xor ecx, esp
call fcn.00511a80
add esp, 0x12c
ret