Function at 0x180040230
Capabilities:
Capture screenshot

Disassembly:
mov r11, rsp
push rdi
push r13
sub rsp, 0x1b8
movaps xmmword [r11 - 0x88], xmm9
movaps xmmword [r11 - 0xb8], xmm12
mov rax, qword [0x180107738]
xor rax, rsp
mov qword [rsp + 0xd8], rax
movsxd rax, dword [rsp + 0x1f0]
movaps xmm9, xmm1
mov rdx, qword [rsp + 0x218]
xorps xmm12, xmm12
comiss xmm12, xmm9
mov dword [rsp + 0x40], r9d
mov r13d, r8d
mov rdi, rcx
jae 0x1800410ce
mov qword [r11 - 0x18], rbx
mov ecx, 1
mov qword [r11 - 0x20], rbp
mov ebx, ecx
mov qword [r11 - 0x28], rsi
mov qword [r11 - 0x30], r12
mov qword [r11 - 0x38], r14
mov qword [r11 - 0x40], r15
movaps xmmword [r11 - 0x58], xmm6
imul r14, rax, 0x2c
movaps xmmword [r11 - 0x68], xmm7
movaps xmmword [r11 - 0x78], xmm8
movaps xmmword [r11 - 0x98], xmm10
movaps xmmword [r11 - 0xa8], xmm11
movzx eax, byte [0x180107379]
add r14, rdx
movaps xmmword [r11 - 0xc8], xmm13
movaps xmmword [r11 - 0xd8], xmm14
movaps xmmword [r11 - 0xe8], xmm15
cmp byte [r14], 0x20
cmovle eax, ecx
mov byte [0x180107379], al
movzx ecx, al
mov rax, qword [0x180108788]
cmp byte [rax + 0x210], 0
cmovne ebx, ecx
call fcn.1800a5640
mov rcx, qword [0x180108788]
mov r8d, eax
movss xmm6, dword [0x1800e0bd0]
movss xmm7, dword [0x1800e02b0]
movss xmm2, dword [rcx + 0x200]
ucomiss xmm2, xmm12
jp 0x18004034c
jne 0x18004034c
movss xmm14, dword [rsp + 0x230]
jmp 0x1800403b9
test bl, bl
je 0x1800403a2
mov eax, 0x10624dd3
imul r8d
divss xmm2, xmm7
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x7d0
sub r8d, eax
sub r8d, 0x3e8
movd xmm0, r8d
cvtdq2ps xmm0, xmm0
divss xmm0, xmm6
cvtps2pd xmm1, xmm0
cvtps2pd xmm0, xmm2
mulsd xmm1, qword [0x1800e0d08]
mulsd xmm1, xmm0
cvtpd2ps xmm2, xmm1
movss dword [0x180109044], xmm2
jmp 0x1800403aa
movss xmm2, dword [0x180109044]
movss xmm14, dword [rsp + 0x230]
addss xmm14, xmm2
call fcn.1800a5640
mov rcx, qword [0x180108788]
mov r8d, eax
movss xmm13, dword [0x1800e0298]
movss xmm1, dword [rcx + 0x1fc]
ucomiss xmm1, xmm12
jp 0x1800403e1
je 0x180040437
test bl, bl
je 0x18004042a
mov eax, 0x10624dd3
imul r8d
divss xmm1, xmm7
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x7d0
sub r8d, eax
sub r8d, 0x3e8
movd xmm0, r8d
cvtdq2ps xmm0, xmm0
divss xmm0, xmm6
mulss xmm0, xmm1
addss xmm0, xmm13
movss dword [0x180109154], xmm0
jmp 0x180040432
movss xmm0, dword [0x180109154]
mulss xmm9, xmm0
call fcn.1800a5640
mov esi, eax
call fcn.1800a5640
mov ebp, eax
call fcn.1800a5640
mov r15, qword [0x180108788]
mov r8d, eax
mov r12d, 0xff
movss xmm1, dword [r15 + 0x1f8]
ucomiss xmm1, xmm12
jp 0x180040477
jne 0x180040477
mov esi, dword [rsp + 0x220]
jmp 0x1800405c2
test bl, bl
je 0x180040543
divss xmm1, xmm7
mov eax, 0x80808081
imul ebp
add edx, ebp
sar edx, 8
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x1fe
sub ebp, eax
mov eax, 0x80808081
imul r8d
sub ebp, r12d
mov eax, 0x80808081
add edx, r8d
sar edx, 8
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
movd xmm0, ebp
cvtdq2ps xmm0, xmm0
imul ecx, edx, 0x1fe
mulss xmm0, xmm1
imul esi
cvttss2si r9d, xmm0
sub r8d, ecx
add edx, esi
sub r8d, r12d
sar edx, 8
mov eax, edx
shr eax, 0x1f
add edx, eax
movd xmm0, r8d
cvtdq2ps xmm0, xmm0
imul eax, edx, 0x1fe
mulss xmm0, xmm1
cvttss2si r10d, xmm0
sub esi, eax
sub esi, r12d
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movd xmm1, r10d
cvtdq2ps xmm1, xmm1
cvttss2si r11d, xmm0
movd xmm0, r9d
cvtdq2ps xmm0, xmm0
movss dword [0x180109314], xmm1
movss dword [0x180109310], xmm0
movd xmm0, r11d
cvtdq2ps xmm0, xmm0
movss dword [0x180109318], xmm0
jmp 0x18004055e
cvttss2si r9d, dword [0x180109310]
cvttss2si r10d, dword [0x180109314]
cvttss2si r11d, dword [0x180109318]
mov ecx, dword [rsp + 0x220]
mov eax, ecx
shr eax, 0x10
movzx edx, cx
shr edx, 8
movzx r8d, al
movzx ecx, cl
add ecx, r9d
xor r9d, r9d
test ecx, ecx
lea eax, [rdx + r10]
cmovns r9d, ecx
cmp r9d, r12d
cmovg r9d, r12d
xor edx, edx
test eax, eax
cmovns edx, eax
lea eax, [r8 + r11]
cmp edx, r12d
cmovg edx, r12d
xor ecx, ecx
test eax, eax
movzx esi, dl
cmovns ecx, eax
cmp ecx, r12d
cmovg ecx, r12d
shl esi, 8
movzx eax, cl
shl eax, 0x10
or esi, eax
movzx eax, r9b
or esi, eax
movss xmm0, dword [r15 + 0x204]
ucomiss xmm0, xmm12
jp 0x1800405d3
je 0x18004063a
mov ecx, dword [0x180108e5c]
xor r10d, r10d
movzx r8d, si
mov eax, esi
shr eax, 0x10
shr r8d, 8
movzx r9d, al
movzx edx, sil
add edx, dword [0x180108e58]
cmovns r10d, edx
cmp r10d, r12d
cmovg r10d, r12d
xor edx, edx
add ecx, r8d
cmovns edx, ecx
mov ecx, dword [0x180108e60]
cmp edx, r12d
cmovg edx, r12d
xor eax, eax
add ecx, r9d
movzx esi, dl
cmovns eax, ecx
cmp eax, r12d
cmovg eax, r12d
shl esi, 8
movzx eax, al
shl eax, 0x10
or esi, eax
movzx eax, r10b
or esi, eax
call fcn.1800a5640
mov ebp, eax
call fcn.1800a5640
mov rcx, qword [0x180108788]
mov r8d, eax
movss xmm10, dword [rsp + 0x210]
movss xmm11, dword [rsp + 0x208]
movss xmm2, dword [rcx + 0x208]
ucomiss xmm2, xmm12
jp 0x18004068c
jne 0x18004068c
movss xmm8, dword [rsp + 0x200]
movss xmm7, dword [rsp + 0x1f8]
jmp 0x180040743
test bl, bl
je 0x180040717
mov eax, 0x10624dd3
imul ebp
divss xmm2, xmm7
mov eax, 0x10624dd3
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x7d0
imul r8d
movaps xmm0, xmm2
mulss xmm2, xmm10
mulss xmm0, xmm11
sub ebp, ecx
sar edx, 7
sub ebp, 0x3e8
mov eax, edx
shr eax, 0x1f
add edx, eax
movd xmm1, ebp
cvtdq2ps xmm1, xmm1
imul eax, edx, 0x7d0
divss xmm1, xmm6
sub r8d, eax
sub r8d, 0x3e8
mulss xmm1, xmm0
movd xmm0, r8d
cvtdq2ps xmm0, xmm0
movss dword [0x18010931c], xmm1
divss xmm0, xmm6
mulss xmm0, xmm2
movss dword [0x180109320], xmm0
jmp 0x180040727
movss xmm1, dword [0x18010931c]
movss xmm0, dword [0x180109320]
movss xmm7, dword [rsp + 0x1f8]
movss xmm8, dword [rsp + 0x200]
addss xmm7, xmm1
addss xmm8, xmm0
movsx eax, word [r14 + 0x28]
xor ecx, ecx
movd xmm0, eax
movsx eax, word [r14 + 0x2a]
cvtdq2ps xmm0, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm9
mulss xmm1, xmm9
cvttss2si ebp, xmm0
cvttss2si r15d, xmm1
call qword [sym.imp.USER32.dll_GetDC]
mov rcx, rax
mov qword [rsp + 0x78], rax
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov rcx, rax
mov qword [rsp + 0x60], rax
mov edx, 0x5a
call qword [sym.imp.GDI32.dll_GetDeviceCaps]
mov rcx, qword [0x180108788]
mov r12d, eax
movss xmm6, dword [rcx + 0x20c]
call fcn.1800a5640
mov r8, qword [0x180108778]
mov ecx, eax
lea r10, [0x180108e70]
mov r9d, dword [r8 + 0x28]
test bl, bl
je 0x180040863
test r9d, r9d
je 0x180040823
mov r8, qword [r8 + 0x30]
test r8, r8
je 0x180040823
mov eax, 0xae147ae1
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x64
add ecx, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
comiss xmm6, xmm0
jbe 0x180040823
mov eax, ecx
lea rcx, [0x180108e8c]
cdq
idiv r9d
movsxd rax, edx
mov rdx, qword [r8 + rax*8]
nop
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
mov byte [rcx], al
lea rcx, [rcx + 1]
test al, al
jne 0x180040810
jmp 0x18004083f
lea rdx, [r14 + 4]
lea rcx, [0x180108e8c]
sub rcx, rdx
movzx eax, byte [rdx]
mov byte [rdx + rcx], al
lea rdx, [rdx + 1]
test al, al
jne 0x180040831
xor ecx, ecx
lea rdx, [0x180109328]
nop dword [rax + rax]
movzx eax, byte [rcx + r10 + 0x1c]
mov byte [rcx + rdx], al
lea rcx, [rcx + 1]
test al, al
jne 0x180040850
jmp 0x1800408af
cmp byte [0x180109328], 0
je 0x180040893
xor ecx, ecx
lea rdx, [0x180109328]
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
mov byte [rcx + r10 + 0x1c], al
lea rcx, [rcx + 1]
test al, al
jne 0x180040880
jmp 0x1800408af
lea rdx, [r14 + 4]
lea rcx, [0x180108e8c]
sub rcx, rdx
movzx eax, byte [rdx]
mov byte [rdx + rcx], al
lea rdx, [rdx + 1]
test al, al
jne 0x1800408a1
mov byte [0x180107379], 0
movzx eax, byte [r14 + 1]
imul eax, r12d
cdq
mov ecx, eax
mov eax, 0x38e38e39
xor ecx, edx
sub ecx, edx
imul ecx
mov ecx, 0x2bc
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x190
mov dword [0x180108e70], edx
test byte [r14 + 2], 1
cmovne eax, ecx
movd xmm0, edx
mov dword [0x180108e80], eax
mov rcx, r10
movzx eax, byte [r14 + 2]
shr al, 1
and al, 1
mov byte [0x180108e84], al
movzx eax, byte [r14 + 2]
shr al, 2
and al, 1
mov byte [0x180108e85], al
movzx eax, byte [r14 + 2]
shr al, 3
and al, 1
mov byte [0x180108e86], al
movzx eax, byte [r14 + 3]
cvtdq2ps xmm0, xmm0
mov byte [0x180108e87], al
mulss xmm0, xmm9
cvttss2si eax, xmm0
mov dword [0x180108e70], eax
call qword [sym.imp.GDI32.dll_CreateFontIndirectA]
mov rcx, qword [rsp + 0x60]
mov rdx, rax
mov qword [rsp + 0x88], rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, qword [rsp + 0x60]
lea r9, [rsp + 0x68]
mov r8d, 1
mov qword [rsp + 0x80], rax
mov rdx, r14
call qword [sym.imp.GDI32.dll_GetTextExtentPointA]
mov rbx, qword [rsp + 0x68]
mov r12d, dword [rsp + 0x6c]
cmp ebp, ebx
mov rcx, qword [rsp + 0x78]
cmovg ebx, ebp
cmp r15d, r12d
mov edx, ebx
cmovg r12d, r15d
mov r8d, r12d
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov r15, qword [rsp + 0x60]
xor ebp, ebp
mov rdx, rax
mov qword [rsp + 0x70], rax
mov rcx, r15
mov qword [rsp + 0x98], rbp
mov dword [rsp + 0xa0], ebx
mov dword [rsp + 0xa4], r12d
call qword [sym.imp.GDI32.dll_SelectObject]
xor ecx, ecx
mov qword [rsp + 0x90], rax
call qword [sym.imp.GDI32.dll_GetStockObject]
lea rdx, [rsp + 0x98]
mov rcx, r15
mov r8, rax
call qword [sym.imp.USER32.dll_FillRect]
xor r8d, r8d
mov dword [rsp + 0x20], 1
xor edx, edx
mov r9, r14
mov rcx, r15
call qword [sym.imp.GDI32.dll_TextOutA]
lea eax, [rbx + rbx*2]
mov dword [rsp + 0xa8], 0x28
lea eax, [rax*8 + 0x1f]
mov dword [rsp + 0xac], ebx
and eax, 0xffffffe0
mov dword [rsp + 0xb0], r12d
cdq
mov qword [rsp + 0xb4], 0x180001
and edx, 7
mov dword [rsp + 0xcc], ebp
add eax, edx
lea r9d, [rbp + 4]
sar eax, 3
mov r8d, 0x3000
mov ecx, eax
mov r14d, eax
imul ecx, r12d
mov dword [rsp + 0xbc], ecx
movsxd rdx, ecx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdx, qword [rsp + 0x70]
mov r9d, r12d
mov rbp, rax
mov dword [rsp + 0x30], 0
lea rax, [rsp + 0xa8]
xor r8d, r8d
mov qword [rsp + 0x28], rax
mov rcx, r15
mov qword [rsp + 0x20], rbp
call qword [sym.imp.GDI32.dll_GetDIBits]
mov rcx, qword [0x180108788]
movss xmm15, dword [0x1800e0294]
cmp byte [rcx + 0x20], 4
je 0x180040b05
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsi2ss xmm1, dword [rsp + 0x40]
cvtsi2ss xmm0, r13d
mulss xmm1, xmm10
mulss xmm0, xmm11
mulss xmm10, xmm15
mulss xmm11, xmm15
addss xmm1, xmm10
addss xmm0, xmm11
addss xmm1, xmm8
addss xmm0, xmm7
movaps xmm8, xmm1
movaps xmm7, xmm0
movaps xmm0, xmm14
call fcn.1800b1080
movaps xmm6, xmm0
movaps xmm0, xmm14
call fcn.1800b1ef0
movss xmm11, dword [0x1800e0be0]
movaps xmm2, xmm0
xorps xmm0, xmm0
xorps xmm14, xmm11
cvtsi2ss xmm0, ebx
cvttss2si r15d, xmm7
movaps xmm4, xmm0
movss dword [rsp + 0x50], xmm0
xorps xmm0, xmm0
mulss xmm4, xmm15
cvttss2si r13d, xmm8
cvtsi2ss xmm0, r15d
subss xmm7, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, r12d
subss xmm4, xmm7
movaps xmm1, xmm0
movss dword [rsp + 0x54], xmm0
xorps xmm0, xmm0
mulss xmm1, xmm15
cvtsi2ss xmm0, r13d
movaps xmm10, xmm4
movss dword [rsp + 0x40], xmm4
subss xmm8, xmm0
mulss xmm10, xmm6
movaps xmm9, xmm4
mulss xmm9, xmm2
subss xmm1, xmm8
movaps xmm7, xmm10
xorps xmm7, xmm11
movaps xmm5, xmm7
movaps xmm3, xmm1
movss dword [rsp + 0x44], xmm1
movss xmm0, dword [rsp + 0x44]
mulss xmm0, xmm6
mulss xmm3, xmm2
movaps xmm2, xmm10
movaps xmm8, xmm0
movaps xmm4, xmm0
addss xmm8, xmm9
subss xmm7, xmm3
movaps xmm1, xmm3
xorps xmm1, xmm11
subss xmm10, xmm3
subss xmm5, xmm1
subss xmm2, xmm1
subss xmm4, xmm9
movaps xmm6, xmm8
subss xmm9, xmm0
xorps xmm6, xmm11
movaps xmm3, xmm10
movaps xmm0, xmm5
minss xmm5, xmm7
maxss xmm0, xmm7
movaps xmm1, xmm2
movaps xmm7, xmm8
minss xmm2, xmm5
maxss xmm1, xmm0
movaps xmm0, xmm6
maxss xmm0, xmm4
minss xmm6, xmm4
minss xmm10, xmm2
maxss xmm3, xmm1
movaps xmm1, xmm9
maxss xmm1, xmm0
movaps xmm0, xmm14
minss xmm9, xmm6
subss xmm3, xmm10
maxss xmm7, xmm1
minss xmm8, xmm9
mulss xmm3, xmm15
subss xmm7, xmm8
movss dword [rsp + 0x48], xmm3
mulss xmm7, xmm15
movss dword [rsp + 0x58], xmm7
call fcn.1800b1080
movaps xmm15, xmm0
movaps xmm0, xmm14
call fcn.1800b1ef0
cvttss2si eax, xmm7
xorps xmm9, xmm9
movss dword [rsp + 0x4c], xmm0
neg eax
movaps xmm1, xmm0
cvtsi2ss xmm9, eax
comiss xmm7, xmm9
jbe 0x180040fec
movss xmm4, dword [rsp + 0x48]
movss xmm14, dword [0x1800e0d90]
movss xmm2, dword [rsp + 0x40]
cvttss2si eax, xmm4
neg eax
movd xmm3, eax
cvtdq2ps xmm3, xmm3
movss dword [rsp + 0x5c], xmm3
nop dword [rax]
comiss xmm4, xmm3
movaps xmm0, xmm9
movaps xmm10, xmm9
mulss xmm0, xmm1
movaps xmm11, xmm2
mulss xmm10, xmm15
movaps xmm8, xmm3
subss xmm11, xmm0
addss xmm10, dword [rsp + 0x44]
jbe 0x180040fdd
nop
movaps xmm7, xmm8
movaps xmm6, xmm8
mulss xmm7, xmm15
mulss xmm6, xmm1
addss xmm7, xmm11
addss xmm6, xmm10
comiss xmm7, xmm12
jb 0x180040fb6
comiss xmm6, xmm12
jb 0x180040fb6
movss xmm0, dword [rsp + 0x50]
comiss xmm0, xmm7
jbe 0x180040fb6
movss xmm0, dword [rsp + 0x54]
comiss xmm0, xmm6
jbe 0x180040fb6
cvttss2si eax, xmm7
cvttss2si edx, xmm6
lea r10d, [rax + 1]
lea r9d, [rdx + 1]
cmp r10d, ebx
je 0x180040e54
cmp r9d, r12d
je 0x180040e54
xorps xmm2, xmm2
lea r8d, [rax + rax*2]
xorps xmm0, xmm0
lea ecx, [r12 - 1]
cvtsi2ss xmm0, eax
sub ecx, edx
cvtsi2ss xmm2, r10d
xorps xmm1, xmm1
imul ecx, r14d
subss xmm2, xmm7
subss xmm7, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, ecx
sub eax, r14d
add eax, r8d
andps xmm2, xmm14
movsxd rdx, eax
cvtsi2ss xmm1, r9d
lea eax, [rcx + r8]
movsxd rcx, eax
andps xmm7, xmm14
movzx eax, byte [rcx + rbp]
subss xmm1, xmm6
subss xmm6, xmm0
movaps xmm3, xmm7
xorps xmm0, xmm0
andps xmm1, xmm14
movaps xmm4, xmm1
addss xmm3, xmm1
addss xmm4, xmm2
andps xmm6, xmm14
movaps xmm5, xmm6
xorps xmm1, xmm1
addss xmm5, xmm2
xorps xmm2, xmm2
cvtsi2ss xmm2, eax
movzx eax, byte [rdx + rbp]
mulss xmm4, xmm4
addss xmm6, xmm7
cvtsi2ss xmm0, eax
movzx eax, byte [rcx + rbp + 3]
mulss xmm2, xmm4
mulss xmm5, xmm5
cvtsi2ss xmm1, eax
movzx eax, byte [rdx + rbp + 3]
mov edx, 0xff
mulss xmm0, xmm5
addss xmm5, xmm4
movss xmm4, dword [rsp + 0x48]
mulss xmm3, xmm3
addss xmm2, xmm0
mulss xmm6, xmm6
xorps xmm0, xmm0
mulss xmm1, xmm3
cvtsi2ss xmm0, eax
addss xmm2, xmm1
addss xmm5, xmm3
mulss xmm0, xmm6
addss xmm2, xmm0
addss xmm5, xmm6
divss xmm2, xmm5
cvttss2si eax, xmm2
sub edx, eax
jmp 0x180040e71
lea eax, [rax + rax*2]
lea ecx, [r12 - 1]
sub ecx, edx
mov edx, 0xff
imul ecx, r14d
add eax, ecx
cdqe
movzx ecx, byte [rax + rbp]
sub edx, ecx
movd xmm0, edx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [rsp + 0x228]
cvttss2si r9d, xmm0
test r9d, r9d
je 0x180040fb6
cvttss2si eax, xmm9
cvttss2si ecx, xmm8
add eax, r13d
add ecx, r15d
js 0x180040fb6
cmp ecx, dword [0x1801086f0]
jge 0x180040fb6
test eax, eax
js 0x180040fb6
cmp eax, dword [0x1801086f4]
jge 0x180040fb6
imul ecx, dword [0x180108704]
movaps xmm3, xmm13
imul eax, dword [0x1801086f8]
movd xmm2, r9d
cvtdq2ps xmm2, xmm2
add eax, ecx
movzx ecx, si
movsxd r8, eax
shr cx, 8
divss xmm2, dword [0x1800e02b4]
movzx edx, byte [r8 + rdi + 3]
subss xmm3, xmm2
test dl, dl
je 0x180040f9e
movzx eax, sil
movd xmm1, eax
movzx eax, byte [r8 + rdi]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mulss xmm1, xmm2
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
addss xmm1, xmm0
cvttss2si eax, xmm1
mov byte [r8 + rdi], al
movzx eax, byte [rdi + r8 + 1]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movzx eax, cx
movd xmm0, eax
mulss xmm1, xmm3
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
addss xmm1, xmm0
cvttss2si eax, xmm1
mov byte [r8 + rdi + 1], al
mov eax, esi
shr eax, 0x10
movzx eax, al
cmp edx, r9d
movd xmm1, eax
movzx eax, byte [r8 + rdi + 2]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm2
mulss xmm0, xmm3
addss xmm1, xmm0
cvttss2si eax, xmm1
mov byte [rdi + r8 + 2], al
movzx eax, r9b
cmovle edx, eax
mov byte [r8 + rdi + 3], dl
jmp 0x180040fb6
mov eax, esi
mov byte [r8 + rdi], sil
shr eax, 0x10
mov byte [r8 + rdi + 2], al
mov byte [r8 + rdi + 1], cl
mov byte [r8 + rdi + 3], r9b
movss xmm1, dword [rsp + 0x4c]
addss xmm8, xmm13
comiss xmm4, xmm8
ja 0x180040cf0
movss xmm7, dword [rsp + 0x58]
movss xmm2, dword [rsp + 0x40]
movss xmm3, dword [rsp + 0x5c]
addss xmm9, xmm13
comiss xmm7, xmm9
ja 0x180040cc0
movaps xmm15, xmmword [rsp + 0xe0]
movaps xmm14, xmmword [rsp + 0xf0]
movaps xmm13, xmmword [rsp + 0x100]
movaps xmm11, xmmword [rsp + 0x120]
movaps xmm10, xmmword [rsp + 0x130]
movaps xmm8, xmmword [rsp + 0x150]
movaps xmm7, xmmword [rsp + 0x160]
movaps xmm6, xmmword [rsp + 0x170]
mov r15, qword [rsp + 0x188]
mov r14, qword [rsp + 0x190]
mov r12, qword [rsp + 0x198]
mov rsi, qword [rsp + 0x1a0]
test rbp, rbp
je 0x180041068
xor edx, edx
mov r8d, 0x8000
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov rbx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x80]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rdx, qword [rsp + 0x90]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_DeleteDC]
mov rdx, qword [rsp + 0x78]
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rbp, qword [rsp + 0x1a8]
mov rbx, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0xd8]
xor rcx, rsp
call fcn.18007b2f0
movaps xmm9, xmmword [rsp + 0x140]
movaps xmm12, xmmword [rsp + 0x110]
add rsp, 0x1b8
pop r13
pop rdi
ret