Function at 0x469280
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4bbfbb
mov eax, dword fs:[0]
push eax
sub esp, 0xb4
mov eax, dword [0x4ea160]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x78], edi
cmp byte [edi + 0x249], 0
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov ebx, dword [ebp + 0x10]
mov ecx, dword [edi + 0x250]
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x94], ebx
jne 0x4692ec
push dword [ebp + 0x14]
push ebx
push eax
push edx
push ecx
call dword [sym.imp.GDI32.dll_TextOutA]
jmp 0x469a79
mov esi, dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov dword [ebp - 0x34], 0x10000
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0xb8]
push eax
push 1
push 0x4c4940
push ecx
mov dword [ebp - 0x64], ebx
call esi
lea eax, [ebp - 0xc0]
push eax
push 2
push 0x4c94c0
push dword [edi + 0x250]
call esi
push dword [edi + 0x250]
lea ecx, [ebp - 0xa0]
call fcn.00498420
mov dword [ebp - 4], 0
lea ecx, [ebp - 0xa0]
push 0
push 1
call fcn.004984b0
test al, al
jne 0x469a67
mov eax, dword [ebp - 0xa0]
mov esi, dword [eax + 4]
mov ebx, dword [eax + 0x1c]
add ebx, 3
and ebx, 0xfffffffc
lea eax, [esi + 2]
imul ebx, eax
mov dword [ebp - 0x7c], ebx
test ebx, ebx
jle 0x469a67
push 1
push 6
lea ecx, [ebp - 0xa0]
add esi, 6
call fcn.00498640
mov edx, eax
mov dword [ebp - 0x6c], eax
mov eax, dword [edi + 0x184]
mov ecx, eax
imul edx, esi
shr eax, 0xb
shr ecx, 0xa
and eax, 0xffffff01
and ecx, 0xffffff01
mov dword [ebp - 0x80], eax
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0xac], edx
lea eax, [edx + ebx]
test cl, cl
jne 0x4693ce
mov eax, ebx
push 4
push eax
call fcn.004898f0
mov ebx, dword [ebp - 0x94]
push ebx
mov dword [ebp - 0x70], eax
call fcn.00451d00
mov edx, eax
add esp, 0xc
mov ecx, edx
mov dword [ebp - 0x8c], edx
sub ecx, ebx
je 0x469a5a
mov eax, dword [sym.imp.GDI32.dll_GetGlyphOutlineA]
mov ebx, dword [sym.imp.USER32.dll_SetRectEmpty]
mov esi, dword [ebp - 0x64]
mov dword [ebp - 0x90], eax
mov dword [ebp - 0xa4], ebx
movzx ebx, byte [esi]
cmp ecx, 1
je 0x46942b
movzx eax, byte [esi + 1]
shl ebx, 8
add ebx, eax
mov eax, dword [ebp - 0x90]
cmp ebx, 0x20
jne 0x469441
mov ebx, dword [ebp - 0x60]
add ebx, dword [ebp - 0xb8]
mov dword [ebp - 0x60], ebx
jmp 0x4699a7
cmp ebx, 0x8140
jne 0x46945a
mov ebx, dword [ebp - 0x60]
add ebx, dword [ebp - 0xc0]
mov dword [ebp - 0x60], ebx
jmp 0x4699a7
lea ecx, [ebp - 0x34]
push ecx
push dword [ebp - 0x70]
lea ecx, [ebp - 0x48]
push dword [ebp - 0x7c]
push ecx
push 5
push ebx
push dword [edi + 0x250]
call eax
cmp eax, 0xffffffff
je 0x4699cf
lea eax, [ebp - 0x48]
push eax
call fcn.00467e00
mov ebx, dword [ebp - 0x48]
add esp, 4
mov eax, dword [ebp - 0x60]
add eax, dword [ebp - 0x40]
mov edi, dword [edi + 0x10]
mov dword [ebp - 0x60], eax
lea eax, [ebx + 3]
and eax, 0xfffc
mov dword [ebp - 0x5c], eax
mov ecx, dword [edi + 8]
mov eax, dword [ebp - 0xa0]
mov esi, dword [eax + 8]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x50], eax
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x3c]
cdq
dec ecx
xor eax, edx
sub eax, edx
sub eax, dword [ebp - 0x88]
mov edx, eax
mov dword [ebp - 0x4c], eax
sub edx, esi
mov esi, dword [ebp - 0x50]
add edx, ecx
lea ecx, [esi + 3]
and ecx, 0xfffffffc
imul edx, ecx
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x54], ecx
add edx, dword [edi + 0xc]
mov edi, dword [ebp - 0x60]
sub esi, edi
add edx, edi
cmp ebx, esi
mov dword [ebp - 0x58], edx
cmovl esi, ebx
mov ebx, eax
cmp dword [ebp - 0x44], ebx
mov eax, dword [ebp - 0x80]
cmovl ebx, dword [ebp - 0x44]
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], ebx
test al, al
je 0x469590
lea eax, [ebp - 0x20]
mov dword [ebp - 0x24], vtable.FCRect.0
push eax
call dword [ebp - 0xa4]
mov byte [ebp - 4], 2
mov ecx, edi
mov eax, dword [ebp - 0xa0]
mov edx, dword [ebp - 0x40]
sub ecx, edx
mov edi, dword [ebp - 0x88]
add edx, 2
mov esi, dword [eax + 4]
movsx eax, word [ebp - 0x38]
add eax, ecx
mov dword [ebp - 0x20], ecx
add eax, edx
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x24]
lea eax, [edi + 2]
add eax, esi
mov dword [ebp - 0x14], eax
call fcn.00457a10
mov edi, dword [ebp - 0x78]
lea eax, [ebp - 0x24]
push eax
mov al, byte [edi + 0x228]
mov ecx, dword [edi + 0x10]
add al, 0x70
movzx eax, al
push eax
call fcn.00463d70
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x24], vtable.FCRect.0
jmp 0x469593
mov edi, dword [ebp - 0x78]
cmp byte [ebp - 0xa8], 0
je 0x4698c2
push dword [ebp - 0xac]
mov ecx, dword [ebp - 0x70]
mov esi, dword [ebp - 0x7c]
add esi, ecx
mov dword [ebp - 0x64], ecx
push 0
push esi
call sub.VCRUNTIME140.dll_memset
mov edx, dword [ebp - 0x6c]
add esp, 0xc
lea eax, [edx*2 + 3]
add eax, esi
mov dword [ebp - 0x68], eax
test ebx, ebx
jle 0x4695fe
mov esi, dword [ebp - 0x64]
mov edi, eax
mov dword [ebp - 0x54], ebx
mov ebx, dword [ebp - 0x50]
nop word [eax + eax]
push ebx
push esi
push edi
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [ebp - 0x6c]
add esp, 0xc
add esi, dword [ebp - 0x5c]
add edi, edx
sub dword [ebp - 0x54], 1
jne 0x4695e0
mov edi, dword [ebp - 0x78]
jmp 0x469601
mov ebx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x7c]
add eax, edx
add ecx, eax
mov eax, dword [ebp - 0x4c]
add eax, 2
mov dword [ebp - 0x54], eax
test eax, eax
jle 0x469997
cmp byte [ebp - 0x80], 0
je 0x469770
lea eax, [ebx + 4]
lea ebx, [ecx + 1]
mov dword [ebp - 0x68], eax
sub ebx, edx
add ecx, 2
inc ebx
add ecx, edx
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x74], ebx
xor esi, esi
test eax, eax
jle 0x469742
mov eax, dword [ebp - 0x5c]
mov ecx, ebx
mov dword [ebp - 0x50], eax
lea eax, [edx - 2]
mov dword [ebp - 0x64], eax
lea eax, [edx - 1]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x84], eax
mov al, byte [eax + ecx]
test al, al
je 0x46967b
mov cl, byte [edi + 0x24c]
add cl, 0x7f
add cl, al
jmp 0x469719
xor dl, dl
cmp dl, byte [ecx - 2]
sbb dl, dl
and dl, byte [ecx - 2]
mov cl, byte [ecx - 1]
cmp dl, cl
movzx ebx, cl
movzx eax, dl
cmovae ebx, eax
mov eax, dword [ebp - 0x4c]
mov cl, byte [eax]
cmp bl, cl
movzx edx, cl
mov ecx, dword [ebp - 0x64]
movzx eax, bl
cmovae edx, eax
mov eax, dword [ebp - 0x4c]
mov cl, byte [ecx + eax]
cmp dl, cl
movzx ebx, cl
mov ecx, dword [ebp - 0x6c]
movzx eax, dl
cmovae ebx, eax
mov eax, dword [ebp - 0x4c]
mov cl, byte [eax + ecx]
cmp bl, cl
movzx eax, bl
movzx edx, cl
cmovae edx, eax
mov eax, dword [ebp - 0x50]
mov cl, byte [eax - 2]
cmp dl, cl
movzx ebx, cl
movzx eax, dl
cmovae ebx, eax
mov eax, dword [ebp - 0x50]
mov cl, byte [eax - 1]
cmp bl, cl
movzx eax, bl
movzx edx, cl
cmovae edx, eax
mov eax, dword [ebp - 0x50]
mov cl, byte [eax]
cmp dl, cl
movzx ebx, cl
mov ecx, dword [edi + 0x228]
movzx eax, dl
cmovae ebx, eax
movzx eax, bl
cmp eax, ecx
jg 0x46970f
add cl, 0x70
jmp 0x469719
mov cl, byte [edi + 0x24c]
dec cl
add cl, bl
mov eax, dword [ebp - 0x58]
inc dword [ebp - 0x50]
mov byte [esi + eax], cl
inc esi
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x84]
inc ecx
mov dword [ebp - 0x4c], ecx
cmp esi, dword [ebp - 0x68]
jl 0x469664
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x74]
mov eax, dword [edi + 0x10]
add ebx, edx
add dword [ebp - 0x5c], edx
mov dword [ebp - 0x74], ebx
mov eax, dword [eax + 8]
mov eax, dword [eax + 4]
add eax, 3
and eax, 0xfffffffc
sub ecx, eax
sub dword [ebp - 0x54], 1
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x58], ecx
jne 0x469640
jmp 0x469997
lea eax, [ecx + 1]
lea esi, [ebx + 4]
sub eax, edx
lea ebx, [ecx + 2]
mov dword [ebp - 0x74], esi
mov ecx, dword [ebp - 0x58]
inc eax
add ebx, edx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x64], ebx
nop word [eax + eax]
test esi, esi
jle 0x469892
mov esi, ecx
mov dword [ebp - 0x50], ebx
lea ecx, [edx - 2]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x84], ecx
lea ecx, [edx - 1]
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0x68], edx
mov cl, byte [ecx + eax]
test cl, cl
je 0x4697ce
mov al, byte [edi + 0x24c]
add al, 0x7f
add al, cl
jmp 0x469866
mov al, byte [eax - 2]
xor cl, cl
cmp cl, al
sbb dl, dl
and dl, al
mov eax, dword [ebp - 0x4c]
mov cl, byte [eax - 1]
cmp dl, cl
movzx ebx, cl
movzx eax, dl
cmovae ebx, eax
mov eax, dword [ebp - 0x4c]
mov cl, byte [eax]
cmp bl, cl
movzx edx, cl
mov ecx, dword [ebp - 0x84]
movzx eax, bl
cmovae edx, eax
mov eax, dword [ebp - 0x4c]
mov cl, byte [ecx + eax]
cmp dl, cl
movzx ebx, cl
mov ecx, dword [ebp - 0x6c]
movzx eax, dl
cmovae ebx, eax
mov eax, dword [ebp - 0x4c]
mov cl, byte [eax + ecx]
cmp bl, cl
movzx eax, bl
movzx edx, cl
cmovae edx, eax
mov eax, dword [ebp - 0x50]
mov cl, byte [eax - 2]
cmp dl, cl
movzx eax, dl
movzx ebx, cl
cmovae ebx, eax
mov eax, dword [ebp - 0x50]
mov cl, byte [eax - 1]
cmp bl, cl
movzx eax, bl
movzx edx, cl
cmovae edx, eax
mov eax, dword [ebp - 0x50]
mov cl, byte [eax]
cmp dl, cl
movzx ebx, cl
movzx eax, dl
cmovae ebx, eax
cmp bl, 1
jbe 0x469868
mov al, byte [edi + 0x24c]
dec al
add al, bl
mov byte [esi], al
mov eax, dword [ebp - 0x4c]
inc esi
inc dword [ebp - 0x50]
inc eax
sub dword [ebp - 0x68], 1
mov ecx, dword [ebp - 0xb0]
mov dword [ebp - 0x4c], eax
jne 0x4697b8
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x74]
add eax, edx
add ebx, edx
mov dword [ebp - 0x5c], eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x64], ebx
mov eax, dword [eax + 8]
mov eax, dword [eax + 4]
add eax, 3
and eax, 0xfffffffc
sub ecx, eax
sub dword [ebp - 0x54], 1
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x58], ecx
jne 0x469790
jmp 0x469997
test ebx, ebx
jle 0x469997
test al, al
je 0x469941
mov ebx, dword [ebp - 0x50]
xor esi, esi
test ebx, ebx
jle 0x46991f
mov dl, byte [esi + ecx]
cmp dl, 1
ja 0x4698e9
mov al, byte [edi + 0x228]
add al, 0x70
jmp 0x469914
mov eax, dword [edi + 0x228]
movzx ecx, dl
dec ecx
cmp ecx, eax
jne 0x4698fb
add al, 0x6f
jmp 0x469911
cmp dl, 6
jbe 0x469907
add dl, 0x6f
mov al, dl
jmp 0x469911
mov al, byte [edi + 0x24c]
add al, 0x7f
add al, dl
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x58]
mov byte [esi + edx], al
inc esi
cmp esi, ebx
jl 0x4698d7
mov eax, dword [edi + 0x10]
add ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x54], ecx
mov eax, dword [eax + 8]
mov eax, dword [eax + 4]
add eax, 3
and eax, 0xfffffffc
sub edx, eax
sub dword [ebp - 0x4c], 1
mov dword [ebp - 0x58], edx
jne 0x4698d1
jmp 0x469997
mov eax, dword [ebp - 0x54]
mov ecx, edx
test esi, esi
jle 0x469972
mov ebx, eax
sub ebx, edx
nop
mov dl, byte [ebx + ecx]
test dl, dl
je 0x469963
mov al, byte [edi + 0x24c]
dec al
add al, dl
mov byte [ecx], al
inc ecx
sub esi, 1
jne 0x469950
mov edx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x4c]
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 8]
mov eax, dword [eax + 4]
add eax, 3
and eax, 0xfffffffc
sub edx, eax
mov eax, dword [ebp - 0x54]
add eax, dword [ebp - 0x5c]
sub ebx, 1
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x4c], ebx
jne 0x469944
movsx eax, word [ebp - 0x38]
sub eax, dword [ebp - 0x40]
add dword [ebp - 0x60], eax
mov edx, dword [ebp - 0x8c]
push edx
mov esi, edx
call fcn.00451d00
mov edx, eax
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x90]
mov ecx, edx
add esp, 4
sub ecx, esi
jne 0x469414
jmp 0x469a5a
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], vtable.FCString.0
mov esi, eax
call fcn.00451b70
push str.error___textOut:__
push 0x100
lea ecx, [ebp - 0x1c]
call fcn.00450e40
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1c]
push dword [ebp - 0x94]
call fcn.00450850
push str.__nuChar_is
lea ecx, [ebp - 0x1c]
call fcn.00450850
push 0x20
push 0
push 0xa
push ebx
lea ecx, [ebp - 0x1c]
call fcn.00450750
push str.___error_code_is
lea ecx, [ebp - 0x1c]
call fcn.00450850
push 0x20
push 0
push 0xa
push esi
lea ecx, [ebp - 0x1c]
call fcn.00450750
mov eax, dword [ebp - 0x18]
push dword [eax + 0x14]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1c]
call fcn.00450480
push 0
push dword [ebp - 0x70]
call fcn.00489940
add esp, 8
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa0]
call fcn.00450430
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0044f18f
mov esp, ebp
pop ebp
ret 0x10