Function at 0x462e4e
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xac
mov edi, dword [esp + 0xcc]
mov esi, dword [0x4b507c]
mov eax, ecx
xor ebx, ebx
mov ebp, dword [esp + 0xc8]
mov ecx, edi
xor esi, esp
and ecx, 3
mov ecx, ebp
setne bl
shr ecx, 0x16
inc ebx
and cl, 1
imul ebx, dword [0x4b6c68]
mov dword [esp + 0xa8], esi
mov ebp, ebx
shl ebx, cl
and edi, 3
mov dword [esp + 0x14], ebx
je 0x462eb3
mov esi, dword [0x4b7660]
lea ecx, [eax + eax]
cmp ecx, dword [esi + 0x12c]
jge 0x463c35
imul ebp, eax
mov eax, dword [0x4b6c6c]
mov ecx, dword [esp + 0xc8]
lea esi, [esp + 0xd0]
add ebp, dword [0x4b6c7c]
imul edx, eax
mov dword [esp + 4], ecx
mov dword [esp + 0x20], ebp
add edx, dword [0x4b6c78]
xor ebp, ebp
bt dword [esp + 0xc8], 0x1e
mov dword [esp + 0x3c], edx
jb 0x462efb
mov dword [esp + 0x28], 0
jmp 0x462f3b
cmp dword [0x4b7688], 0
je 0x462f13
mov ecx, dword [0x4b7660]
cmp byte [ecx + 0x143], 0
je 0x462ef1
mov ecx, dword [0x495608]
mov dword [esi + 4], ecx
mov dword [esi], ecx
mov ecx, dword [esp + 0xc8]
and ecx, 0xfecc0000
or ecx, 0x20b04
mov dword [esp + 4], ecx
mov cl, 1
mov dword [esp + 0x28], ecx
xor ecx, ecx
inc ecx
test edi, edi
mov dword [esp + 8], ecx
je 0x462f4f
cmp dword [0x4b768c], 3
je 0x462f6c
test edi, edi
je 0x462f5f
cmp edi, 1
jne 0x462f63
mov ebp, 4
jmp 0x462f6c
mov ebp, edi
jmp 0x462f68
mov ebp, 0xc
mov dword [esp + 8], edi
mov ecx, dword [esp + 0xc0]
mov ebx, dword [esp + 4]
mov dword [esp + 0xc], 0
movzx ecx, word [ecx]
shr ebx, 0x13
mov esi, ebx
and esi, 0x10
mov edx, ecx
add edx, 0xffffdc46
cmp dx, 3
ja 0x462fb0
add cl, 0x46
cmp cl, 3
ja case.default.0x462fa3
movzx ecx, cl
jmp dword [ecx*4 + 0x497a3c]
add eax, eax
neg eax
jmp case.0x462fa3.68
mov dword [esp + 0x38], 0
jmp 0x46300a
xor edx, edx
jmp 0x462fd7
mov ecx, 0x99999999
jmp 0x462fcc
add eax, eax
mov ecx, 0x66666667
imul ecx
mov eax, edx
sar edx, 1
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 8]
or eax, 1
cmp eax, 3
mov eax, dword [esp + 0xc0]
sete cl
and dword [esp + 4], 0xfff7ffff
and bl, 1
mov dword [esp + 0xc], ebx
shl edx, cl
movzx ecx, word [0x4b684a]
mov dword [esp + 0x38], edx
mov word [eax], cx
mov edx, dword [esp + 0xc4]
mov eax, ecx
or ebp, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x46305b
mov eax, dword [esp + 0xc0]
cmp edx, 2
jl 0x46303f
movzx eax, word [eax + 2]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x463044
jmp 0x46305b
cmp edx, 1
jne 0x46305b
mov ecx, dword [esp + 0xc0]
xor eax, eax
mov word [ecx + eax*2], 0xfffd
inc eax
cmp eax, edx
jl 0x46304d
movzx ecx, word [ecx]
mov esi, dword [esp + 4]
mov eax, ebp
and ecx, 0xff00
mov ebx, 2
or eax, 0x20
cmp ecx, 0xf000
mov ecx, 0x1ff
cmovne eax, ebp
mov edi, esi
mov edx, esi
shr edi, 9
and edx, ecx
and edi, ecx
cmp dword [0x4b6cf4], ebx
mov dword [esp], edx
mov edx, esi
sete cl
shr edx, 0x12
and dl, cl
movzx ecx, dl
or ecx, eax
or ebx, ecx
cmp byte [0x4b6cf8], 0
cmove ebx, ecx
bt esi, 0x13
cmovae ebx, ecx
mov ecx, ebx
call fcn.00463c4e
movzx eax, byte [esp + 0xc]
xor edx, edx
mov ebp, ebx
inc edx
test bl, 2
cmove edx, eax
xor ecx, ecx
and ebp, 0xfffffffc
cmp dword [ebx*4 + 0x4b6cfc], ecx
cmovne ebp, ebx
cmovne edx, eax
mov ecx, ebp
mov dword [esp + 0x60], edx
call fcn.00463c4e
mov eax, dword [ebp*4 + 0x4b6cfc]
test eax, eax
cmove ebp, eax
bt esi, 0x14
mov dword [esp + 0xc], ebp
jb 0x46310c
mov eax, dword [esp]
mov dword [esp], edi
lea esi, [esp + 0xd0]
jmp 0x46311f
lea esi, [esp + 0xd0]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esi], ecx
mov dword [esi + 4], eax
mov eax, edi
bt dword [esp + 4], 0x12
mov cl, byte [0x4b6dfc]
mov ebp, dword [esp + 0xc0]
setae dl
test cl, cl
sete ch
or ch, dl
mov edx, dword [esp + 0x28]
or dl, ch
jne 0x46315a
cmp eax, 0xf
ja 0x46314e
or eax, 8
jmp 0x46315a
xor edx, edx
cmp eax, 0xff
seta dl
or eax, edx
mov edi, dword [esp]
bt dword [esp + 4], 0x15
jae 0x463180
test cl, cl
je 0x463180
cmp edi, 0xf
ja 0x463173
or edi, 8
jmp 0x463180
xor ecx, ecx
cmp edi, 0xff
seta cl
or edi, ecx
mov ecx, dword [0x4b6ca8]
test ecx, ecx
je 0x46319a
mov edx, dword [eax*4 + 0x4b6e00]
mov esi, dword [edi*4 + 0x4b6e00]
jmp 0x4631c8
cmp byte [esi], 0
je 0x4631ae
movzx edx, byte [esi + 3]
movzx eax, word [esi + 1]
shl edx, 0x10
or edx, eax
jmp 0x4631b5
mov edx, dword [eax*4 + 0x4b6e00]
cmp byte [esi + 4], 0
je 0x463191
movzx eax, word [esi + 5]
movzx esi, byte [esi + 7]
shl esi, 0x10
or esi, eax
bt dword [esp + 4], 0x18
jae 0x463218
test ecx, ecx
jne 0x463218
mov ecx, edx
movzx eax, dl
mov edi, edx
mov edx, 0x1fe
shr ecx, 7
shr edi, 0xf
add eax, eax
and ecx, edx
and edi, edx
imul eax, eax, 0xaaab
imul ecx, ecx, 0xaaab
imul edi, edi, 0xaaab
shr eax, 0x11
shr ecx, 9
shr edi, 1
and ecx, 0xff00
and edi, 0xff0000
or ecx, eax
or edi, ecx
jmp 0x46321a
mov edi, edx
mov eax, dword [esp + 0xc]
push dword [eax*4 + 0x4b6cfc]
push dword [0x4b6ce8]
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x5c], edi
push edi
push dword [0x4b6ce8]
call dword [sym.imp.GDI32.dll_SetTextColor]
push esi
push dword [0x4b6ce8]
call dword [sym.imp.GDI32.dll_SetBkColor]
mov eax, dword [esp + 4]
sar eax, 0x1f
add eax, 2
push eax
push dword [0x4b6ce8]
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0xc4]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x3c]
imul eax, esi
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], ecx
add eax, edx
mov edx, dword [0x4b6c6c]
mov dword [esp + 0x7c], eax
add edx, ecx
test esi, esi
mov dword [esp + 0x80], edx
jle 0x463359
mov edi, dword [esp + 0xc4]
xor ecx, ecx
xor eax, eax
xor edx, edx
lea esi, [edx + 1]
cmp esi, edi
movzx edi, word [ebp + edx*2]
jge 0x463322
movzx ebx, di
cmp ebx, 0xdb40
jne 0x4632e4
mov ebp, dword [esp + 0xc0]
movzx ebx, word [ebp + edx*2 + 2]
add ebx, 0x2300
movzx ebx, bx
cmp ebx, 0xf0
jae 0x4632fb
jmp 0x463345
mov ebp, dword [esp + 0xc0]
mov ebx, edi
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x463322
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xc0]
movzx ebx, word [ebx + edx*2 + 2]
and ebx, 0xfc00
cmp ebx, 0xdc00
jne 0x463322
add eax, dword [esp + 0x14]
jmp 0x463345
lea esi, [edi - 0x180b]
cmp si, 3
jb 0x463343
mov esi, dword [esp + 0x14]
and edi, 0xfff0
cmp edi, 0xfe00
cmove esi, ecx
add eax, esi
mov esi, edx
mov edi, dword [esp + 0xc4]
inc esi
mov edx, esi
cmp esi, edi
jl 0x4632ae
jmp 0x46335b
xor eax, eax
add eax, dword [esp + 0x20]
mov ecx, dword [0x4b7660]
mov dword [esp + 0x7c], eax
mov ecx, dword [ecx + 0x12c]
imul ecx, dword [0x4b6c68]
add ecx, dword [0x4b6c7c]
cmp eax, ecx
jle 0x463384
mov dword [esp + 0x7c], ecx
cmp byte [0x4b7218], 1
mov esi, dword [esp + 0x38]
jne 0x4633c8
mov eax, dword [esp + 0x14]
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
mov dword [esp + 0x30], ecx
push 6
push dword [0x4b6ce8]
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov edx, dword [esp + 0xc4]
xor eax, eax
mov dword [esp + 0x10], 0
inc eax
mov dword [esp + 0x54], eax
jmp 0x4633f2
push 0
push dword [0x4b6ce8]
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov edx, dword [esp + 0xc4]
mov eax, dword [0x4b6cec]
mov dword [esp + 0x30], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x54], edx
test edx, edx
jle 0x463b9b
mov eax, dword [esp + 0x3c]
cmp dword [esp + 4], 0
lea eax, [esi + eax]
setns byte [esp + 0x1f]
mov dword [esp + 0x2c], eax
mov al, 1
mov esi, dword [esp + 0x54]
mov ecx, edx
mov dword [esp + 0x24], eax
cmp esi, edx
cmovle ecx, esi
cmp esi, 1
mov ebx, ecx
mov dword [esp + 0x68], ecx
jne 0x4634b9
movzx eax, word [ebp]
mov ebx, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x463456
movzx eax, word [ebp + 2]
xor ebx, ebx
and eax, 0xfc00
cmp eax, 0xdc00
sete bl
add ebx, ecx
mov eax, edx
sub eax, ebx
jle 0x4634b9
movzx ecx, word [ebp + ebx*2]
mov esi, edx
mov edi, ebx
lea edx, [ecx - 0x180b]
cmp dx, 3
jb 0x4634ae
mov edx, ecx
and edx, 0xfffffff0
movzx edx, dx
cmp edx, 0xfe00
je 0x4634ae
cmp eax, 2
jl 0x4634b5
movzx eax, cx
mov edx, esi
cmp eax, 0xdb40
jne 0x4634b7
movzx eax, word [ebp + edi*2 + 2]
mov ebx, edi
lea ecx, [edi + 2]
add eax, 0x2300
movzx eax, ax
cmp eax, 0xf0
cmovb ebx, ecx
jmp 0x4634b9
mov ebx, edi
mov edx, esi
inc ebx
jmp 0x4634b9
mov edx, esi
mov ebx, edi
cmp ebx, dword [0x4b6cf0]
mov dword [esp + 0x6c], edx
jbe 0x4634f2
xor eax, eax
push eax
push 1
push ebx
push 4
push 0x4b6cf0
push dword [0x4b6cec]
call fcn.00410bd9
add esp, 0x18
mov ecx, dword [esp + 0x10]
mov dword [0x4b6cec], eax
test ecx, ecx
cmovne ecx, eax
mov dword [esp + 0x10], ecx
test ebx, ebx
mov dword [esp + 0x18], ebp
mov dword [esp], ebx
jle 0x4635c9
mov eax, dword [0x4b6cec]
xor ecx, ecx
mov esi, dword [esp + 0x14]
lea edx, [eax + ecx*4]
mov dword [edx], esi
lea esi, [ecx + 1]
movzx edi, word [ebp + ecx*2]
cmp esi, ebx
jge 0x46358a
movzx ebx, di
cmp ebx, 0xdb40
jne 0x463550
mov ebp, dword [esp + 0x18]
movzx ebx, word [ebp + ecx*2 + 2]
add ebx, 0x2300
movzx ebx, bx
cmp ebx, 0xef
ja 0x463564
test ecx, ecx
jle 0x46357f
mov dword [eax + ecx*4 - 4], 0
jmp 0x46357f
mov ebp, dword [esp + 0x18]
mov ebx, edi
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x46358a
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x18]
movzx ebx, word [ebx + ecx*2 + 2]
and ebx, 0xfc00
cmp ebx, 0xdc00
jne 0x46358a
mov dword [edx], 0
lea edx, [eax + esi*4]
jmp 0x4635b5
lea esi, [edi - 0x180b]
cmp si, 3
jb 0x4635a7
and edi, 0xfff0
movzx esi, di
cmp esi, 0xfe00
jne 0x4635bd
test ecx, ecx
jle 0x4635b3
mov dword [eax + ecx*4 - 4], 0
mov esi, ecx
mov ecx, dword [esp + 0x14]
mov dword [edx], ecx
mov ecx, esi
mov ebx, dword [esp]
inc ecx
cmp ecx, ebx
jl 0x463508
movzx eax, word [ebp]
cmp byte [0x4b615c], 0
je 0x463789
mov ecx, eax
and ecx, 0xff00
movzx ecx, cx
cmp ecx, 0xf100
jne 0x463789
cmp ebx, dword [0x4b7220]
jle 0x463628
push dword [0x4b721c]
call fcn.00410bcd
add esp, 4
mov eax, dword [esp]
mov dword [0x4b7220], eax
push 0
push 2
push dword [esp + 8]
call fcn.00410b50
mov ebx, dword [esp + 0xc]
add esp, 0xc
mov dword [0x4b721c], eax
test ebx, ebx
jle 0x463c35
xor edi, edi
xor ebx, ebx
xor esi, esi
mov eax, dword [0x4b721c]
mov ebp, dword [esp + 0x18]
mov word [eax + esi*2], 0xfffd
movzx eax, byte [ebp + ebx*2]
push eax
push dword [0x4b6160]
call dword [sym.imp.KERNEL32.dll_IsDBCSLeadByteEx]
test eax, eax
je 0x46368c
mov al, byte [ebp + ebx*2]
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x84], al
mov al, byte [ebp + ebx*2 + 2]
inc ebx
mov byte [esp + 0x85], al
mov eax, dword [0x4b6cec]
add dword [eax + esi*4], ecx
mov eax, dword [0x4b721c]
add eax, edi
push 1
push eax
push 2
jmp 0x4636a4
mov al, byte [ebp + ebx*2]
mov byte [esp + 0x84], al
mov eax, dword [0x4b721c]
add eax, edi
xor ecx, ecx
inc ecx
push ecx
push eax
push ecx
lea eax, [esp + 0x90]
push eax
push 4
push dword [0x4b6160]
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
inc ebx
inc esi
add edi, 2
cmp ebx, dword [esp]
jl 0x463636
movzx eax, byte [esp + 0x24]
xor ecx, ecx
mov edx, 0
mov edi, dword [esp + 0x30]
sub ecx, dword [0x4b6c6c]
and eax, 1
cmp dword [esp + 8], 3
lea eax, [eax + eax + 4]
cmovne ecx, edx
mov edx, dword [esp + 0x20]
add ecx, dword [esp + 0x2c]
add edi, edx
push dword [esp + 0x10]
push esi
push dword [0x4b721c]
lea edx, [esp + 0x80]
push edx
push eax
push ecx
push edi
push dword [0x4b6ce8]
call dword [sym.imp.GDI32.dll_ExtTextOutW]
bt dword [esp + 4], 0x12
jae 0x463775
cmp dword [0x4b6cf4], 1
jne 0x463775
push 1
push dword [0x4b6ce8]
call dword [sym.imp.GDI32.dll_SetBkMode]
xor eax, eax
mov ecx, 0
sub eax, dword [0x4b6c6c]
cmp dword [esp + 8], 3
cmovne eax, ecx
dec edi
add eax, dword [esp + 0x2c]
push dword [esp + 0x10]
push esi
push dword [0x4b721c]
lea ecx, [esp + 0x80]
push ecx
push 4
push eax
push edi
push dword [0x4b6ce8]
call dword [sym.imp.GDI32.dll_ExtTextOutW]
mov eax, dword [0x4b6cec]
mov ebp, dword [esp + 0x18]
mov dword [eax], 0xffffffff
jmp 0x463b6b
and eax, 0xfe00
cmp eax, 0xf000
jne 0x463884
xor eax, eax
push eax
xor eax, eax
inc eax
push eax
push ebx
push eax
push 0x4b7228
push dword [0x4b7224]
call fcn.00410bd9
add esp, 0x18
test ebx, ebx
mov dword [0x4b7224], eax
je 0x4637cc
xor ecx, ecx
mov dl, byte [ebp + ecx*2]
mov byte [eax + ecx], dl
inc ecx
cmp ebx, ecx
jne 0x4637c0
movzx ecx, byte [esp + 0x24]
xor edx, edx
mov esi, 0
mov edi, dword [esp + 0x30]
sub edx, dword [0x4b6c6c]
and ecx, 1
cmp dword [esp + 8], 3
lea ecx, [ecx + ecx + 4]
cmovne edx, esi
mov esi, dword [esp + 0x20]
add edx, dword [esp + 0x2c]
add esi, edi
push dword [esp + 0x10]
push ebx
push eax
lea eax, [esp + 0x80]
push eax
push ecx
push edx
push esi
push dword [0x4b6ce8]
call dword [sym.imp.GDI32.dll_ExtTextOutA]
bt dword [esp + 4], 0x12
jae 0x463b6b
cmp dword [0x4b6cf4], 1
jne 0x463b6b
push 1
push dword [0x4b6ce8]
call dword [sym.imp.GDI32.dll_SetBkMode]
xor eax, eax
mov ecx, 0
sub eax, dword [0x4b6c6c]
cmp dword [esp + 8], 3
cmovne eax, ecx
dec esi
add eax, dword [esp + 0x2c]
push dword [esp + 0x10]
push dword [esp + 4]
push dword [0x4b7224]
lea ecx, [esp + 0x80]
push ecx
push 4
push eax
push esi
push dword [0x4b6ce8]
call dword [sym.imp.GDI32.dll_ExtTextOutA]
jmp 0x463b6b
cmp dword [0x4b7230], ebx
jge 0x4638bb
push dword [0x4b722c]
call fcn.00410bcd
add esp, 4
mov eax, dword [esp]
mov dword [0x4b7230], eax
push 0
push 2
push dword [esp + 8]
call fcn.00410b50
mov ebx, dword [esp + 0xc]
add esp, 0xc
mov dword [0x4b722c], eax
mov edi, dword [0x4b722c]
test ebx, ebx
jle 0x4638d5
xor eax, eax
movzx ecx, word [ebp + eax*2]
mov word [edi + eax*2], cx
inc eax
cmp ebx, eax
jne 0x4638c7
xor eax, eax
cmp dword [esp + 8], 3
jne 0x4638e3
mov eax, dword [0x4b6c6c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
cmp dword [esp], 0
lea esi, [ecx + edx]
jle 0x463b0c
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x4c], edi
mov edi, dword [esp]
xor ebx, ebx
mov ebp, esi
mov dword [esp + 0x64], esi
sub ecx, eax
mov eax, dword [0x4b6cec]
add ecx, dword [esp + 0x38]
mov dword [esp + 0x28], eax
mov eax, dword [0x4b6ce8]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
and al, byte [esp + 0x1f]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x50], ebp
movzx eax, word [eax + ebx*2]
push eax
call fcn.00410cfc
mov edx, dword [esp + 0x54]
add esp, 4
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x48], ebx
mov byte [esp + 0xc], al
lea ecx, [ecx + ebx*4]
inc ebx
mov ebp, dword [ecx]
add ebp, edx
cmp ebx, edi
jge 0x463996
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x34], ecx
movzx eax, word [edi + ebx*2]
push eax
call fcn.00410cfc
add esp, 4
cmp byte [esp + 0xc], al
jne 0x463990
mov eax, dword [esp + 0x28]
add ebp, dword [eax + ebx*4]
mov eax, dword [esp]
inc ebx
cmp eax, ebx
jne 0x46396c
mov ebx, eax
mov ecx, dword [esp + 0x34]
jmp 0x46399a
mov edi, dword [esp + 0x4c]
xor eax, eax
cmp byte [0x4b7218], al
mov edx, dword [esp + 0x48]
mov esi, ebx
cmovne ecx, eax
sub esi, edx
cmp byte [esp + 0xc], 0
lea edi, [edi + edx*2]
je 0x463aaf
lea edx, [esi + esi + 2]
mov dword [esp + 0x44], esi
mov dword [esp + 0x70], edx
push eax
xor eax, eax
inc eax
push eax
push edx
mov dword [esp + 0x18], edi
xor esi, esi
mov dword [esp + 0x40], ecx
call fcn.00410b50
add esp, 0xc
mov edi, eax
push esi
xor eax, eax
inc eax
push eax
push dword [esp + 0x4c]
call fcn.00410b50
add esp, 0xc
mov esi, eax
lea eax, [esp + 0x88]
xor ecx, ecx
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x18], ecx
push dword [esp + 0x70]
push ecx
mov dword [esp + 0x50], edi
push edi
call fcn.004721e0
add esp, 0xc
push dword [esp + 0x44]
push 3
push esi
call fcn.004721e0
add esp, 0xc
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x84], 0x24
mov dword [esp + 0x9c], edi
mov dword [esp + 0x98], esi
mov dword [esp + 0xa0], ecx
push 0x8113b
lea eax, [esp + 0x88]
push eax
mov eax, 0
push eax
push ecx
mov esi, ecx
push dword [esp + 0x1c]
mov edi, dword [esp + 0x54]
push edi
call dword [sym.imp.GDI32.dll_GetCharacterPlacementW]
movzx eax, byte [esp + 0x24]
xor ecx, ecx
inc ecx
and eax, ecx
lea eax, [eax + eax + 0x14]
push dword [esp + 0x34]
push esi
push dword [esp + 0x50]
lea ecx, [esp + 0x80]
push ecx
push eax
push dword [esp + 0x6c]
push dword [esp + 0x68]
push edi
call dword [sym.imp.GDI32.dll_ExtTextOutA]
jmp 0x463ada
movzx eax, byte [esp + 0x24]
and eax, 1
lea eax, [eax + eax + 4]
push ecx
push esi
push edi
lea ecx, [esp + 0x80]
push ecx
push eax
push dword [esp + 0x6c]
push dword [esp + 0x68]
mov edi, dword [esp + 0x5c]
push edi
call dword [sym.imp.GDI32.dll_ExtTextOutW]
push edi
call dword [sym.imp.GDI32.dll_GetBkMode]
mov esi, eax
push 1
push edi
call dword [sym.imp.GDI32.dll_SetBkMode]
mov edi, dword [esp]
xor eax, eax
cmp ebx, edi
jl 0x46392f
push esi
push dword [esp + 0x44]
call dword [sym.imp.GDI32.dll_SetBkMode]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x64]
bt dword [esp + 4], 0x12
jae 0x463b6b
cmp dword [0x4b6cf4], 1
jne 0x463b6b
push 1
push dword [0x4b6ce8]
call dword [sym.imp.GDI32.dll_SetBkMode]
xor eax, eax
mov ecx, 0
sub eax, dword [0x4b6c6c]
cmp dword [esp + 8], 3
cmovne eax, ecx
dec esi
add eax, dword [esp + 0x2c]
push dword [esp + 0x10]
push dword [esp + 4]
push dword [0x4b722c]
lea ecx, [esp + 0x80]
push ecx
push 4
push eax
push esi
push dword [0x4b6ce8]
call dword [sym.imp.GDI32.dll_ExtTextOutW]
push 1
push dword [0x4b6ce8]
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp]
mov edx, dword [esp + 0x6c]
imul eax, dword [esp + 0x14]
lea ebp, [ebp + ecx*2]
add dword [esp + 0x20], eax
xor eax, eax
sub edx, ecx
jg 0x463411
cmp dword [esp + 8], 2
je 0x463c35
bt dword [esp + 4], 0x13
setae al
cmp byte [esp + 0x60], 0
jne 0x463bc0
or al, byte [0x4b6cf8]
test al, 1
jne 0x463c35
mov eax, dword [0x4b7234]
lea edi, [eax + eax]
sub edi, dword [0x4b6c6c]
cmp dword [esp + 8], 3
cmovne edi, eax
xor ebp, ebp
push dword [esp + 0x5c]
push ebp
push ebp
call dword [sym.imp.GDI32.dll_CreatePen]
mov ebx, dword [sym.imp.GDI32.dll_SelectObject]
push eax
push dword [0x4b6ce8]
call ebx
mov esi, eax
mov eax, dword [esp + 0x78]
add eax, edi
push ebp
push eax
push dword [esp + 0x7c]
push dword [0x4b6ce8]
call dword [sym.imp.GDI32.dll_MoveToEx]
add edi, dword [esp + 0x78]
push edi
push dword [esp + 0x80]
push dword [0x4b6ce8]
call dword [sym.imp.GDI32.dll_LineTo]
push esi
push dword [0x4b6ce8]
call ebx
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [esp + 0xa8]
xor ecx, esp
call fcn.0046f0c8
add esp, 0xac
pop esi
pop edi
pop ebx
pop ebp
ret