Function at 0x455d30
Capabilities:
Delete file

Disassembly:
push ebp
mov eax, str.vertical.ttf
mov ebp, esp
push edi
push esi
lea edx, [ebp - 0x1e4]
push ebx
sub esp, 0x2c0
mov dword [ebp - 0x280], str._WineTestVertical
mov dword [ebp - 0x27c], str._Ume_Gothic
mov dword [ebp - 0x278], 0x4ac8bf
call fcn.00445b90
test eax, eax
je 0x4566d0
lea ecx, [ebp - 0x110]
lea edx, [ebp - 0x1e4]
call fcn.00445c40
test eax, eax
je 0x4566d0
lea eax, [ebp - 0x110]
mov dword [esp + 8], 0
lea esi, [ebp - 0x280]
mov dword [esp + 4], 0x10
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_AddFontResourceExA]
sub esp, 0xc
mov ebx, eax
call fcn.00492bc0
mov dword [eax], 0x4ab7f5
mov dword [eax + 4], 0x187e
xor eax, eax
cmp ebx, 2
lea ebx, [ebp - 0x25c]
sete al
mov dword [esp + 4], str.AddFontResourceExA_should_add_2_fonts_from_vertical.ttf_n
mov dword [esp], eax
call fcn.004471c0
lea eax, [ebp - 0x296]
mov dword [esp], ebx
lea ecx, [ebp - 0x288]
mov dword [esp + 4], eax
lea edx, [ebp - 0x28c]
mov eax, 0x4aeb01
call fcn.0044c360
call fcn.00492bc0
mov dword [eax], 0x4ab7f5
mov dword [eax + 4], 0x1881
mov dword [esp + 4], str.WineTestVertical_is_not_installed_n
mov eax, dword [ebp - 0x28c]
mov dword [esp], eax
call fcn.004471c0
call fcn.00492bc0
mov dword [eax], 0x4ab7f5
mov dword [eax + 4], 0x1882
mov dword [esp + 4], str.WineTestVertical_is_not_selected_n
mov eax, dword [ebp - 0x288]
mov dword [esp], eax
call fcn.004471c0
call fcn.00492bc0
mov dword [eax], 0x4ab7f5
mov dword [eax + 4], 0x1883
mov eax, dword [ebp - 0x25c]
mov edx, dword [ebp - 0x258]
mov dword [esp + 4], str.gmBlackBoxX__u__should_be_greater_than_gmBlackBoxY__u__if_horizontal_n
mov dword [esp + 8], eax
cmp edx, eax
mov dword [esp + 0xc], edx
setb al
movzx eax, al
mov dword [esp], eax
call fcn.004471c0
lea eax, [ebp - 0x294]
mov dword [esp], ebx
lea ecx, [ebp - 0x288]
mov dword [esp + 4], eax
lea edx, [ebp - 0x28c]
mov eax, str._WineTestVertical
call fcn.0044c360
call fcn.00492bc0
mov dword [eax], 0x4ab7f5
mov dword [eax + 4], 0x1888
mov dword [esp + 4], str._WineTestVertical_is_not_installed_n
mov eax, dword [ebp - 0x28c]
mov dword [esp], eax
call fcn.004471c0
call fcn.00492bc0
mov dword [eax], 0x4ab7f5
mov dword [eax + 4], 0x1889
mov dword [esp + 4], str._WineTestVertical_is_not_selected_n
mov eax, dword [ebp - 0x288]
mov dword [esp], eax
call fcn.004471c0
call fcn.00492bc0
mov dword [eax], 0x4ab7f5
mov dword [eax + 4], 0x188a
mov eax, dword [ebp - 0x25c]
mov edx, dword [ebp - 0x258]
mov dword [esp + 4], str.gmBlackBoxX__u__should_be_less_than_gmBlackBoxY__u__if_vertical_n
mov dword [esp + 8], eax
cmp edx, eax
mov dword [esp + 0xc], edx
setb al
movzx eax, al
mov dword [esp], eax
call fcn.004471c0
call fcn.00492bc0
movzx ecx, word [ebp - 0x294]
mov dword [eax], 0x4ab7f5
mov dword [eax + 4], 0x188e
movzx eax, word [ebp - 0x296]
mov edx, ecx
mov dword [esp + 0xc], ecx
cmp dx, ax
movzx ecx, ax
mov dword [esp + 4], str.same_glyph_h:_u_v:_u_n
setne al
mov dword [esp + 8], ecx
movzx eax, al
mov dword [esp], eax
call fcn.004471c0
mov dword [ebp - 0x29c], esi
mov eax, dword [ebp - 0x29c]
mov ebx, dword [eax]
mov eax, ebx
call fcn.004460c0
test eax, eax
je 0x4565b8
mov dword [ebp - 0x284], 0x5ead
lea edi, [ebp - 0x21c]
add ebx, 1
mov dword [esp], 0
call dword [sym.imp.user32.dll_GetDC]
mov ecx, 0xe
mov dword [ebp - 0x2a4], ebx
mov esi, eax
xor eax, eax
sub esp, 4
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x204]
mov dword [esp + 4], ebx
lea edi, [ebp - 0x220]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll_strcpy]
mov edx, dword [sym.imp.gdi32.dll_CreateFontIndirectA]
mov dword [ebp - 0x220], 0xfffffc18
mov byte [ebp - 0x209], 1
mov dword [ebp - 0x214], 0x384
mov dword [ebp - 0x218], 0x384
mov dword [esp], edi
mov dword [ebp - 0x2b0], edx
call edx
mov edi, dword [sym.imp.gdi32.dll_SelectObject]
sub esp, 4
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [ebp - 0x2a0], edi
call edi
mov edx, dword [sym.imp.gdi32.dll_GetGlyphOutlineW]
sub esp, 8
mov edi, eax
lea eax, [ebp - 0x248]
mov dword [esp + 0x18], 0x4b77f0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x5ead
mov dword [esp], esi
mov dword [ebp - 0x2a8], edx
call edx
sub esp, 0x1c
mov ebx, eax
call fcn.00492bc0
mov dword [eax], 0x4ab7f5
mov dword [eax + 4], 0x1829
xor eax, eax
cmp ebx, 0xffffffff
setne al
mov dword [esp + 4], str.GetGlyphOutlineW_failed_n
mov dword [esp], eax
call fcn.004471c0
lea ecx, [ebp - 0x274]
mov dword [esp], esi
mov ebx, dword [sym.imp.gdi32.dll_GetCharABCWidthsW]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0x5ead
mov dword [esp + 4], 0x5ead
call ebx
sub esp, 0x10
mov dword [ebp - 0x2ac], eax
call fcn.00492bc0
mov dword [eax], 0x4ab7f5
mov dword [eax + 4], 0x182b
mov dword [esp + 4], str.GetCharABCWidthsW_failed_n
mov ecx, dword [ebp - 0x2ac]
mov dword [esp], ecx
call fcn.004471c0
mov dword [esp + 4], edi
mov dword [esp], esi
mov edi, dword [ebp - 0x2a0]
call edi
mov ecx, dword [sym.imp.gdi32.dll_DeleteObject]
lea edi, [ebp - 0x21c]
sub esp, 8
mov dword [esp], eax
mov dword [ebp - 0x2ac], ecx
call ecx
xor eax, eax
mov ecx, 0xe
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x2a4]
sub esp, 4
lea eax, [ebp - 0x203]
mov byte [ebp - 0x204], 0x40
mov dword [esp + 4], ecx
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
lea ecx, [ebp - 0x220]
mov dword [ebp - 0x220], 0xfffffc18
mov byte [ebp - 0x209], 1
mov dword [esp], ecx
mov edx, dword [ebp - 0x2b0]
call edx
sub esp, 4
mov dword [esp + 4], eax
mov dword [esp], esi
mov edi, dword [ebp - 0x2a0]
call edi
mov dword [ebp - 0x2a4], eax
sub esp, 8
lea eax, [ebp - 0x234]
mov dword [esp + 0x18], 0x4b77f0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x5ead
mov dword [esp], esi
mov edx, dword [ebp - 0x2a8]
call edx
sub esp, 0x1c
mov edi, eax
call fcn.00492bc0
mov dword [eax], 0x4ab7f5
mov dword [eax + 4], 0x1836
xor eax, eax
cmp edi, 0xffffffff
setne al
mov dword [esp + 4], str.GetGlyphOutlineW_failed_n
mov dword [esp], eax
call fcn.004471c0
lea eax, [ebp - 0x268]
mov dword [esp + 8], 0x5ead
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x5ead
mov dword [esp], esi
call ebx
sub esp, 0x10
mov ebx, eax
call fcn.00492bc0
mov dword [eax], 0x4ab7f5
mov dword [eax + 4], 0x1838
mov dword [esp], ebx
mov dword [esp + 4], str.GetCharABCWidthsW_failed_n
call fcn.004471c0
call fcn.00492bc0
mov dword [eax], 0x4ab7f5
mov dword [eax + 4], 0x1839
mov eax, dword [ebp - 0x268]
mov edx, dword [ebp - 0x22c]
mov dword [esp + 4], str.expected__d__got__ld_n
mov dword [esp + 8], eax
cmp edx, eax
mov dword [esp + 0xc], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004471c0
call fcn.00492bc0
mov dword [eax], 0x4ab7f5
mov edx, dword [ebp - 0x234]
mov dword [eax + 4], 0x183b
mov eax, dword [ebp - 0x264]
mov dword [esp + 0xc], edx
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 4], str.expected__d__got__d_n
movzx eax, al
mov dword [esp], eax
call fcn.004471c0
call fcn.00492bc0
mov dword [eax], 0x4ab7f5
mov dword [eax + 4], 0x183d
movsx edx, word [ebp - 0x224]
mov eax, dword [ebp - 0x260]
add eax, dword [ebp - 0x268]
add eax, dword [ebp - 0x264]
mov dword [esp + 0xc], edx
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 4], str.expected__d__got__d_n
movzx eax, al
mov dword [esp], eax
call fcn.004471c0
lea edx, [ebp - 0x1e0]
xor eax, eax
mov ecx, 0x34
mov edi, edx
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x1e4]
mov dword [ebp - 0x1e4], 0xd4
mov dword [esp + 8], eax
mov dword [esp + 4], 0xd4
mov dword [esp], esi
call dword [sym.imp.gdi32.dll_GetOutlineTextMetricsA]
sub esp, 0xc
mov ebx, eax
call fcn.00492bc0
mov dword [eax], 0x4ab7f5
mov dword [eax + 4], 0x1844
xor eax, eax
test ebx, ebx
setne al
mov dword [esp + 4], str.GetOutlineTextMetricsA_failed_n
mov dword [esp], eax
call fcn.004471c0
lea eax, [ebp - 0x290]
mov dword [esp], esi
mov ebx, dword [sym.imp.gdi32.dll_GetFontData]
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x22
mov dword [esp + 4], 0x61656876
call ebx
sub esp, 0x14
cmp eax, 0xffffffff
je 0x456678
lea eax, [ebp - 0x292]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x284]
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov dword [esp], esi
call dword [sym.imp.gdi32.dll_GetGlyphIndicesW]
sub esp, 0x14
mov edi, eax
mov eax, 0x184c
call fcn.00446860
xor eax, eax
test edi, edi
mov dword [esp + 4], str.GetGlyphIndicesW_failed_n
setne al
mov dword [esp], eax
call fcn.004471c0
movzx eax, word [ebp - 0x290]
movzx edx, word [ebp - 0x292]
rol ax, 8
mov word [ebp - 0x290], ax
cmp dx, ax
jb 0x456668
movzx eax, ax
add eax, edx
lea edx, [ebp - 0x28e]
add eax, eax
mov dword [esp], esi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 2
mov dword [esp + 8], eax
mov dword [esp + 4], 0x78746d76
call ebx
sub esp, 0x14
mov ebx, eax
mov eax, 0x1854
call fcn.00446860
xor eax, eax
cmp ebx, 0xffffffff
mov dword [esp + 4], str.GetFontData_vmtx__failed_n
setne al
mov dword [esp], eax
call fcn.004471c0
mov eax, 0x1856
rol word [ebp - 0x28e], 8
call fcn.00446860
mov eax, dword [ebp - 0x188]
mov edi, dword [ebp - 0x22c]
mov dword [esp + 4], 0x3e8
mov edx, dword [sym.imp.kernel32.dll_MulDiv]
mov dword [esp + 8], eax
movsx eax, word [ebp - 0x28e]
mov dword [esp], eax
mov dword [ebp - 0x2a8], edx
call edx
mov ebx, eax
mov eax, dword [ebp - 0x188]
sub esp, 0xc
mov dword [esp + 4], 0x3e8
mov dword [esp + 8], eax
movsx eax, word [ebp - 0x28e]
mov dword [esp], eax
mov edx, dword [ebp - 0x2a8]
call edx
sub esp, 0xc
mov edx, eax
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebx
mov dword [esp + 4], str.expected__d__got__ld_n
mov eax, dword [ebp - 0x22c]
sub eax, edx
mov edx, eax
neg edx
cmovns eax, edx
cmp eax, 1
setbe al
movzx eax, al
mov dword [esp], eax
call fcn.004471c0
call fcn.00492bc0
mov dword [eax], 0x4ab7f5
mov dword [eax + 4], 0x1862
mov eax, dword [ebp - 0x274]
mov ebx, dword [ebp - 0x180]
mov ecx, dword [ebp - 0x270]
mov edx, dword [ebp - 0x228]
mov dword [esp + 0xc], eax
add eax, ebx
mov dword [esp + 0x10], ecx
add eax, ecx
mov dword [esp + 8], edx
cmp eax, edx
mov dword [esp + 0x14], ebx
sete al
mov dword [esp + 4], str.got__d__expected_abcA__d___abcB__u___descent__d__n
movzx eax, al
mov dword [esp], eax
call fcn.004471c0
mov eax, dword [ebp - 0x2a4]
mov dword [esp], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2a0]
call eax
sub esp, 8
mov dword [esp], eax
mov eax, dword [ebp - 0x2ac]
call eax
sub esp, 4
mov dword [esp + 4], esi
mov dword [esp], 0
call dword [sym.imp.user32.dll_ReleaseDC]
sub esp, 8
jmp 0x4565da
call fcn.00492bc0
mov dword [eax], 0x4ab7f5
mov dword [eax + 4], 0x1893
mov dword [esp + 4], ebx
mov dword [esp], str._s_is_not_installed_n
call fcn.00446a30
add dword [ebp - 0x29c], 4
mov eax, dword [ebp - 0x29c]
lea esi, [ebp - 0x274]
cmp eax, esi
jne 0x455f93
lea eax, [ebp - 0x110]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x10
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_RemoveFontResourceExA]
sub esp, 0xc
mov ebx, eax
call fcn.00492bc0
mov dword [eax], 0x4ab7f5
mov dword [eax + 4], 0x189a
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], str.RemoveFontResourceEx___error__ld_n
mov dword [esp + 8], eax
call fcn.004471c0
lea eax, [ebp - 0x110]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_DeleteFileA]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [edx + edx + 1]
jmp 0x456433
mov eax, 0x185d
call fcn.00446860
movsx eax, word [ebp - 0x224]
mov ebx, dword [ebp - 0x240]
mov ecx, dword [ebp - 0x180]
mov edx, dword [ebp - 0x22c]
mov dword [esp + 4], str.got__ld__expected_rgm.origin.x__ld___vgm.cellIncX__d___descent__d__n
mov dword [esp + 0x10], eax
add eax, ebx
add eax, ecx
mov dword [esp + 0x14], ecx
cmp eax, edx
mov dword [esp + 0xc], ebx
sete al
mov dword [esp + 8], edx
movzx eax, al
mov dword [esp], eax
call fcn.004471c0
jmp 0x45651f
mov eax, 0x1879
call fcn.00446860
mov dword [esp], str.Failed_to_create_ttf_file_for_testing_n
call fcn.00446a30
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret