Function at 0x180060410
Capabilities:
Get graphical window text

Disassembly:
mov rax, rsp
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x58]
sub rsp, 0x158
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
mov rax, qword [0x180107738]
xor rax, rsp
mov qword [rbp + 0x10], rax
xor r14d, r14d
mov qword [rsp + 0x78], rdx
mov rbx, r9
mov r10d, r8d
mov r13, rdx
mov rsi, rcx
cmp r8d, 0x111
ja 0x1800612bb
je 0x180061160
mov eax, r8d
sub eax, 1
je 0x18006194d
sub eax, 1
je 0x180061144
sub eax, 8
je 0x18006111b
sub eax, 5
je 0x1800604ae
cmp eax, 9
jne 0x1800612e2
test rbx, rbx
jne 0x18006194d
mov dword [rcx + 0x5d8], r14d
jmp 0x18006194d
lea rdx, [rbp - 0x50]
mov rcx, r13
call qword [sym.imp.USER32.dll_BeginPaint]
mov r15, rax
mov qword [rbp - 0x80], rax
cmp dword [rsi + 0x5d8], r14d
jg 0x1800610c3
mov edx, 7
mov rcx, r13
call qword [sym.imp.USER32.dll_KillTimer]
mov dword [rsi + 0x5e0], r14d
cmp dword [0x1801073b0], r14d
jg 0x1800604fb
mov rcx, r15
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov rdi, rax
jmp 0x1800604ff
mov rdi, qword [rbp - 0x80]
mov qword [rsp + 0x70], rdi
cmp dword [rsi + 0x5e4], r14d
je 0x180061059
mov ecx, r14d
mov r13d, r14d
mov r8d, 0xff
mov dword [rsp + 0x50], ecx
cmp dword [rsi + 0x6a0], r14d
jle 0x180060849
mov eax, dword [rsi + 0x6a4]
xorps xmm5, xmm5
movss xmm4, dword [0x1800e0298]
nop
mov r10d, r14d
test eax, eax
jle 0x180060833
movsxd rax, ecx
lea r9, [rax + rax*2]
lea rbx, [rax*4]
nop word [rax + rax]
mov rax, qword [rsi + 0x640]
movss xmm2, dword [rbx + rax]
ucomiss xmm2, xmm5
jp 0x180060615
jne 0x180060615
mov ecx, dword [rsi + 0x64]
add ecx, dword [rsi + 0x5c]
mov edx, dword [rsi + 0x58]
sub ecx, r13d
dec ecx
add edx, r10d
js 0x1800605a2
test ecx, ecx
js 0x1800605a2
cmp edx, dword [rsi + 0x698]
jge 0x1800605a2
cmp ecx, dword [rsi + 0x69c]
jl 0x1800605af
cmp qword [rsi + 0x630], r14
jne 0x180060815
mov r11, qword [rsi + 0x630]
mov r8, qword [rsi + 0x628]
test r11, r11
je 0x1800605f2
mov eax, dword [rsi + 0x698]
imul eax, ecx
add eax, edx
movsxd rdx, eax
lea rcx, [r11 + rdx*2]
movzx eax, word [rdx + rcx]
mov word [r9 + r8], ax
movzx eax, byte [rdx + rcx + 2]
mov byte [r9 + r8 + 2], al
mov r8d, 0xff
jmp 0x180060815
movzx eax, word [rsi + 0x638]
mov word [r9 + r8], ax
movzx eax, byte [rsi + 0x63a]
mov byte [r9 + r8 + 2], al
mov r8d, 0xff
jmp 0x180060815
mov rcx, qword [rsi + 0x618]
mov r11d, r14d
mov edi, r14d
mov r15d, r14d
movzx eax, word [rcx + r9]
movzx ecx, byte [rcx + r9 + 2]
mov word [rsp + 0x54], ax
mov rax, qword [rsi + 0x690]
mov edx, dword [rbx + rax]
add ecx, edx
cmovns r11d, ecx
movzx ecx, byte [rsp + 0x55]
cmp r11d, r8d
cmovg r11d, r8d
add ecx, edx
cmovns edi, ecx
movzx ecx, byte [rsp + 0x54]
cmp edi, r8d
cmovg edi, r8d
add ecx, edx
cmovns r15d, ecx
cmp r15d, r8d
cmovg r15d, r8d
ucomiss xmm2, xmm4
jp 0x180060690
jne 0x180060690
mov rax, qword [rsi + 0x628]
mov byte [rax + r9], r15b
mov byte [rax + r9 + 1], dil
mov byte [rax + r9 + 2], r11b
jmp 0x180060815
mov ecx, dword [rsi + 0x64]
add ecx, dword [rsi + 0x5c]
mov edx, dword [rsi + 0x58]
sub ecx, r13d
dec ecx
add edx, r10d
js 0x1800606b7
test ecx, ecx
js 0x1800606b7
cmp edx, dword [rsi + 0x698]
jge 0x1800606b7
cmp ecx, dword [rsi + 0x69c]
jl 0x1800606c4
cmp qword [rsi + 0x630], r14
jne 0x180060815
mov r12, qword [rsi + 0x630]
movaps xmm3, xmm4
subss xmm3, xmm2
test r12, r12
je 0x180060777
mov eax, dword [rsi + 0x698]
imul eax, ecx
add eax, edx
movsxd rdx, eax
lea r8, [rdx + rdx*2]
movzx eax, byte [r8 + r12 + 2]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movzx eax, r11b
movd xmm0, eax
mov rax, qword [rsi + 0x628]
mulss xmm1, xmm3
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
addss xmm1, xmm0
cvttss2si ecx, xmm1
mov byte [rax + r9 + 2], cl
lea rcx, [rdx + rdx*2]
mov rax, qword [rsi + 0x630]
movzx ecx, byte [rcx + rax + 1]
movzx eax, dil
movd xmm1, ecx
movd xmm0, eax
mov rax, qword [rsi + 0x628]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm3
mulss xmm0, xmm2
addss xmm1, xmm0
cvttss2si ecx, xmm1
mov byte [rax + r9 + 1], cl
mov rax, qword [rsi + 0x630]
movzx ecx, byte [rax + r8]
mov r8d, 0xff
movd xmm1, ecx
jmp 0x1800607ec
movzx eax, byte [rsi + 0x63a]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movzx eax, r11b
movd xmm0, eax
mov rax, qword [rsi + 0x628]
mulss xmm1, xmm3
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
addss xmm1, xmm0
cvttss2si ecx, xmm1
mov byte [rax + r9 + 2], cl
movzx eax, byte [rsi + 0x639]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movzx eax, dil
movd xmm0, eax
mov rax, qword [rsi + 0x628]
mulss xmm1, xmm3
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
addss xmm1, xmm0
cvttss2si ecx, xmm1
mov byte [rax + r9 + 1], cl
movzx eax, byte [rsi + 0x638]
movd xmm1, eax
movzx eax, r15b
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov rax, qword [rsi + 0x628]
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm3
mulss xmm0, xmm2
addss xmm1, xmm0
cvttss2si ecx, xmm1
mov byte [r9 + rax], cl
mov eax, dword [rsi + 0x6a4]
inc r10d
add rbx, 4
add r9, 3
cmp r10d, eax
jl 0x180060560
mov ecx, dword [rsp + 0x50]
add ecx, eax
inc r13d
mov dword [rsp + 0x50], ecx
cmp r13d, dword [rsi + 0x6a0]
jl 0x180060540
cmp byte [rsi + 0x5b8], 1
jne 0x180060da5
movss xmm0, dword [rsi + 0x654]
xorps xmm8, xmm8
xorps xmm0, xmmword [0x1800e0be0]
mov ebx, dword [rsi + 0x60]
mov ecx, ebx
cvtss2sd xmm8, xmm0
sar ecx, 1
mov eax, ecx
sub eax, dword [rsi + 0x5f0]
movd xmm7, ecx
mulsd xmm8, qword [0x1800e0d08]
movd xmm6, eax
cvtdq2pd xmm6, xmm6
divsd xmm8, qword [0x1800e0d28]
cvtdq2pd xmm7, xmm7
movaps xmm0, xmm8
call fcn.1800b1980
mulsd xmm0, xmm6
addsd xmm0, xmm7
cvttsd2si eax, xmm0
movaps xmm0, xmm8
mov dword [rsi + 0x5e8], eax
call fcn.1800b0b00
mulsd xmm0, xmm6
addsd xmm0, xmm7
cvttsd2si eax, xmm0
mov dword [rsi + 0x5ec], eax
lea r10d, [rax - 6]
add eax, 6
imul ebx, r10d
mov dword [rsp + 0x50], ebx
cmp r10d, eax
jge 0x180060da5
mov qword [rsp + 0x58], 3
mov r13, r14
nop dword [rax]
mov r15d, dword [rsi + 0x5e8]
mov rdi, r14
movsxd r9, ebx
sub r15d, 6
movsxd rbx, r15d
mov qword [rsp + 0x60], r9
lea r11d, [r15 + 2]
lea rax, [rbx + r9]
lea r12, [rax + rax*2]
test rbx, rbx
js 0x1800609c1
test r10d, r10d
js 0x1800609c1
cmp r15d, dword [rsi + 0x60]
jge 0x1800609c1
cmp r10d, dword [rsi + 0x64]
jge 0x1800609c1
mov rax, qword [0x180109740]
mov rdx, qword [rsi + 0x628]
cvttss2si r8d, dword [rax + r13]
movzx ecx, byte [rdx + r12 + 2]
mov eax, r14d
add ecx, r8d
cmovns eax, ecx
mov ecx, 0xff
cmp eax, ecx
cmovg eax, ecx
mov byte [rdx + r12 + 2], al
mov eax, r14d
mov rdx, qword [rsi + 0x628]
movzx ecx, byte [rdx + r12 + 1]
add ecx, r8d
cmovns eax, ecx
mov ecx, 0xff
cmp eax, ecx
cmovg eax, ecx
mov byte [rdx + r12 + 1], al
mov eax, r14d
mov rdx, qword [rsi + 0x628]
movzx ecx, byte [rdx + r12]
add ecx, r8d
cmovns eax, ecx
mov ecx, 0xff
cmp eax, ecx
cmovg eax, ecx
mov byte [rdx + r12], al
lea eax, [r11 - 1]
test eax, eax
js 0x180060a74
test r10d, r10d
js 0x180060a74
cmp eax, dword [rsi + 0x60]
jge 0x180060a74
cmp r10d, dword [rsi + 0x64]
jge 0x180060a74
mov rax, qword [0x180109740]
lea rcx, [r9 + 1]
mov rdx, qword [rsi + 0x628]
add rcx, rbx
cvttss2si r8d, dword [rax + r13 + 4]
lea r9, [rcx + rcx*2]
mov eax, r14d
movzx ecx, byte [r9 + rdx + 2]
add ecx, r8d
cmovns eax, ecx
mov ecx, 0xff
cmp eax, ecx
cmovg eax, ecx
mov byte [r9 + rdx + 2], al
mov eax, r14d
mov rdx, qword [rsi + 0x628]
movzx ecx, byte [r9 + rdx + 1]
add ecx, r8d
cmovns eax, ecx
mov ecx, 0xff
cmp eax, ecx
cmovg eax, ecx
mov byte [r9 + rdx + 1], al
mov eax, r14d
mov rdx, qword [rsi + 0x628]
movzx ecx, byte [r9 + rdx]
add ecx, r8d
cmovns eax, ecx
mov ecx, 0xff
cmp eax, ecx
cmovg eax, ecx
mov byte [r9 + rdx], al
mov r9, qword [rsp + 0x60]
test r11d, r11d
js 0x180060b28
test r10d, r10d
js 0x180060b28
cmp r11d, dword [rsi + 0x60]
jge 0x180060b28
cmp r10d, dword [rsi + 0x64]
jge 0x180060b28
mov rax, qword [0x180109740]
lea rdx, [r9 + 2]
mov rcx, qword [rsp + 0x58]
add rdx, rbx
add rcx, rdi
lea r9, [rdx + rdx*2]
mov rdx, qword [rsi + 0x628]
cvttss2si r8d, dword [rax + rcx*4 - 4]
mov eax, r14d
movzx ecx, byte [r9 + rdx + 2]
add ecx, r8d
cmovns eax, ecx
mov ecx, 0xff
cmp eax, ecx
cmovg eax, ecx
mov byte [r9 + rdx + 2], al
mov eax, r14d
mov rdx, qword [rsi + 0x628]
movzx ecx, byte [r9 + rdx + 1]
add ecx, r8d
cmovns eax, ecx
mov ecx, 0xff
cmp eax, ecx
cmovg eax, ecx
mov byte [r9 + rdx + 1], al
mov eax, r14d
mov rdx, qword [rsi + 0x628]
movzx ecx, byte [r9 + rdx]
add ecx, r8d
cmovns eax, ecx
mov ecx, 0xff
cmp eax, ecx
cmovg eax, ecx
mov byte [r9 + rdx], al
lea eax, [r11 + 1]
test eax, eax
js 0x180060be2
test r10d, r10d
js 0x180060be2
cmp eax, dword [rsi + 0x60]
jge 0x180060be2
cmp r10d, dword [rsi + 0x64]
jge 0x180060be2
mov rax, qword [0x180109740]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
add rdx, 3
add rcx, rdi
add rdx, rbx
cvttss2si r8d, dword [rax + rcx*4]
lea r9, [rdx + rdx*2]
mov eax, r14d
mov rdx, qword [rsi + 0x628]
movzx ecx, byte [rdx + r9 + 2]
add ecx, r8d
cmovns eax, ecx
mov ecx, 0xff
cmp eax, ecx
cmovg eax, ecx
mov byte [rdx + r9 + 2], al
mov eax, r14d
mov rdx, qword [rsi + 0x628]
movzx ecx, byte [rdx + r9 + 1]
add ecx, r8d
cmovns eax, ecx
mov ecx, 0xff
cmp eax, ecx
cmovg eax, ecx
mov byte [rdx + r9 + 1], al
mov eax, r14d
mov rdx, qword [rsi + 0x628]
movzx ecx, byte [rdx + r9]
add ecx, r8d
cmovns eax, ecx
mov ecx, 0xff
cmp eax, ecx
cmovg eax, ecx
mov byte [rdx + r9], al
lea eax, [r11 + 2]
test eax, eax
js 0x180060c9d
test r10d, r10d
js 0x180060c9d
cmp eax, dword [rsi + 0x60]
jge 0x180060c9d
cmp r10d, dword [rsi + 0x64]
jge 0x180060c9d
mov rax, qword [0x180109740]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
add rdx, 4
add rcx, rdi
add rdx, rbx
cvttss2si r8d, dword [rax + rcx*4 + 4]
lea r9, [rdx + rdx*2]
mov eax, r14d
mov rdx, qword [rsi + 0x628]
movzx ecx, byte [rdx + r9 + 2]
add ecx, r8d
cmovns eax, ecx
mov ecx, 0xff
cmp eax, ecx
cmovg eax, ecx
mov byte [rdx + r9 + 2], al
mov eax, r14d
mov rdx, qword [rsi + 0x628]
movzx ecx, byte [rdx + r9 + 1]
add ecx, r8d
cmovns eax, ecx
mov ecx, 0xff
cmp eax, ecx
cmovg eax, ecx
mov byte [rdx + r9 + 1], al
mov eax, r14d
mov rdx, qword [rsi + 0x628]
movzx ecx, byte [rdx + r9]
add ecx, r8d
cmovns eax, ecx
mov ecx, 0xff
cmp eax, ecx
cmovg eax, ecx
mov byte [rdx + r9], al
lea eax, [r11 + 3]
test eax, eax
js 0x180060d58
test r10d, r10d
js 0x180060d58
cmp eax, dword [rsi + 0x60]
jge 0x180060d58
cmp r10d, dword [rsi + 0x64]
jge 0x180060d58
mov rax, qword [0x180109740]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
add rdx, 5
add rcx, rdi
add rdx, rbx
cvttss2si r8d, dword [rax + rcx*4 + 8]
lea r9, [rdx + rdx*2]
mov eax, r14d
mov rdx, qword [rsi + 0x628]
movzx ecx, byte [rdx + r9 + 2]
add ecx, r8d
cmovns eax, ecx
mov ecx, 0xff
cmp eax, ecx
cmovg eax, ecx
mov byte [rdx + r9 + 2], al
mov eax, r14d
mov rdx, qword [rsi + 0x628]
movzx ecx, byte [rdx + r9 + 1]
add ecx, r8d
cmovns eax, ecx
mov ecx, 0xff
cmp eax, ecx
cmovg eax, ecx
mov byte [rdx + r9 + 1], al
mov eax, r14d
mov rdx, qword [rsi + 0x628]
movzx ecx, byte [rdx + r9]
add ecx, r8d
cmovns eax, ecx
mov ecx, 0xff
cmp eax, ecx
cmovg eax, ecx
mov byte [rdx + r9], al
mov r9, qword [rsp + 0x60]
add r15d, 6
add r11d, 6
add rbx, 6
add r12, 0x12
add rdi, 6
add r13, 0x18
cmp rdi, 0xc
jl 0x180060925
mov ebx, dword [rsp + 0x50]
inc r10d
add ebx, dword [rsi + 0x60]
mov eax, dword [rsi + 0x5ec]
add qword [rsp + 0x58], 0xc
add eax, 6
mov dword [rsp + 0x50], ebx
cmp r10d, eax
jl 0x180060900
cmp dword [0x1801073b0], r14d
jle 0x180060fb4
mov eax, dword [rsi + 0x60]
inc eax
mov qword [rbp - 0x68], r14
mov dword [rbp - 0x60], eax
mov eax, dword [rsi + 0x64]
mov dword [rbp - 0x5c], eax
nop dword [rax]
nop dword [rax + rax]
mov rcx, qword [rsi + 0x520]
lea r8, [rsi + 0x530]
xor r9d, r9d
mov qword [rsp + 0x20], r14
lea rdx, [rbp - 0x68]
mov rax, qword [rcx]
call qword [rax + 0xc8]
cmp eax, 0x8876021c
je 0x180060dd0
mov eax, dword [rsi + 0x540]
mov dword [rsi + 0x5a8], eax
mov eax, dword [rsi + 0x58c]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [rsi + 0x5ac], eax
mov ecx, eax
cmp eax, 3
jge 0x180060e32
mov dword [0x1801073b0], 0xfffffff8
mov ecx, dword [rsi + 0x5ac]
mov eax, dword [rsi + 0x5ac]
mov r8d, 4
cmp ecx, r8d
cmovg eax, r8d
mov dword [rsi + 0x5ac], eax
cmp dword [0x1801073b0], r14d
jle 0x180060f0d
mov eax, dword [rsi + 0x64]
mov r15d, r14d
mov ecx, dword [rsi + 0x60]
mov ebx, r14d
lea edi, [rax - 1]
imul edi, ecx
test eax, eax
jle 0x180060f0d
mov r10d, r14d
mov r11d, r14d
test ecx, ecx
jle 0x180060ef8
movsxd rax, edi
lea rdx, [rax + rax*2]
nop dword [rax]
nop word [rax + rax]
mov r8, qword [rsi + 0x558]
lea eax, [r11 + rbx]
movsxd r9, eax
mov rax, qword [rsi + 0x628]
movzx ecx, byte [rdx + rax]
mov byte [r8 + r9], cl
mov rax, qword [rsi + 0x628]
movzx ecx, byte [rax + rdx + 1]
mov byte [r8 + r9 + 1], cl
mov rax, qword [rsi + 0x628]
movzx ecx, byte [rax + rdx + 2]
mov byte [r8 + r9 + 2], cl
mov eax, dword [rsi + 0x5ac]
cmp eax, 3
jle 0x180060ee6
mov byte [r8 + r9 + 3], 0xff
mov eax, dword [rsi + 0x5ac]
mov ecx, dword [rsi + 0x60]
inc r10d
add rdx, 3
add r11d, eax
cmp r10d, ecx
jl 0x180060e90
add ebx, dword [rsi + 0x5a8]
inc r15d
sub edi, ecx
cmp r15d, dword [rsi + 0x64]
jl 0x180060e72
mov rcx, qword [rsi + 0x520]
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x100]
cmp dword [0x1801073b0], r14d
jl 0x180061159
mov rcx, qword [rsi + 0x10]
lea rdx, [rbp - 0x78]
call qword [sym.imp.USER32.dll_GetClientRect]
mov rcx, qword [rsi + 0x10]
lea rdx, [rsp + 0x68]
mov qword [rsp + 0x68], r14
call qword [sym.imp.USER32.dll_ClientToScreen]
mov r8d, dword [rsp + 0x6c]
lea rcx, [rbp - 0x78]
mov edx, dword [rsp + 0x68]
call qword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [rbp - 0x78]
lea r9, [rbp - 0x68]
mov ecx, dword [rsi + 0x60]
lea rdx, [rbp - 0x78]
mov r8, qword [rsi + 0x520]
inc eax
add ecx, eax
mov qword [rsp + 0x28], r14
mov dword [rbp - 0x70], ecx
mov ecx, dword [rsi + 0x64]
add ecx, dword [rbp - 0x74]
mov dword [rbp - 0x6c], ecx
mov rcx, qword [rsi + 0x518]
mov dword [rsp + 0x20], r14d
mov rax, qword [rcx]
call qword [rax + 0x28]
mov r13, qword [rsp + 0x78]
lea rdx, [rbp - 0x50]
mov rcx, r13
call qword [sym.imp.USER32.dll_EndPaint]
jmp 0x18006194d
mov r9, qword [rsi + 0x628]
lea rdx, [rsi + 0x6a8]
mov rcx, qword [rbp - 0x80]
mov r8d, 4
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], rdx
call qword [sym.imp.GDI32.dll_CreateDIBitmap]
mov r15, qword [rsp + 0x70]
mov rdx, rax
mov rcx, r15
mov rdi, rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov r9d, dword [rsi + 0x60]
xor r8d, r8d
mov rcx, qword [rbp - 0x80]
mov rbx, rax
mov eax, dword [rsi + 0x64]
xor edx, edx
mov dword [rsp + 0x40], 0xcc0020
mov dword [rsp + 0x38], r14d
mov dword [rsp + 0x30], r14d
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], eax
call qword [sym.imp.GDI32.dll_BitBlt]
mov rdx, rbx
mov rcx, r15
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, rdi
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, r15
call qword [sym.imp.GDI32.dll_DeleteDC]
mov r13, qword [rsp + 0x78]
lea rdx, [rbp - 0x50]
mov rcx, r13
call qword [sym.imp.USER32.dll_EndPaint]
jmp 0x18006194d
mov rdx, qword [rsi + 0x4f0]
mov rcx, rdi
call qword [sym.imp.GDI32.dll_SelectObject]
mov r9d, dword [rsi + 0x60]
xor r8d, r8d
mov dword [rsp + 0x40], 0xcc0020
mov rbx, rax
mov eax, dword [rsi + 0x64]
xor edx, edx
mov dword [rsp + 0x38], r14d
mov rcx, r15
mov dword [rsp + 0x30], r14d
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], eax
call qword [sym.imp.GDI32.dll_BitBlt]
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, rdi
call qword [sym.imp.GDI32.dll_DeleteDC]
lea rdx, [rbp - 0x50]
mov rcx, r13
call qword [sym.imp.USER32.dll_EndPaint]
jmp 0x18006194d
cmp dword [rsi + 0x5e0], r14d
jne 0x180061109
mov eax, dword [rsi + 0x64]
xor edx, edx
imul eax, dword [rsi + 0x60]
mov rcx, qword [rsi + 0x600]
movsxd r8, eax
call fcn.18007d940
xor r9d, r9d
mov byte [rsi + 0x610], r14b
mov rcx, r13
lea edx, [r9 + 7]
lea r8d, [r9 + 0xf]
call qword [sym.imp.USER32.dll_SetTimer]
mov dword [rsi + 0x5e0], 1
lea rdx, [rbp - 0x50]
mov rcx, r13
call qword [sym.imp.USER32.dll_EndPaint]
jmp 0x18006194d
mov rcx, qword [rcx + 0x5d0]
test rbx, rbx
je 0x180061137
mov edx, 1
call qword [sym.imp.USER32.dll_EnableWindow]
jmp 0x18006194d
xor edx, edx
call qword [sym.imp.USER32.dll_EnableWindow]
jmp 0x18006194d
mov dword [rcx + 0x5d8], r14d
mov edx, 7
mov rcx, r13
call qword [sym.imp.USER32.dll_KillTimer]
xor eax, eax
jmp 0x180061950
mov rdx, rbx
movzx ecx, bx
shr rdx, 0x10
sub ecx, 1
je 0x180061246
sub ecx, 1
je 0x1800611f4
sub ecx, 1
je 0x180061194
cmp ecx, 1
jne 0x18006194d
mov eax, dword [rsi + 0x64]
mov dword [rsi + 0x5d8], eax
jmp 0x18006194d
movss xmm0, dword [rsi + 0x648]
mov rcx, rsi
subss xmm0, dword [0x1800e0298]
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss dword [rsi + 0x648], xmm1
call fcn.18005bac0
cmp qword [rbp + 0xc0], 1
je 0x18006194d
mov rcx, qword [rsi + 0x10]
movsxd rbx, dword [rsi + 0x28]
call qword [sym.imp.USER32.dll_GetParent]
xor r9d, r9d
mov r8, rbx
mov rcx, rax
mov edx, 0x111
call qword [sym.imp.USER32.dll_SendMessageA]
jmp 0x18006194d
movss xmm0, dword [rsi + 0x648]
mov rcx, rsi
addss xmm0, dword [0x1800e0298]
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss dword [rsi + 0x648], xmm1
call fcn.18005bac0
mov rcx, qword [rsi + 0x10]
movsxd rbx, dword [rsi + 0x28]
call qword [sym.imp.USER32.dll_GetParent]
xor r9d, r9d
mov r8, rbx
mov rcx, rax
mov edx, 0x111
call qword [sym.imp.USER32.dll_SendMessageA]
jmp 0x18006194d
mov eax, 0x200
cmp dx, ax
jne 0x18006194d
mov rcx, qword [rsi + 0x5d0]
lea rdx, [rbp]
mov r8d, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetWindowTextA]
lea rcx, [rbp]
call fcn.1800ac710
xorps xmm1, xmm1
mov rcx, rsi
cvtsd2ss xmm1, xmm0
movss dword [rsi + 0x648], xmm1
call fcn.18005bac0
mov rcx, qword [rsi + 0x10]
movsxd rbx, dword [rsi + 0x28]
call qword [sym.imp.USER32.dll_GetParent]
xor r9d, r9d
mov r8, rbx
mov rcx, rax
mov edx, 0x111
call qword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [rsi + 0x64]
mov dword [rsi + 0x5d8], eax
jmp 0x18006194d
mov eax, r10d
sub eax, 0x113
je 0x1800618f2
sub eax, 0xed
je 0x180061566
sub eax, 1
je 0x18006135e
cmp eax, 1
je 0x180061300
mov r9, qword [rbp + 0xc0]
mov r8, rbx
mov edx, r10d
mov rcx, r13
call qword [sym.imp.USER32.dll_DefWindowProcA]
mov r14, rax
jmp 0x18006194d
mov eax, dword [rcx + 0x64]
inc eax
mov dword [rcx + 0x5d8], eax
call qword [sym.imp.USER32.dll_ReleaseCapture]
mov rcx, qword [rbp + 0xc0]
movsx eax, cx
cmp eax, dword [rsi + 0x60]
jg 0x18006132c
shr rcx, 0x10
movsx eax, cx
cmp eax, dword [rsi + 0x64]
jle 0x180061337
mov eax, dword [rsi + 0x64]
dec eax
mov dword [rsi + 0x5d8], eax
mov rcx, qword [rsi + 0x10]
movsxd rbx, dword [rsi + 0x28]
call qword [sym.imp.USER32.dll_GetParent]
xor r9d, r9d
mov r8, rbx
mov rcx, rax
mov edx, 0x111
call qword [sym.imp.USER32.dll_SendMessageA]
jmp 0x18006194d
mov rcx, qword [rcx + 0x10]
call qword [sym.imp.USER32.dll_SetCapture]
cmp byte [rsi + 0x5b8], 1
mov ebx, dword [rsi + 0x64]
mov byte [rsi + 0x78], 2
lea eax, [rbx + 0xa]
mov dword [rsi + 0x5d8], eax
jne 0x18006155d
mov byte [rsi + 0x5bb], 1
cmp byte [rsi + 0x5b9], r14b
je 0x18006139c
mov dword [rsi + 0x65c], r14d
mov rax, qword [rbp + 0xc0]
mov r15d, dword [rsi + 0x60]
mov rcx, qword [rsi + 0x10]
movsx r12d, ax
sar rax, 0x10
movsx edi, ax
sar r15d, 1
sar ebx, 1
call qword [sym.imp.USER32.dll_SetCapture]
mov eax, r15d
sub eax, r12d
movd xmm1, eax
mov eax, ebx
sub eax, edi
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
call fcn.1800b25e8
mov eax, dword [rsi + 0x60]
sar eax, 1
sub eax, 2
movd xmm1, eax
cvtdq2ps xmm1, xmm1
divss xmm0, xmm1
call fcn.1800b4434
movsd xmm7, qword [0x1800e3328]
xorps xmm1, xmm1
movss xmm6, dword [0x1800e3364]
cvtss2sd xmm1, xmm0
mulsd xmm1, xmm7
cvtpd2ps xmm0, xmm1
movss dword [rsi + 0x658], xmm0
cmp edi, ebx
jne 0x18006143a
movss xmm0, dword [rsi + 0x660]
jmp 0x1800614c5
mov eax, r12d
sub eax, r15d
movd xmm0, eax
mov eax, edi
sub eax, ebx
cvtdq2ps xmm0, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
divss xmm0, xmm1
call fcn.1800b0870
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
xorps xmm0, xmm0
mulsd xmm1, xmm7
cmp byte [rsi + 0x5b8], r14b
jne 0x180061490
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [rsi + 0x660], xmm0
cmp edi, ebx
jge 0x1800614c5
addss xmm0, dword [0x1800e3350]
jmp 0x1800614bd
subsd xmm0, xmm1
cvtpd2ps xmm2, xmm0
movss dword [rsi + 0x660], xmm2
movaps xmm0, xmm2
cmp edi, ebx
jle 0x1800614b1
addss xmm0, dword [0x1800e3350]
jmp 0x1800614bd
cmp r12d, r15d
jge 0x1800614c5
movaps xmm0, xmm2
addss xmm0, xmm6
movss dword [rsi + 0x660], xmm0
movss xmm3, dword [rsi + 0x64c]
comiss xmm3, xmm0
jbe 0x1800614dd
movss dword [rsi + 0x660], xmm3
movaps xmm0, xmm3
movss xmm2, dword [rsi + 0x650]
comiss xmm0, xmm2
jbe 0x1800614f5
movss dword [rsi + 0x660], xmm2
movaps xmm0, xmm2
subss xmm6, xmm0
movss xmm1, dword [rsi + 0x66c]
subss xmm2, xmm3
movss dword [rsi + 0x668], xmm0
movss xmm0, dword [rsi + 0x670]
subss xmm1, xmm0
movss dword [rsi + 0x654], xmm6
subss xmm6, xmm3
divss xmm1, xmm2
mulss xmm1, xmm6
addss xmm1, xmm0
movss dword [rsi + 0x648], xmm1
cmp byte [rsi + 0x5ba], r14b
je 0x180061555
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsi + 0x648], xmm0
mov rcx, rsi
call fcn.180057280
mov rcx, qword [rsi + 0x10]
jmp 0x18006193c
mov r15, qword [rbp + 0xc0]
cmp rbx, 1
je 0x180061619
mov rcx, r13
call qword [sym.imp.USER32.dll_SetCapture]
mov eax, dword [rsi + 0x64]
mov rcx, rsi
inc eax
mov dword [rsi + 0x5d8], eax
call fcn.180057810
mov rdi, r15
movsx r12d, r15w
shr rdi, 0x10
cmp r12d, dword [rsi + 0x60]
jg 0x1800615b7
movsx eax, di
cmp eax, dword [rsi + 0x64]
jg 0x1800615b7
test r15w, r15w
js 0x1800615b7
test di, di
jns 0x1800615d0
mov eax, dword [rsi + 0x64]
dec eax
mov dword [rsi + 0x5d8], eax
call qword [sym.imp.USER32.dll_ReleaseCapture]
mov rcx, rsi
call fcn.180053350
cmp byte [rsi + 0x5b8], 1
jne 0x18006194d
cmp r15w, 0x19
jl 0x180061619
mov eax, dword [rsi + 0x60]
sub eax, 0x19
cmp r12d, eax
jge 0x180061619
cmp di, 0x19
jle 0x180061619
mov edx, dword [rsi + 0x64]
movsx eax, di
lea ecx, [rdx - 0x19]
cmp eax, ecx
jge 0x180061619
lea eax, [rdx + 1]
mov dword [rsi + 0x5d8], eax
call qword [sym.imp.USER32.dll_ReleaseCapture]
mov rcx, rsi
call fcn.180053350
cmp byte [rsi + 0x5b8], 1
jne 0x18006194d
test bl, 1
je 0x18006194d
mov ecx, dword [rsi + 0x60]
mov rax, r15
mov edx, dword [rsi + 0x64]
mov ebx, ecx
movss xmm7, dword [rsi + 0x660]
mov r8d, r14d
sar rax, 0x10
mov r9d, r14d
test r15w, r15w
movss dword [rsi + 0x664], xmm7
cmovns r8w, r15w
test ax, ax
mov r15d, edx
cmovns r9w, ax
mov eax, dword [rsi + 0x5e8]
mov dword [rsi + 0x5f4], eax
mov eax, dword [rsi + 0x5ec]
mov dword [rsi + 0x5f8], eax
movsx eax, r8w
sar ebx, 1
sar r15d, 1
cmp eax, ecx
movsx eax, r9w
cmovle cx, r8w
cmp eax, edx
movsx edi, cx
mov eax, ebx
cmovle dx, r9w
mov dword [rsi + 0x5e8], edi
sub eax, edi
movsx r12d, dx
mov dword [rsi + 0x5ec], r12d
movd xmm1, eax
mov eax, r15d
sub eax, r12d
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
call fcn.1800b25e8
movsd xmm2, qword [0x1800e0050]
movsd xmm3, qword [0x1800e1e48]
movd xmm1, ebx
cvtdq2ps xmm1, xmm1
divss xmm0, xmm1
cvtss2sd xmm0, xmm0
minsd xmm2, xmm0
cvtpd2ps xmm0, xmm2
cvtps2pd xmm1, xmm0
maxsd xmm3, xmm1
cvtpd2ps xmm0, xmm3
call fcn.1800b4434
movsd xmm8, qword [0x1800e3328]
xorps xmm1, xmm1
movss xmm6, dword [0x1800e3364]
cvtss2sd xmm1, xmm0
mulsd xmm1, xmm8
cvtpd2ps xmm0, xmm1
movss dword [rsi + 0x658], xmm0
cmp r12d, r15d
jne 0x180061742
movaps xmm1, xmm7
jmp 0x1800617a7
mov eax, edi
sub eax, ebx
movd xmm0, eax
mov eax, r12d
sub eax, r15d
cvtdq2ps xmm0, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
divss xmm0, xmm1
call fcn.1800b0870
xorps xmm1, xmm1
xorps xmm2, xmm2
cvtss2sd xmm2, xmm0
mulsd xmm2, xmm8
subsd xmm1, xmm2
cvtpd2ps xmm0, xmm1
movss dword [rsi + 0x660], xmm0
movaps xmm1, xmm0
cmp r12d, r15d
jle 0x180061794
addss xmm1, dword [0x1800e3350]
jmp 0x18006179f
cmp edi, ebx
jge 0x1800617a7
movaps xmm1, xmm0
addss xmm1, xmm6
movss dword [rsi + 0x660], xmm1
movss xmm2, dword [0x1800e3360]
comiss xmm7, xmm2
movss xmm4, dword [0x1800e0298]
movss xmm3, dword [0x1800e334c]
jbe 0x1800617dd
comiss xmm3, xmm1
jbe 0x1800617dd
movss xmm0, dword [rsi + 0x65c]
addss xmm0, xmm4
movss dword [rsi + 0x65c], xmm0
comiss xmm3, xmm7
jbe 0x1800617fb
comiss xmm1, xmm2
jbe 0x1800617fb
movss xmm0, dword [rsi + 0x65c]
subss xmm0, xmm4
movss dword [rsi + 0x65c], xmm0
subss xmm6, xmm1
movss dword [rsi + 0x654], xmm6
cmp byte [rsi + 0x5b9], r14b
je 0x180061846
movss xmm0, dword [rsi + 0x64c]
movaps xmm1, xmm6
comiss xmm0, xmm6
jbe 0x18006182b
movss dword [rsi + 0x654], xmm0
movaps xmm1, xmm0
movss xmm0, dword [rsi + 0x650]
movaps xmm6, xmm1
comiss xmm1, xmm0
jbe 0x180061846
movss dword [rsi + 0x654], xmm0
movaps xmm6, xmm0
movss xmm2, dword [rsi + 0x670]
movss xmm1, dword [rsi + 0x64c]
subss xmm6, xmm1
movss xmm3, dword [rsi + 0x66c]
subss xmm3, xmm2
movss xmm0, dword [rsi + 0x650]
subss xmm0, xmm1
divss xmm3, xmm0
mulss xmm3, xmm6
addss xmm3, xmm2
movss dword [rsi + 0x648], xmm3
cmp byte [rsi + 0x5ba], r14b
je 0x1800618a2
cvttss2si eax, xmm3
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsi + 0x648], xmm0
mov r9d, 0x101
xor r8d, r8d
xor edx, edx
mov rcx, r13
call qword [sym.imp.USER32.dll_RedrawWindow]
mov rcx, rsi
call fcn.180057280
cmp byte [rsi + 0x5bc], r14b
je 0x18006194d
mov rcx, qword [rsi + 0x10]
movsxd rbx, dword [rsi + 0x28]
call qword [sym.imp.USER32.dll_GetParent]
mov r9d, 1
mov r8, rbx
mov rcx, rax
mov edx, 0x111
call qword [sym.imp.USER32.dll_SendMessageA]
jmp 0x18006194d
cmp rbx, 7
jne 0x18006194d
call fcn.180048ee0
mov eax, dword [rsi + 0x5d8]
cmp eax, dword [rsi + 0x64]
jg 0x180061911
add eax, 0xfffffffe
mov dword [rsi + 0x5d8], eax
test eax, eax
jg 0x18006194d
mov rcx, rsi
call fcn.180053350
mov edx, 7
mov dword [rsi + 0x5d8], r14d
mov rcx, r13
call qword [sym.imp.USER32.dll_KillTimer]
mov rcx, r13
mov dword [rsi + 0x5e0], r14d
mov r9d, 0x101
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_RedrawWindow]
mov rax, r14
mov rcx, qword [rbp + 0x10]
xor rcx, rsp
call fcn.18007b2f0
lea r11, [rsp + 0x158]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret