Function at 0x515e70
Capabilities:
Get graphical window text
Hide graphical window
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xa98
mov eax, dword [0x5f3008]
xor eax, esp
mov dword [esp + 0xa94], eax
mov eax, dword [ebp + 8]
mov edx, ecx
mov ecx, dword [ebp + 0x14]
xorps xmm0, xmm0
push esi
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 0xc]
push edi
mov dword [esp + 0x84], ecx
lea edi, [esp + 0xf8]
mov dword [esp + 0x10], eax
mov ecx, 0x228
mov eax, dword [ebp + 0x10]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
xor edi, edi
mov dword [esp + 0x14], edx
xor cl, cl
mov dword [esp + 0x30], eax
movlpd qword [esp + 0xd4], xmm0
mov dword [esp + 0xdc], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x78], edi
mov dword [esp + 0x6c], edi
mov byte [esp + 0x1b], cl
cmp dword [edx + 0x21b90], edi
je 0x515f27
push dword [edx + 0x21b8c]
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test eax, eax
je 0x515f1f
movzx ecx, word [eax + 0x5e]
push eax
mov dword [esp + 0x20], ecx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
movzx ecx, byte [eax + 0x808]
movzx eax, byte [eax + 0x807]
mov esi, dword [edx + 0x217d0]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x30]
shl ecx, 8
movzx eax, byte [eax + 0x806]
or ecx, eax
push ecx
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
mov eax, dword [eax + 0x28]
movzx ecx, word [eax + 0x5e]
mov dword [esp + 0x50], ecx
movzx ecx, word [eax + 0x5c]
movzx eax, word [eax + 0x5a]
mov dword [esp + 0x74], eax
lea eax, [esi - 1]
cdq
and edx, 3
mov dword [esp + 0x70], ecx
add eax, edx
sar eax, 2
lea eax, [eax*4 + 4]
push eax
call fcn.00560858
mov edx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x2c], eax
mov ecx, dword [edx + 0x21b98]
test cl, 2
je 0x5160d1
test esi, esi
jle 0x515fc7
push esi
push 0
push eax
call fcn.00563680
mov edx, dword [esp + 0x20]
add esp, 0xc
xor eax, eax
mov dword [esp + 0x34], eax
cmp dword [edx + 0x21ba8], eax
jbe 0x51618f
nop dword [eax]
mov ecx, dword [edx + 0x21bac]
mov edx, dword [ecx + eax*8]
mov dword [esp + 0x28], edx
test edx, edx
je 0x51618f
mov eax, dword [esp + 0x14]
movsx eax, word [eax + 0x21bec]
lea esi, [eax + edx]
mov edx, dword [esp + 0x34]
mov ecx, dword [ecx + edx*8 + 4]
add eax, ecx
mov edx, dword [esp + 0x28]
cmp esi, eax
jbe 0x51601f
cmp ecx, edx
ja 0x5160b3
cmp esi, eax
cmovbe ecx, esi
cmovbe edx, eax
mov dword [esp + 0x28], edx
mov edx, 1
lea esi, [ecx - 1]
dec ecx
add ecx, dword [esp + 0x2c]
sub edx, dword [esp + 0x2c]
mov dword [esp + 0x68], edx
nop
cmp word [esp + 0x1c], 1
jne 0x51606d
cmp word [esp + 0x50], 0
mov byte [ecx], 1
jne 0x516056
inc edi
jmp 0x5160a8
lea eax, [edx + ecx]
add edi, 2
and eax, 1
jne 0x516067
mov byte [ecx - 1], 1
jmp 0x5160a8
mov byte [ecx + 1], 1
jmp 0x5160a8
cmp word [esp + 0x50], 0
jne 0x516091
lea eax, [edx + ecx]
add edi, 2
test al, 1
jne 0x516088
mov byte [ecx - 1], 1
mov byte [ecx], 1
jmp 0x5160a8
mov byte [ecx + 1], 1
mov byte [ecx], 1
jmp 0x5160a8
mov edx, dword [esp + 0x2c]
mov eax, esi
and eax, 0xfffffffc
add edi, 4
mov dword [eax + edx], 0x1010101
mov edx, dword [esp + 0x68]
inc ecx
inc esi
lea eax, [edx + ecx]
cmp eax, dword [esp + 0x28]
jbe 0x516040
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
inc eax
mov dword [esp + 0x34], eax
cmp eax, dword [edx + 0x21ba8]
jb 0x515fe0
jmp 0x51618f
test ecx, 0x400000
je 0x51617d
test esi, esi
jle 0x5160f7
push esi
mov esi, dword [esp + 0x30]
push 0
push esi
call fcn.00563680
mov edx, dword [esp + 0x20]
add esp, 0xc
jmp 0x5160fb
mov esi, dword [esp + 0x2c]
cmp word [esp + 0x1c], 1
mov eax, dword [edx + 0x217d8]
jne 0x516138
mov byte [eax + esi - 1], 1
cmp word [esp + 0x50], di
jne 0x51611c
mov edi, 1
jmp 0x51618f
mov ecx, dword [edx + 0x217d8]
mov edi, 2
test al, 1
jne 0x516132
mov byte [ecx + esi - 2], 1
jmp 0x51618f
mov byte [ecx + esi], 1
jmp 0x51618f
cmp word [esp + 0x50], di
jne 0x516165
mov byte [esi + eax - 1], 1
mov ecx, dword [edx + 0x217d8]
test al, 1
jne 0x51615a
mov byte [ecx + esi - 2], 1
mov edi, 2
jmp 0x51618f
mov byte [ecx + esi], 1
mov edi, 2
jmp 0x51618f
dec eax
mov edi, 4
cdq
and edx, 3
add eax, edx
and eax, 0xfffffffc
mov dword [eax + esi], 0x1010101
jmp 0x51618f
test esi, esi
jle 0x51618f
push esi
push 1
push eax
mov edi, esi
call fcn.00563680
add esp, 0xc
push 0x80
lea eax, [esp + 0x99c]
push eax
push dword [esp + 0x6c]
call dword [sym.imp.USER32.dll_GetWindowTextW]
lea eax, [esp + 0x998]
mov dword [esp + 0xcc], 0x14
mov dword [esp + 0xd0], eax
lea eax, [esp + 0xcc]
push eax
mov eax, dword [esp + 0x18]
push dword [eax + 0x21b94]
call dword [sym.imp.GDI32.dll_StartDocW]
mov edx, dword [esp + 0x30]
mov esi, dword [sym.imp.GDI32.dll_CreatePen]
mov dword [esp + 0x24], 1
movzx ecx, byte [edx + 0x811]
movzx eax, byte [edx + 0x810]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x80f]
shl ecx, 8
or ecx, eax
push ecx
push 1
push 0
call esi
mov edx, dword [esp + 0x30]
mov dword [esp + 0x64], eax
movzx ecx, byte [edx + 0x814]
movzx eax, byte [edx + 0x813]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x812]
shl ecx, 8
or ecx, eax
push ecx
push 1
push 0
call esi
mov edx, dword [esp + 0x30]
mov dword [esp + 0x68], eax
movzx ecx, byte [edx + 0x817]
movzx eax, byte [edx + 0x816]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x815]
shl ecx, 8
or ecx, eax
push ecx
push 1
push 0
call esi
mov esi, dword [esp + 0x10]
push 1
push esi
mov dword [esp + 0x88], eax
call dword [sym.imp.GDI32.dll_SetBkMode]
push 0x18
push esi
call dword [sym.imp.GDI32.dll_SetTextAlign]
cmp edi, 0xa
jle 0x5162c0
mov eax, dword [esp + 0x14]
push str.pS7R_N
push 0
push 0x801d
mov eax, dword [eax + 0x40]
push dword [eax]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esp + 0x14]
push 5
mov eax, dword [eax + 0x40]
push dword [eax]
call dword [sym.imp.USER32.dll_ShowWindow]
nop dword [eax]
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x48]
cmp byte [eax + 0x2083d], 0
jne 0x516d46
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
cmp byte [eax + ecx - 1], 0
je 0x516d02
cmp edi, 0xa
jle 0x516323
mov eax, dword [esp + 0x78]
inc eax
mov dword [esp + 0x78], eax
imul eax, eax, 0x64
cdq
idiv edi
mov esi, eax
cmp esi, dword [esp + 0x6c]
je 0x516323
call fcn.0040f410
mov eax, dword [esp + 0x14]
push esi
push 0
push 0x801c
mov eax, dword [eax + 0x40]
push dword [eax]
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [esp + 0x6c], esi
mov edx, dword [esp + 0x20]
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x1c], ecx
neg ecx
mov esi, dword [ebp + 0x1c]
mov eax, dword [edx + 0xc]
mov dword [esp + 0xf4], eax
mov eax, dword [edx + 8]
mov dword [esp + 0xf0], eax
mov dword [esp + 0xe4], ecx
mov eax, dword [edx + 0x14]
sub eax, dword [edx + 0xc]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [ebp + 0x2c]
cvttsd2si ecx, xmm0
mov eax, ecx
sub eax, dword [ebp + 0x20]
mov dword [esp + 0x3c], eax
mov dword [esp + 0xec], eax
mov eax, esi
neg eax
mov dword [esp + 0xe0], eax
mov eax, dword [edx + 0x10]
sub eax, dword [edx + 8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [ebp + 0x24]
cvttsd2si edx, xmm0
mov eax, edx
sub eax, esi
cmp word [esp + 0x50], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0xe8], eax
jne 0x5163c3
push dword [esp + 0x10]
call dword [sym.imp.GDI32.dll_StartPage]
mov cl, 1
mov byte [esp + 0x1b], cl
jmp 0x51645b
test byte [esp + 0x24], 1
je 0x51640f
push dword [esp + 0x10]
call dword [sym.imp.GDI32.dll_StartPage]
cmp word [esp + 0x70], 0
mov byte [esp + 0x1b], 1
je 0x51645b
cmp word [esp + 0x74], 1
jne 0x51645b
mov ecx, dword [esp + 0xe8]
mov edx, ecx
mov eax, dword [esp + 0xe0]
sub edx, eax
add eax, edx
add ecx, edx
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe8], ecx
jmp 0x516459
cmp word [esp + 0x70], 0
jne 0x516437
mov eax, ecx
sub eax, dword [ebp + 0x20]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x3c]
add eax, ecx
mov dword [esp + 0xec], eax
mov eax, dword [ebp + 0x20]
sub eax, ecx
jmp 0x51645f
cmp word [esp + 0x74], 0
jne 0x51645b
mov eax, edx
mov ecx, esi
sub eax, ecx
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x28]
add eax, edx
mov dword [esp + 0xe8], eax
sub esi, edx
mov eax, dword [esp + 0x1c]
movsd xmm0, qword [ebp + 0x2c]
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp + 0x24]
movsd qword [esp], xmm0
push eax
push esi
push dword [esp + 0x9c]
mov esi, dword [esp + 0x2c]
lea eax, [esp + 0x114]
push ecx
mov ecx, dword [esp + 0x40]
push eax
push 0
lea eax, [esp + 0x108]
push eax
push dword [esp + 0x94]
lea eax, [esp + 0x120]
push dword [esp + 0x94]
push eax
mov eax, dword [esp + 0x4c]
push dword [eax + 0x217e4]
push esi
call fcn.0052fa60
mov eax, dword [esp + 0x20]
movsd xmm7, qword [0x5ea530]
mov ecx, dword [eax + 0x28]
cmp byte [ecx + 0x546], 0
movups xmm0, xmmword [ecx + 0xa0]
movups xmmword [esp + 0xa0], xmm0
movups xmm0, xmmword [ecx + 0xb0]
movups xmmword [esp + 0xb0], xmm0
je 0x5164ff
movaps xmm2, xmm7
movaps xmm6, xmm7
jmp 0x516511
movsd xmm6, qword [esp + 0xb0]
movsd xmm2, qword [esp + 0xa0]
cmp byte [ecx + 0x547], 0
je 0x516522
movaps xmm1, xmm7
movaps xmm4, xmm7
jmp 0x516534
movsd xmm4, qword [esp + 0xb8]
movsd xmm1, qword [esp + 0xa8]
cmp byte [ecx + 0x62], 0
movsd qword [esp + 0x58], xmm4
je 0x51657e
test byte [esp + 0x24], 1
jne 0x51657e
movzx eax, word [ecx + 0x5e]
cmp ax, 1
jne 0x516558
cmp word [ecx + 0x5c], 0
jmp 0x516562
test ax, ax
jne 0x516575
cmp word [ecx + 0x5c], 1
jne 0x516575
movaps xmm0, xmm4
movaps xmm4, xmm1
movsd qword [esp + 0x58], xmm4
movaps xmm1, xmm0
jmp 0x51657e
movaps xmm0, xmm6
movaps xmm6, xmm2
movaps xmm2, xmm0
cmp word [ecx + 0x98], 0
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x217e4]
movsd xmm0, qword [eax + 0x28]
jne 0x516649
movsd xmm4, qword [eax + 0x38]
movaps xmm3, xmm0
movsd xmm5, qword [eax + 0x60]
mulsd xmm3, xmm2
xorps xmm2, xmm2
mulsd xmm3, xmm4
divsd xmm3, xmm5
comisd xmm3, xmm2
jb 0x5165c3
addsd xmm3, xmm7
jmp 0x5165c7
subsd xmm3, xmm7
mulsd xmm0, xmm6
cvttsd2si edx, xmm3
mulsd xmm0, xmm4
xorps xmm3, xmm3
mov dword [esp + 0x40], edx
divsd xmm0, xmm5
comisd xmm0, xmm3
jb 0x5165ea
addsd xmm0, xmm7
jmp 0x5165ee
subsd xmm0, xmm7
movsd xmm2, qword [eax + 0x40]
cvttsd2si edx, xmm0
movsd xmm0, qword [eax + 0x30]
mulsd xmm1, xmm0
mov dword [esp + 0x48], edx
mulsd xmm1, xmm2
divsd xmm1, xmm5
comisd xmm1, xmm3
jb 0x516618
addsd xmm1, xmm7
jmp 0x51661c
subsd xmm1, xmm7
mulsd xmm0, qword [esp + 0x58]
cvttsd2si eax, xmm1
mulsd xmm0, xmm2
mov dword [esp + 0x44], eax
mov dword [esp + 0x1c], eax
divsd xmm0, xmm5
comisd xmm0, xmm3
jb 0x5166d6
addsd xmm0, xmm7
jmp 0x5166da
movsd xmm3, qword [eax + 0x38]
xorps xmm5, xmm5
mulsd xmm2, xmm0
mulsd xmm2, xmm3
comisd xmm2, xmm5
jb 0x516665
addsd xmm2, xmm7
jmp 0x516669
subsd xmm2, xmm7
mulsd xmm0, xmm6
cvttsd2si edx, xmm2
mulsd xmm0, xmm3
xorps xmm3, xmm3
mov dword [esp + 0x40], edx
comisd xmm0, xmm3
jb 0x516688
addsd xmm0, xmm7
jmp 0x51668c
subsd xmm0, xmm7
movsd xmm2, qword [eax + 0x40]
cvttsd2si edx, xmm0
movsd xmm0, qword [eax + 0x30]
mulsd xmm1, xmm0
mov dword [esp + 0x48], edx
mulsd xmm1, xmm2
comisd xmm1, xmm3
jb 0x5166b2
addsd xmm1, xmm7
jmp 0x5166b6
subsd xmm1, xmm7
mulsd xmm0, xmm4
cvttsd2si eax, xmm1
mulsd xmm0, xmm2
mov dword [esp + 0x44], eax
mov dword [esp + 0x1c], eax
comisd xmm0, xmm3
jb 0x5166d6
addsd xmm0, xmm7
jmp 0x5166da
subsd xmm0, xmm7
cmp byte [ecx + 0x108], 0
cvttsd2si eax, xmm0
mov dword [esp + 0x4c], eax
je 0x516766
mov eax, dword [esp + 0x30]
movups xmm0, xmmword [ecx + 0xc0]
movzx eax, word [eax + 0x3e]
movups xmmword [esp + 0x90], xmm0
cmp ax, 8
jne 0x516732
lea eax, [esp + 0xf8]
push eax
push dword [esp + 0x28]
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0xec]
push eax
lea eax, [esp + 0xa0]
push eax
movzx eax, word [ecx + 0x10a]
jmp 0x516753
lea ecx, [esp + 0xf8]
push ecx
push dword [esp + 0x28]
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0xec]
push ecx
lea ecx, [esp + 0xa0]
push ecx
mov ecx, dword [esp + 0x28]
push eax
push esi
call fcn.0051d8d0
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1c], eax
cmp byte [ebp + 0x18], 0
je 0x5168c2
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x780], 0
je 0x516cfa
mov eax, dword [esp + 0x20]
xor esi, esi
mov eax, dword [eax + 0x28]
add eax, 0x120
cmp word [eax], si
je 0x51679e
lea eax, [eax + 2]
inc esi
cmp word [eax], 0
jne 0x516794
mov eax, dword [esp + 0x14]
push dword [eax + 0x2184c]
push dword [esp + 0x14]
call dword [sym.imp.GDI32.dll_SelectObject]
push 0
push dword [esp + 0x14]
mov dword [esp + 0x30], eax
call dword [sym.imp.GDI32.dll_SetTextAlign]
movsd xmm0, qword [esp + 0x880]
xorps xmm3, xmm3
movsd xmm2, qword [0x5ea530]
mov dword [esp + 0x38], eax
addsd xmm0, xmm2
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x217e4]
mulsd xmm0, qword [ecx + 0x28]
movsd xmm1, qword [ecx + 0x60]
mulsd xmm0, qword [ecx + 0x38]
divsd xmm0, xmm1
comisd xmm0, xmm3
jb 0x516807
addsd xmm0, xmm2
jmp 0x51680b
subsd xmm0, xmm2
cvttsd2si eax, xmm0
movsd xmm0, qword [esp + 0x888]
addsd xmm0, qword [0x5ea528]
mov dword [esp + 0x3c], eax
mulsd xmm0, qword [ecx + 0x30]
mulsd xmm0, qword [ecx + 0x40]
divsd xmm0, xmm1
comisd xmm0, xmm3
jb 0x51683e
addsd xmm0, xmm2
jmp 0x516842
subsd xmm0, xmm2
mov edx, dword [esp + 0x30]
movsd qword [esp + 0x58], xmm0
movzx ecx, byte [edx + 0x805]
movzx eax, byte [edx + 0x804]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x803]
shl ecx, 8
or ecx, eax
push ecx
push dword [esp + 0x14]
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push 0
push esi
mov eax, dword [eax + 0x28]
mov esi, dword [esp + 0x18]
add eax, 0x120
push eax
cvttsd2si eax, qword [esp + 0x64]
push 0
push 2
sub ecx, eax
mov eax, dword [esp + 0x50]
add ecx, dword [esp + 0xf8]
add eax, dword [esp + 0x54]
add eax, dword [esp + 0xf4]
push ecx
push eax
push esi
call dword [sym.imp.GDI32.dll_ExtTextOutW]
push dword [esp + 0x28]
jmp 0x516ce8
lea eax, [esp + 0x54]
push eax
mov eax, dword [esp + 0x24]
push dword [esp + 0x28]
mov ecx, dword [eax + 0x28]
call fcn.00537120
movsd xmm0, qword [esp + 0x888]
movzx ecx, ax
mov eax, dword [esp + 0x20]
movsd qword [esp + 0x90], xmm0
movsd xmm0, qword [esp + 0x880]
mov dword [esp + 0x28], ecx
mov eax, dword [eax + 0x18]
movsd qword [esp + 0x88], xmm0
test eax, eax
je 0x516a8b
mov edx, dword [esp + 0x30]
cmp byte [edx + 0x780], 0
je 0x516a8b
test cx, cx
je 0x516a8b
xor esi, esi
cmp word [eax], si
je 0x51693c
lea eax, [eax + 2]
inc esi
cmp word [eax], 0
jne 0x516932
mov eax, dword [esp + 0x14]
push dword [eax + 0x2184c]
push dword [esp + 0x14]
call dword [sym.imp.GDI32.dll_SelectObject]
cmp word [esp + 0x28], 1
mov dword [esp + 0x58], eax
jne 0x516960
push 8
jmp 0x516962
push 0xa
push dword [esp + 0x14]
call dword [sym.imp.GDI32.dll_SetTextAlign]
movsd xmm0, qword [esp + 0x88]
xorps xmm3, xmm3
movsd xmm2, qword [0x5ea530]
mov dword [esp + 0x38], eax
addsd xmm0, xmm2
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x217e4]
mulsd xmm0, qword [eax + 0x28]
movsd xmm1, qword [eax + 0x60]
mulsd xmm0, qword [eax + 0x38]
divsd xmm0, xmm1
comisd xmm0, xmm3
jb 0x5169b1
addsd xmm0, xmm2
jmp 0x5169b5
subsd xmm0, xmm2
cvttsd2si ecx, xmm0
movsd xmm0, qword [esp + 0x90]
addsd xmm0, qword [0x5ea528]
mov dword [esp + 0x3c], ecx
mulsd xmm0, qword [eax + 0x30]
mulsd xmm0, qword [eax + 0x40]
divsd xmm0, xmm1
comisd xmm0, xmm3
jb 0x5169e8
addsd xmm0, xmm2
jmp 0x5169ec
subsd xmm0, xmm2
mov edx, dword [esp + 0x30]
cvttsd2si eax, xmm0
movzx ecx, byte [edx + 0x805]
shl ecx, 8
mov dword [esp + 0x34], eax
movzx eax, byte [edx + 0x804]
or ecx, eax
movzx eax, byte [edx + 0x803]
shl ecx, 8
or ecx, eax
push ecx
push dword [esp + 0x14]
call dword [sym.imp.GDI32.dll_SetTextColor]
mov ecx, dword [esp + 0x20]
push 0
push esi
mov esi, dword [esp + 0x18]
mov eax, dword [ecx + 0x18]
push eax
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x40]
add eax, dword [esp + 0xf0]
cmp word [esp + 0x34], 1
push 0
push 2
push eax
jne 0x516a5e
mov eax, dword [esp + 0x58]
add eax, dword [esp + 0x54]
add eax, dword [esp + 0xf8]
jmp 0x516a6d
mov eax, dword [esp + 0x100]
sub eax, dword [esp + 0x60]
sub eax, dword [esp + 0x54]
push eax
push esi
call dword [sym.imp.GDI32.dll_ExtTextOutW]
push dword [esp + 0x58]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x38]
push esi
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
movsx eax, word [edx + 0x21bec]
sub ecx, eax
cmp ecx, 1
jle 0x516cfa
mov eax, dword [edx + 0x48]
cmp byte [eax + 0x5499], 0
je 0x516cfa
cmp word [esp + 0x54], 0
jle 0x516cfa
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x28]
add eax, 0x120
je 0x516cfa
xor esi, esi
cmp word [eax], si
je 0x516aea
nop word [eax + eax]
lea eax, [eax + 2]
inc esi
cmp word [eax], 0
jne 0x516ae0
push dword [edx + 0x2184c]
push dword [esp + 0x14]
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x3c], eax
movsx eax, word [esp + 0x54]
dec eax
mov dword [esp + 0x58], eax
cmp eax, 3
ja case.default.0x516b0d
jmp dword [eax*4 + 0x516dc0]
push 8
jmp 0x516b22
push 0xa
jmp 0x516b22
push 0
jmp 0x516b22
push 2
push dword [esp + 0x14]
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
xorps xmm3, xmm3
movsd xmm1, qword [esp + 0x88]
movsd xmm2, qword [0x5ea530]
addsd xmm1, xmm2
mov eax, dword [eax + 0x217e4]
mulsd xmm1, qword [eax + 0x28]
movsd xmm0, qword [eax + 0x60]
mulsd xmm1, qword [eax + 0x38]
divsd xmm1, xmm0
comisd xmm1, xmm3
jb 0x516b71
addsd xmm1, xmm2
jmp 0x516b75
subsd xmm1, xmm2
cvttsd2si ecx, xmm1
movsd xmm1, qword [esp + 0x90]
addsd xmm1, qword [0x5ea528]
mov dword [esp + 0x28], ecx
mulsd xmm1, qword [eax + 0x30]
mulsd xmm1, qword [eax + 0x40]
divsd xmm1, xmm0
comisd xmm1, xmm3
jb 0x516ba8
addsd xmm1, xmm2
jmp 0x516bac
subsd xmm1, xmm2
mov edx, dword [esp + 0x30]
cvttsd2si eax, xmm1
movzx ecx, byte [edx + 0x805]
shl ecx, 8
mov dword [esp + 0x34], eax
movzx eax, byte [edx + 0x804]
or ecx, eax
movzx eax, byte [edx + 0x803]
shl ecx, 8
or ecx, eax
push ecx
push dword [esp + 0x14]
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [esp + 0x58]
cmp eax, 3
ja case.default.0x516bef
jmp dword [eax*4 + 0x516dd0]
mov eax, dword [esp + 0x20]
push 0
push esi
mov eax, dword [eax + 0x28]
add eax, 0x120
push eax
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x40]
add eax, dword [esp + 0xf0]
mov esi, dword [esp + 0x1c]
push 0
push 2
push eax
mov eax, dword [esp + 0x58]
add eax, dword [esp + 0x40]
add eax, dword [esp + 0xf8]
push eax
push esi
call dword [sym.imp.GDI32.dll_ExtTextOutW]
jmp 0x516ce4
mov eax, dword [esp + 0x20]
push 0
push esi
mov esi, dword [esp + 0x18]
mov eax, dword [eax + 0x28]
add eax, 0x120
push eax
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x40]
add eax, dword [esp + 0xf0]
push 0
push 2
push eax
mov eax, dword [esp + 0x100]
sub eax, dword [esp + 0x40]
sub eax, dword [esp + 0x60]
push eax
push esi
call dword [sym.imp.GDI32.dll_ExtTextOutW]
jmp 0x516ce4
mov eax, dword [esp + 0x20]
push 0
push esi
mov eax, dword [eax + 0x28]
add eax, 0x120
push eax
mov eax, dword [esp + 0x40]
sub eax, dword [esp + 0x58]
add eax, dword [esp + 0xf8]
jmp 0x516c15
mov eax, dword [esp + 0x20]
push 0
push esi
mov esi, dword [esp + 0x18]
mov eax, dword [eax + 0x28]
add eax, 0x120
push eax
mov eax, dword [esp + 0x40]
sub eax, dword [esp + 0x58]
add eax, dword [esp + 0xf8]
push 0
push 2
push eax
mov eax, dword [esp + 0x100]
sub eax, dword [esp + 0x40]
sub eax, dword [esp + 0x60]
push eax
push esi
call dword [sym.imp.GDI32.dll_ExtTextOutW]
jmp 0x516ce4
mov esi, dword [esp + 0x10]
push dword [esp + 0x3c]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x38]
push esi
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
cmp byte [eax + ecx - 1], 0
mov edx, dword [esp + 0x20]
mov edx, dword [edx]
mov dword [esp + 0x20], edx
je 0x516d37
test edx, edx
je 0x516d23
cmp word [esp + 0x50], 0
je 0x516d23
test al, 1
jne 0x516d37
push esi
call dword [sym.imp.GDI32.dll_EndPage]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov byte [esp + 0x1b], 0
inc eax
mov dword [esp + 0x24], eax
test edx, edx
jne 0x5162c0
jmp 0x516d54
cmp byte [esp + 0x1b], 0
je 0x516d58
push esi
call dword [sym.imp.GDI32.dll_EndPage]
mov edx, dword [esp + 0x14]
cmp edi, 0xa
jle 0x516d6a
mov eax, dword [edx + 0x40]
push 0
push dword [eax]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [esp + 0x2c]
call fcn.00560853
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
add esp, 4
push dword [esp + 0x7c]
call esi
push dword [esp + 0x64]
call esi
push dword [esp + 0x68]
call esi
push dword [esp + 0x80]
call esi
mov eax, dword [esp + 0x14]
push dword [eax + 0x21b94]
call dword [sym.imp.GDI32.dll_EndDoc]
mov ecx, dword [esp + 0xa9c]
pop edi
pop esi
xor ecx, esp
call fcn.0056060a
mov esp, ebp
pop ebp
ret 0x2c