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

Disassembly:
mov r11, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x210
mov qword [rsp + 0x108], 0xfffffffffffffffe
mov qword [r11 + 0x18], rbx
movaps xmmword [r11 - 0x48], xmm6
movaps xmmword [r11 - 0x58], xmm7
movaps xmmword [r11 - 0x68], xmm8
movaps xmmword [r11 - 0x78], xmm9
movaps xmmword [r11 - 0x88], xmm10
movaps xmmword [r11 - 0x98], xmm11
movaps xmmword [r11 - 0xa8], xmm12
movaps xmmword [r11 - 0xb8], xmm13
movaps xmmword [r11 - 0xc8], xmm14
movaps xmmword [r11 - 0xd8], xmm15
mov rax, qword [0x180097090]
xor rax, rsp
mov qword [rsp + 0x168], rax
mov r13, r9
mov esi, r8d
mov r12d, edx
mov rbx, rcx
xor r14d, r14d
cmp dword [0x18009de68], r14d
jne 0x180026853
mov dword [rsp + 0xf0], 1
mov qword [r11 - 0x150], r14
mov dword [r11 - 0x148], r14d
mov dword [r11 - 0x144], r14d
xor r8d, r8d
lea rdx, [r11 - 0x158]
lea rcx, [r11 - 0x110]
call sub.gdiplus.dll_GdiplusStartup
mov dword [0x18009de68], 1
mov edx, dword [r13 + 0xc]
lea rcx, [0x18007be08]
call fcn.180043484
cmp dword [r13 + 0xc], r14d
jne 0x180026f45
lea rdx, [r13 + 0x10]
mov qword [rsp + 0x130], 7
mov qword [rsp + 0x128], r14
mov word [rsp + 0x118], r14w
or r15, 0xffffffffffffffff
mov r9, r15
xor r8d, r8d
lea rcx, [rsp + 0x110]
call fcn.18000bc30
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x140]
call fcn.180024f30
nop
cmp qword [rsp + 0x158], 0
jne 0x1800268de
lea r8d, [r15 + 5]
lea rdx, str.4lpS7h
lea rcx, [rsp + 0x140]
call fcn.18000d5e0
movzx eax, byte [r13 + 0x39]
mov edx, sendto
sub edx, eax
movd xmm10, edx
cvtdq2ps xmm10, xmm10
mulss xmm10, dword [0x180082a50]
movss xmm0, dword [0x180082a4c]
comiss xmm0, xmm10
jbe 0x18002690e
movaps xmm10, xmm0
mov qword [rsp + 0x90], r14
lea rdx, [rsp + 0x90]
mov rcx, rbx
call sub.gdiplus.dll_GdipCreateFromHDC
mov ebx, eax
mov dword [rsp + 0xe8], eax
mov rdi, qword [rsp + 0x90]
mov qword [rsp + 0xe0], rdi
mov qword [rsp + 0x80], r14
xor edx, edx
lea r8, [rsp + 0x80]
xor ecx, ecx
call sub.gdiplus.dll_GdipCreateStringFormat
mov dword [rsp + 0x88], eax
cmp qword [r13 + 0x68], 8
jb 0x18002696c
mov rcx, qword [r13 + 0x50]
jmp 0x180026970
lea rcx, [r13 + 0x50]
movzx edx, byte [r13 + 0x70]
movzx r9d, byte [r13 + 0x72]
movzx r8d, byte [r13 + 0x71]
call fcn.180025460
mov qword [rsp + 0xb0], r14
mov qword [rsp + 0xb8], r14
mov rdx, rax
lea rcx, [rsp + 0xb0]
call fcn.180026fb0
mov r11d, dword [r13 + 0x3c]
mov edx, dword [r13 + 0x40]
movzx r9d, dl
or r9d, 0xffffff00
shl r9d, 8
movzx eax, dx
shr ax, 8
movzx ecx, al
or r9d, ecx
shl r9d, 8
shr edx, 0x10
movzx eax, dl
or r9d, eax
movzx r8d, r11b
or r8d, 0xffffff00
shl r8d, 8
movzx eax, r11w
shr ax, 8
movzx ecx, al
or r8d, ecx
shl r8d, 8
shr r11d, 0x10
movzx eax, r11b
or r8d, eax
mov dword [rsp + 0xc0], 0x500
mov dword [rsp + 0xc4], r14d
mov dword [rsp + 0xc8], r14d
mov dword [rsp + 0xcc], r14d
mov qword [rsp + 0xa0], r14
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r14d
lea rdx, [rsp + 0xc0]
lea rcx, [rsp + 0xc8]
call sub.gdiplus.dll_GdipCreateLineBrushI
xor edx, edx
mov rcx, qword [rsp + 0x80]
call sub.gdiplus.dll_GdipSetStringFormatAlign
mov ecx, dword [rsp + 0x88]
test eax, eax
cmovne ecx, eax
mov dword [rsp + 0x88], ecx
xor edx, edx
mov rcx, qword [rsp + 0x80]
call sub.gdiplus.dll_GdipSetStringFormatLineAlign
mov ecx, dword [rsp + 0x88]
test eax, eax
cmovne ecx, eax
mov dword [rsp + 0x88], ecx
mov edx, 4
mov rcx, rdi
call sub.gdiplus.dll_GdipSetSmoothingMode
test eax, eax
cmovne ebx, eax
mov edx, 4
mov rcx, rdi
call sub.gdiplus.dll_GdipSetTextRenderingHint
test eax, eax
cmovne ebx, eax
xorps xmm12, xmm12
movss dword [rsp + 0x50], xmm12
movss dword [rsp + 0x54], xmm12
movss dword [rsp + 0x58], xmm12
movss dword [rsp + 0x5c], xmm12
lea rdx, [rsp + 0x148]
cmp qword [rsp + 0x160], 8
cmovae rdx, qword [rsp + 0x148]
movss dword [rsp + 0xd0], xmm12
movss dword [rsp + 0xd4], xmm12
movss dword [rsp + 0xd8], xmm12
movss dword [rsp + 0xdc], xmm12
mov rbp, qword [rsp + 0xb0]
test rbp, rbp
je 0x180026b30
mov r9, qword [rbp]
jmp 0x180026b33
mov r9, r14
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], r14
lea rax, [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r14
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x20], rax
mov r8d, r15d
mov rcx, rdi
call sub.gdiplus.dll_GdipMeasureString
test eax, eax
cmovne ebx, eax
mov dword [rsp + 0xe8], ebx
movss xmm0, dword [0x180081c6c]
movss xmm9, dword [rsp + 0x58]
comiss xmm0, xmm9
jbe 0x180026b90
movaps xmm9, xmm0
movss dword [rsp + 0x58], xmm9
movss xmm8, dword [rsp + 0x5c]
comiss xmm0, xmm8
jbe 0x180026ba8
movaps xmm8, xmm0
movss dword [rsp + 0x5c], xmm8
movzx eax, word [r13 + 0x3a]
test ax, ax
jns 0x180026bb7
cwde
neg eax
jmp 0x180026bb8
cwde
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x70], xmm0
unpcklps xmm1, xmm1
cvtps2pd xmm6, xmm1
mulsd xmm6, qword [0x180081c48]
divsd xmm6, qword [0x180081c40]
movapd xmm0, xmm6
call fcn.18006b42c
movapd xmm7, xmm0
movapd xmm0, xmm6
call fcn.18006b748
unpcklps xmm9, xmm9
cvtps2pd xmm2, xmm9
mulsd xmm2, xmm0
unpcklps xmm8, xmm8
cvtps2pd xmm1, xmm8
mulsd xmm1, xmm7
addsd xmm2, xmm1
cvtsd2ss xmm4, xmm2
movss dword [rsp + 0x78], xmm4
unpcklps xmm8, xmm8
cvtps2pd xmm3, xmm8
mulsd xmm3, xmm0
unpcklps xmm9, xmm9
cvtps2pd xmm1, xmm9
mulsd xmm1, xmm7
addsd xmm3, xmm1
cvtsd2ss xmm2, xmm3
movss dword [rsp + 0x7c], xmm2
movaps xmm15, xmm4
mulss xmm15, xmm10
mulss xmm2, xmm10
movaps xmm0, xmmword [rsp + 0x70]
movdqa xmmword [rsp + 0x70], xmm0
addss xmm15, xmm4
movss xmm14, dword [rsp + 0x7c]
addss xmm14, xmm2
mov r10d, r14d
mov r9d, r14d
mov eax, r12d
cdq
sub eax, edx
sar eax, 1
mov r12d, eax
mov dword [rsp + 0x9c], eax
mov eax, esi
cdq
sub eax, edx
sar eax, 1
mov esi, eax
mov dword [rsp + 0xa8], eax
cvttss2si eax, xmm15
cdq
sub eax, edx
sar eax, 1
mov r11d, eax
mov r8d, r12d
sub r8d, eax
cvttss2si eax, xmm14
cdq
sub eax, edx
sar eax, 1
mov ecx, esi
sub ecx, eax
test r8d, r8d
jle 0x180026ccb
nop word [rax + rax]
inc r10d
sub r8d, r11d
test r8d, r8d
jg 0x180026cc0
test ecx, ecx
jle 0x180026cd9
nop
inc r9d
sub ecx, eax
test ecx, ecx
jg 0x180026cd0
lea eax, [r10 + r10 + 1]
mov dword [rsp + 0x98], eax
lea ecx, [r9 + r9 + 1]
mov dword [rsp + 0xac], ecx
mov dword [rsp + 0x60], r14d
test eax, eax
jle 0x180026eb2
movss xmm10, dword [0x180081c50]
movss xmm11, dword [0x180082a48]
test ecx, ecx
jle 0x180026ea1
movd xmm7, r12d
cvtdq2ps xmm7, xmm7
cdq
sub eax, edx
sar eax, 1
sub eax, r14d
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm15
subss xmm7, xmm0
movd xmm13, esi
cvtdq2ps xmm13, xmm13
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov esi, eax
mov r12d, ecx
mov r14, qword [rsp + 0xa0]
nop word [rax + rax]
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm14
movaps xmm6, xmm13
subss xmm6, xmm0
mulss xmm8, xmm11
mulss xmm9, xmm11
xor r9d, r9d
movaps xmm2, xmm6
movaps xmm1, xmm7
mov rcx, rdi
call sub.gdiplus.dll_GdipTranslateWorldTransform
test eax, eax
cmovne ebx, eax
movsx eax, word [r13 + 0x3a]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
xorps xmm1, xmm10
xor r8d, r8d
mov rcx, rdi
call sub.gdiplus.dll_GdipRotateWorldTransform
test eax, eax
cmovne ebx, eax
lea rdx, [rsp + 0x148]
cmp qword [rsp + 0x160], 8
cmovae rdx, qword [rsp + 0x148]
movss dword [rsp + 0x70], xmm9
movss dword [rsp + 0x74], xmm8
movss dword [rsp + 0x78], xmm12
movss dword [rsp + 0x7c], xmm12
test rbp, rbp
je 0x180026df5
mov r9, qword [rbp]
jmp 0x180026df8
xor r9d, r9d
mov qword [rsp + 0x30], r14
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov r8d, r15d
mov rcx, rdi
call sub.gdiplus.dll_GdipDrawString
test eax, eax
cmovne ebx, eax
xorps xmm6, xmm10
movaps xmm1, xmm7
xorps xmm1, xmm10
xor r9d, r9d
movaps xmm2, xmm6
mov rcx, rdi
call sub.gdiplus.dll_GdipTranslateWorldTransform
test eax, eax
cmovne ebx, eax
mov rcx, rdi
call sub.gdiplus.dll_GdipResetWorldTransform
test eax, eax
cmovne ebx, eax
dec esi
sub r12, 1
je 0x180026e6a
movss xmm8, dword [rsp + 0x5c]
movss xmm9, dword [rsp + 0x58]
jmp 0x180026d60
mov dword [rsp + 0xe8], ebx
movss xmm8, dword [rsp + 0x5c]
movss xmm9, dword [rsp + 0x58]
mov r14d, dword [rsp + 0x60]
mov ecx, dword [rsp + 0xac]
mov eax, dword [rsp + 0x98]
mov r12d, dword [rsp + 0x9c]
mov esi, dword [rsp + 0xa8]
inc r14d
mov dword [rsp + 0x60], r14d
cmp r14d, eax
jl 0x180026d10
mov rcx, qword [rsp + 0xa0]
call sub.gdiplus.dll_GdipDeleteBrush
mov r11, qword [rsp + 0xb8]
test r11, r11
je 0x180026f16
mov eax, r15d
lock xadd dword [r11 + 0x10], eax
add eax, 0xffffffff
jne 0x180026f0e
mov rbx, qword [rsp + 0xb8]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0x14], r15d
add r15d, 0xffffffff
jne 0x180026f0e
mov rcx, qword [rsp + 0xb8]
mov rax, qword [rcx]
call qword [rax + 8]
mov rdi, qword [rsp + 0x90]
jmp 0x180026f16
mov rdi, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x80]
call sub.gdiplus.dll_GdipDeleteStringFormat
nop
mov rcx, rdi
call sub.gdiplus.dll_GdipDeleteGraphics
nop
cmp qword [rsp + 0x160], 8
jb 0x180026f45
mov rcx, qword [rsp + 0x148]
call fcn.1800538dc
mov rcx, qword [rsp + 0x168]
xor rcx, rsp
call fcn.180052d60
lea r11, [rsp + 0x210]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret