Function at 0x44523a
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb20
mov eax, dword [0x5836e0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0xb10], esi
mov dword [ebp - 0xb1c], edi
cmp dword [esi + 0x13c], ebx
je 0x445272
xor eax, eax
jmp 0x4459a5
mov dword [ebp - 0xb04], ebx
cmp dword [esi + 0x12c], ebx
jle 0x4452d0
mov ecx, ebx
mov dword [ebp - 0xb00], ebx
mov esi, dword [esi + 0x138]
add esi, ecx
push edi
lea eax, [esi + 8]
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
je 0x44533c
mov eax, dword [ebp - 0xb04]
mov esi, dword [ebp - 0xb10]
inc eax
mov ecx, dword [ebp - 0xb00]
add ecx, 0x25c
mov dword [ebp - 0xb04], eax
mov dword [ebp - 0xb00], ecx
cmp eax, dword [esi + 0x12c]
jl 0x445288
mov eax, dword [ebp + 0xc]
push 0x258
mov dword [ebp - 0xafc], eax
lea eax, [ebp - 0xaf8]
push ebx
push eax
call fcn.004f5a90
push 0x40
lea eax, [ebp - 0x44]
push ebx
push eax
call fcn.004f5a90
add esp, 0x18
lea eax, [ebp - 0x44]
mov ecx, esi
push eax
lea eax, [ebp - 0x8ec]
push eax
push edi
call fcn.0044327c
test eax, eax
jne 0x445357
mov esi, edi
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
cmp ax, bx
jne 0x445316
sub esi, ecx
sar esi, 1
add esi, 0x64
push 2
push esi
call fcn.004e1c42
pop ecx
pop ecx
push str.Cant_retrieve_font_family_from_file:_n
jmp 0x4456cc
xor ecx, ecx
inc ecx
cmp dword [ebp + 0xc], ebx
je 0x44572f
cmp dword [esi], ebx
jne 0x44572f
mov dword [esi], ecx
jmp 0x44572f
xor ecx, ecx
inc ecx
cmp word [ebp - 0x8ec], cx
jne 0x445370
cmp word [ebp - 0x8ea], bx
je 0x44572f
or dword [ebp - 0xb18], 0xffffffff
mov dword [ebp - 0xb00], ebx
mov dword [ebp - 0xb20], ebx
mov dword [ebp - 0xb04], ebx
cmp dword [esi + 0x12c], ebx
jle 0x445407
mov ecx, ebx
mov dword [ebp - 0xb14], ebx
mov eax, dword [esi + 0x138]
add eax, ecx
lea ecx, [ebp - 0x8ec]
mov dword [ebp - 0xb08], eax
add eax, 0x210
push ecx
push eax
mov dword [ebp - 0xb0c], eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x4454a6
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0xb0c]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x4454a6
mov eax, dword [ebp - 0xb04]
mov ecx, dword [ebp - 0xb14]
inc eax
add ecx, 0x25c
mov dword [ebp - 0xb04], eax
mov dword [ebp - 0xb14], ecx
cmp eax, dword [esi + 0x12c]
jl 0x445399
push 0x5c
lea eax, [ebp - 0x8a0]
push ebx
push eax
call fcn.004f5a90
add esp, 0xc
mov word [ebp - 0x888], 4
lea eax, [ebp - 0x8ec]
mov byte [ebp - 0x885], 0x31
push eax
push 0x20
lea eax, [ebp - 0x884]
push eax
call fcn.00401a0b
lea eax, [ebp - 0x8a0]
mov dword [ebp - 0x8a0], 0xa
push eax
mov dword [ebp - 0x890], 0x190
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov dword [ebp - 0xb0c], eax
mov dword [ebp - 0xb14], ebx
test eax, eax
je 0x4454ff
push eax
push ebx
call fcn.0044432d
mov dword [ebp - 0xb08], eax
pop ecx
pop ecx
test eax, eax
je 0x4454e7
lea ecx, [ebp - 0x8ec]
push ecx
push dword [eax + 0xc8]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x4454d2
inc eax
mov dword [ebp - 0xb00], eax
jmp 0x4454db
mov eax, dword [ebp - 0xb08]
mov eax, dword [eax + 0x258]
mov dword [ebp - 0xb00], eax
xor eax, eax
inc eax
mov dword [ebp - 0xb20], eax
mov eax, dword [ebp - 0xb04]
mov dword [ebp - 0xb18], eax
jmp 0x44559a
xor eax, eax
inc eax
mov dword [ebp - 0xb14], eax
push dword [ebp - 0xb08]
call fcn.004e1bea
pop ecx
push dword [ebp - 0xb0c]
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp dword [ebp - 0xb14], ebx
je 0x44559a
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x8ec]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x44559a
lea eax, [ebp - 0x44]
push eax
push 0x20
lea eax, [ebp - 0x884]
push eax
call fcn.00401a0b
lea eax, [ebp - 0x8a0]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
push eax
push ebx
mov dword [ebp - 0xb0c], eax
call fcn.0044432d
mov dword [ebp - 0xb08], eax
pop ecx
pop ecx
test eax, eax
je 0x44558e
lea ecx, [ebp - 0x8ec]
push ecx
push dword [eax + 0xc8]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x445582
lea eax, [ebp - 0x44]
push eax
push 0x20
lea eax, [ebp - 0x8ec]
push eax
call fcn.00401a0b
xor eax, eax
inc eax
mov dword [ebp - 0xb00], eax
push dword [ebp - 0xb08]
call fcn.004e1bea
pop ecx
push dword [ebp - 0xb0c]
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebp - 0xb00]
push edi
mov dword [ebp - 0x8a4], eax
lea eax, [ebp - 0xaf4]
push 0x104
push eax
call fcn.00401a0b
push 0x2e
push edi
call fcn.004f6844
pop ecx
pop ecx
test eax, eax
je 0x445694
push str..bdf
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x445694
push edi
call fcn.00436e19
mov esi, eax
pop ecx
test esi, esi
jne 0x445616
mov esi, edi
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
cmp ax, bx
jne 0x4455f0
sub esi, ecx
sar esi, 1
add esi, 0x64
push 2
push esi
call fcn.004e1c42
pop ecx
pop ecx
push str.Cant_load_BDF_font:_n
jmp 0x4456cc
cmp dword [ebp - 0xb20], ebx
je 0x445643
imul edx, dword [ebp - 0xb18], 0x25c
mov ecx, dword [ebp - 0xb10]
push esi
mov ecx, dword [ecx + 0x138]
mov ecx, dword [ecx + edx + 4]
call fcn.00436d96
jmp 0x4459a2
push 4
call fcn.004e1bc1
mov dword [ebp - 0xb08], eax
pop ecx
test eax, eax
je 0x445659
mov dword [eax], ebx
jmp 0x44565b
mov eax, ebx
push esi
mov ecx, eax
mov dword [ebp - 0xaf8], eax
call fcn.00436d96
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov dword [ebp - 0x8ac], eax
mov ecx, esi
mov eax, dword [esi]
call dword [eax + 8]
mov ecx, dword [ebp - 0xb10]
mov dword [ebp - 0x8a8], eax
add ecx, 0x128
jmp 0x445996
push ebx
push 0x10
push edi
call dword [sym.imp.GDI32.dll_AddFontResourceExW]
test eax, eax
jne 0x445736
mov esi, edi
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
cmp ax, bx
jne 0x4456ab
sub esi, ecx
sar esi, 1
add esi, 0x64
push 2
push esi
call fcn.004e1c42
pop ecx
pop ecx
push str.Cant_register_font:_n
push esi
mov edi, eax
push edi
call fcn.00401a0b
push dword [ebp - 0xb1c]
push esi
push edi
call fcn.004019cd
push str._nContinue_
push esi
push edi
call fcn.004019cd
mov ecx, dword [0x5a22a0]
xor eax, eax
inc eax
push eax
push 0xffffffffffffffff
call fcn.0040eff3
push eax
push 0x11
push edi
call fcn.00421ef1
push edi
mov esi, eax
call fcn.004e1bea
add esp, 0x18
cmp esi, 2
jne 0x44572c
mov ecx, dword [ebp - 0xb10]
xor eax, eax
inc eax
mov dword [ecx + 0x13c], eax
jmp 0x44526b
xor ecx, ecx
inc ecx
mov eax, ecx
jmp 0x4459a5
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebp - 0xb04], eax
test eax, eax
je 0x445990
lea eax, [ebp - 0x8ec]
mov dword [ebp - 0xb00], ebx
push eax
push ebx
push 3
push ebx
push 4
xor eax, eax
inc eax
push eax
push ebx
push ebx
push ebx
push 0x190
push ebx
push ebx
push ebx
push 0x12
call dword [sym.imp.GDI32.dll_CreateFontW]
mov esi, eax
xor eax, eax
mov word [ebp - 0x844], ax
test esi, esi
je 0x4457fd
push esi
push ebx
call fcn.0044432d
mov dword [ebp - 0xb18], eax
pop ecx
pop ecx
test eax, eax
je 0x445882
lea ecx, [ebp - 0x8ec]
push ecx
push dword [eax + 0xc8]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x4457e7
mov eax, dword [ebp - 0xb18]
push dword [eax + 0xc8]
lea eax, [ebp - 0x8ec]
push eax
push edi
lea eax, [ebp - 0x844]
push str.____RegFont_failed:__s._Req:__s__Created:__s_n
push eax
call fcn.00403c16
add esp, 0x14
xor eax, eax
lea edi, [eax + 1]
mov dword [ebp - 0xb00], edi
jmp 0x4457e9
mov edi, ebx
push dword [ebp - 0xb18]
call fcn.004e1bea
pop ecx
test edi, edi
je 0x445882
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x8ec]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x445882
test esi, esi
je 0x44581d
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
lea eax, [ebp - 0x44]
push eax
push ebx
push 3
push ebx
push 4
xor eax, eax
inc eax
push eax
push ebx
push ebx
push ebx
push 0x190
push ebx
push ebx
push ebx
push 0x12
call dword [sym.imp.GDI32.dll_CreateFontW]
mov esi, eax
push esi
push ebx
call fcn.0044432d
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x445882
lea eax, [ebp - 0x44]
push eax
push dword [edi + 0xc8]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x44587b
lea eax, [ebp - 0x44]
push eax
push 0x20
lea eax, [ebp - 0x8ec]
push eax
call fcn.00401a0b
mov dword [ebp - 0xb00], ebx
push edi
call fcn.004e1bea
pop ecx
mov eax, dword [ebp - 0xb00]
test esi, esi
je 0x44589f
test eax, eax
je 0x44589f
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebp - 0xb00]
mov esi, ebx
cmp word [ebp - 0x844], bx
je 0x4458b9
test eax, eax
je 0x4458b9
lea eax, [ebp - 0x844]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
test esi, esi
je 0x44597e
mov edi, dword [ebp - 0xb04]
push esi
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push ebx
push edi
mov dword [ebp - 0xb0c], eax
call dword [sym.imp.GDI32.dll_GetFontUnicodeRanges]
mov dword [ebp - 0xb08], eax
test eax, eax
je 0x445965
xor ecx, ecx
inc ecx
push ecx
push eax
call fcn.004e1c42
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x445965
mov eax, dword [ebp - 0xb08]
push edi
push dword [ebp - 0xb04]
mov dword [edi], eax
call dword [sym.imp.GDI32.dll_GetFontUnicodeRanges]
test eax, eax
je 0x44595e
xor edx, edx
xor eax, eax
inc edx
cmp dword [edi + 4], edx
setne al
mov dword [ebp - 0x8ac], eax
je 0x44595e
cmp dword [edi + 0xc], ebx
jbe 0x44595e
lea edx, [edi + 0x12]
movzx eax, word [edx - 2]
mov ecx, 0x2554
cmp ax, cx
jae 0x44594a
mov ecx, eax
movzx eax, word [edx]
add ecx, eax
cmp ecx, 0x2555
ja 0x445955
inc ebx
add edx, 4
cmp ebx, dword [edi + 0xc]
jb 0x44592d
jmp 0x44595e
xor eax, eax
inc eax
mov dword [ebp - 0x8a8], eax
push edi
call fcn.004e1bea
pop ecx
push dword [ebp - 0xb0c]
push dword [ebp - 0xb04]
call dword [sym.imp.GDI32.dll_SelectObject]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [ebp - 0xb04]
call dword [sym.imp.GDI32.dll_DeleteDC]
mov esi, dword [ebp - 0xb10]
lea ecx, [esi + 0x128]
lea eax, [ebp - 0xafc]
push eax
call fcn.00446079
xor eax, eax
inc eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004f4166
leave
ret 8