Function at 0x180027cf0
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf8
lea eax, [rdx + 0x18]
mov r10, r8
mov dword [rsp + 0x74], eax
mov rsi, r9
mov r8, rcx
cmp edx, eax
jae case.0x180027dd9.3
mov r11d, dword [rsp + 0x148]
lea eax, [rdx - 0x31]
movzx edx, word [rsp + 0x148]
lea rcx, [0x180000000]
mov r15d, dword [rsp + 0x148]
xor ebx, ebx
mov r13, qword [rsp + 0x98]
mov r14, qword [rsp + 0xd8]
mov r12d, dword [rsp + 0x148]
mov ebp, dword [rsp + 0x94]
lea rdi, [rbx - 1]
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x148]
mov r9d, dword [rsp + 0x78]
mov qword [rsp + 0xc0], rax
mov eax, dword [rsp + 0x74]
mov dword [rsp + 0x70], edx
mov qword [rsp + 0x80], r11
mov qword [rsp + 0xc8], r15
nop word [rax + rax]
cmp r9d, 0xa4
ja case.default.0x180027dd9
mov eax, r9d
movzx eax, byte [rcx + rax + 0x284e0]
mov ecx, dword [rcx + rax*4 + 0x284ac]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov r9, qword [rsp + 0x168]
mov eax, dword [r9]
inc eax
cmp dword [rsp + 0x7c], eax
jne 0x180027eac
mov r11d, 0x22
nop dword [rax + rax]
mov eax, r11d
sub eax, 0x1f
je case.0x180027dd9.3
sub eax, 1
je 0x180027e83
sub eax, 1
je 0x180027e24
cmp eax, 1
jne 0x180027e8b
mov dword [rsp + 0x90], ebx
jmp 0x180027e8b
mov r10d, dword [r9]
mov edx, ebx
mov r9, qword [rsp + 0x160]
mov r8d, ebx
mov edi, dword [rsp + 0x90]
nop dword [rax + rax]
mov ecx, dword [r9]
lea r9, [r9 + 4]
cmp ecx, edx
mov eax, r8d
cmovbe eax, edi
inc r8d
cmp ecx, edx
mov edi, eax
cmovbe ecx, edx
mov edx, ecx
cmp r8d, r10d
jbe 0x180027e40
mov ecx, dword [rsp + 0x88]
add word [rsi + rax*2], cx
mov r9, qword [rsp + 0x168]
mov dword [rsp + 0x90], edi
mov rdi, 0xffffffffffffffff
jmp 0x180027e8b
mov qword [rsp + 0xa0], rbx
dec r11d
cmp r11d, 0x1e
ja 0x180027e00
mov edx, dword [rsp + 0x70]
mov r10, qword [rsp + 0x150]
mov r11, qword [rsp + 0x80]
cmp qword [r10], 0
jne 0x180028093
mov r8d, 0x34
nop dword [rax]
mov eax, r8d
sub eax, 0x34
je 0x180027ef8
sub eax, 1
je 0x180027eee
cmp eax, 1
jne 0x180027f41
mov rax, qword [rsp + 0xa0]
add rsp, 0xf8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov qword [rsp + 0xa0], rbx
jmp 0x180027f41
mov r10d, dword [rsp + 0x88]
mov edx, ebx
test r10d, r10d
je 0x180027f41
nop word [rax + rax]
mov eax, edx
lea rcx, [rsi + rax*2]
movzx eax, word [rsi + rax*2]
test ax, ax
jle 0x180027f28
dec r10d
inc ax
mov word [rcx], ax
mov ecx, dword [r9]
lea eax, [rdx + 1]
inc ecx
xor edx, edx
div ecx
test r10d, r10d
jne 0x180027f10
mov dword [rsp + 0x88], r10d
inc r8d
cmp r8d, 0x37
jb 0x180027ec0
mov r10, qword [rsp + 0x150]
jmp 0x18002808f
mov byte [rsp + 0xa0], 1
jmp case.0x180027dd9.12
mov r13, qword [rsp + 0x160]
mov r8d, ebx
mov r9d, dword [rsp + 0x70]
mov r15d, 1
mov ebp, dword [rsp + 0x7c]
mov eax, r8d
lea rdx, [rax*4]
add rax, rax
mov ecx, dword [rdx + r13]
test ecx, ecx
jne 0x180027f9e
mov word [rax + rsi], bx
jmp 0x180027fd0
cmp ecx, dword [rsp + 0xc0]
ja 0x180027fb6
mov word [rax + rsi], di
inc ebp
mov eax, dword [rdx + r13]
sub qword [r10], rax
jmp 0x180027fd0
cmp ecx, r11d
ja 0x180027fcb
mov word [rax + rsi], r15w
inc ebp
mov eax, dword [rdx + r13]
sub qword [r10], rax
jmp 0x180027fd0
mov word [rax + rsi], r9w
mov rax, qword [rsp + 0x168]
inc r8d
cmp r8d, dword [rax]
jbe 0x180027f82
mov r15, qword [rsp + 0xc8]
mov r13, qword [rsp + 0x98]
mov dword [rsp + 0x7c], ebp
mov ebp, dword [rsp + 0x94]
jmp 0x18002808f
mov edx, 0xfffffffe
mov dword [rsp + 0x70], edx
jmp case.0x180027dd9.12
mov dword [rsp + 0x7c], ebx
jmp case.0x180027dd9.12
xor edx, edx
mov r9, rsi
xor ecx, ecx
lea r8d, [rdx + 0x34]
call fcn.1800293f0
cmp eax, 2
jne 0x18002807f
mov qword [rsp + 0x60], rbx
mov eax, 1
mov qword [rsp + 0x58], rsi
xor r9d, r9d
mov qword [rsp + 0x50], rbx
xor r8d, r8d
mov qword [rsp + 0x48], rbx
xor edx, edx
mov dword [rsp + 0x40], 0xc7
xor ecx, ecx
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0xa8], eax
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call fcn.18003d3a0
mov r10, qword [rsp + 0x150]
mov r11, qword [rsp + 0x80]
mov edx, dword [rsp + 0x70]
mov r9d, dword [rsp + 0x78]
mov eax, dword [rsp + 0x74]
lea rcx, [0x180000000]
mov r8d, dword [rsp + 0x148]
add r9d, 2
add r8d, 2
mov dword [rsp + 0x78], r9d
mov dword [rsp + 0x148], r8d
cmp r8d, eax
jae case.0x180027dd9.3
mov r8, qword [rsp + 0x140]
jmp 0x180027db0
mov qword [0x1800703d8], rsi
mov r9, rsi
mov qword [rsi + 0x80], r8
xor edx, edx
lea r8, [0x18003d370]
mov qword [rsp + 0x28], rbx
xor ecx, ecx
mov dword [rsp + 0x20], ebx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rsp + 0xd0], rax
jmp 0x18002807f
mov rax, qword [r10]
mov ecx, dword [r8]
mov r9, rax
shr r9, cl
inc ecx
mov qword [rsp + 0xc0], r9
lea r11, [rax + rax*2]
shr r11, cl
mov qword [rsp + 0x80], r11
jmp 0x180028093
mov r11d, 0x120
nop
mov eax, r11d
sub eax, 0x120
je 0x18002815b
cmp eax, 0x4d
jne 0x1800282b7
mov rax, rbx
jmp 0x180027eda
mov r10d, 0x4b
mov eax, r10d
sub eax, 0x4b
je 0x18002824e
sub eax, 1
je 0x18002823c
cmp eax, 1
jne 0x1800282a6
mov rax, qword [rsp + 0x168]
mov r9d, ebx
nop word [rax + rax]
mov r8d, r9d
cmp word [rsi + r8*2], dx
jne 0x18002822e
mov edx, 8
mov eax, edx
sub eax, 5
je 0x180028210
sub eax, 1
je 0x180028209
sub eax, 1
je 0x1800281ef
cmp eax, 1
jne 0x18002821b
mov rcx, qword [rsp + 0xe0]
mov r15, r13
mov rax, qword [rsp + 0x160]
shr r15, cl
mov qword [rsp + 0xc8], r15
mov r14d, dword [rax + r8*4]
imul r14, qword [rsp + 0xd8]
add r14, r13
mov r12, r14
shr r12, cl
jmp 0x18002821b
mov ebp, r12d
sub ebp, r15d
mov dword [rsp + 0x94], ebp
cmp ebp, 1
jae 0x18002821b
mov rax, rdi
jmp 0x180027eda
mov word [rsi + r8*2], bp
jmp 0x18002821b
mov r13, r14
mov qword [rsp + 0x98], r14
dec edx
cmp edx, 4
ja 0x1800281a3
mov rax, qword [rsp + 0x168]
mov edx, dword [rsp + 0x70]
inc r9d
cmp r9d, dword [rax]
jbe 0x180028190
jmp 0x18002829e
mov r13, qword [rsp + 0xe8]
mov qword [rsp + 0x98], r13
jmp 0x1800282a6
mov eax, 0x3e
sub eax, dword [r8]
mov r8d, 1
mov edx, eax
mov qword [rsp + 0xe0], rdx
lea ecx, [rax + 0xff]
mov eax, dword [rsp + 0x88]
shl r8, cl
mov ecx, edx
shl rax, cl
dec r8
mov rcx, qword [rsp + 0x150]
add rax, r8
xor edx, edx
mov qword [rsp + 0xe8], r8
div qword [rcx]
mov qword [rsp + 0xd8], rax
mov r8, qword [rsp + 0x140]
mov edx, dword [rsp + 0x70]
inc r10d
cmp r10d, 0x4e
jb 0x180028161
add r11d, 0x4d
cmp r11d, 0x1ba
jb 0x180028140
mov rax, qword [rsp + 0xd0]
test rax, rax
jne 0x180028386
mov esi, 0x11d
nop
mov eax, esi
sub eax, 0x11d
je 0x18002834a
sub eax, 0x23
je 0x18002833d
sub eax, 0x23
je 0x18002830d
sub eax, 0x23
je 0x180028303
cmp eax, 0x23
je case.0x180027dd9.3
jmp 0x180028367
mov byte [rsp + 0xa0], 0
jmp 0x180028367
mov r9d, dword [rsp + 0xb0]
mov r8d, dword [rsp + 0xbc]
mov edx, dword [rsp + 0xb8]
mov ecx, dword [rsp + 0xb4]
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
call qword [sym.imp.GDI32.dll_LineDDA]
jmp 0x180028367
mov dword [rsp + 0xb0], 0x1e
jmp 0x180028367
mov dword [rsp + 0xb4], ebx
mov dword [rsp + 0xb8], 0xa
mov dword [rsp + 0xbc], 0x14
add esi, 0x23
cmp esi, 0x1cc
jb 0x1800282e0
mov rsi, qword [rsp + 0x158]
mov rax, qword [rsp + 0xd0]
xchg qword [0x1800703e0], rax
jmp 0x18002807f
mov ecx, dword [r8]
xor edx, edx
mov r11d, dword [rsp + 0x7c]
mov r9d, 1
mov rax, qword [r10]
shl r9d, cl
sub r9d, r11d
mov ecx, r9d
div rcx
mov ecx, dword [rsp + 0x80]
mov dword [rsp + 0x88], r9d
cmp rax, rcx
jbe 0x180028087
mov rdi, qword [rsp + 0x160]
mov r8d, 0xd8
cmp r8d, 0xd8
je 0x180028409
mov edx, dword [rsp + 0x70]
cmp r8d, 0x15a
jne 0x180028473
mov rax, qword [rsp + 0x140]
mov r9d, 1
mov ecx, dword [rax]
shl r9d, cl
sub r9d, r11d
jmp 0x180028473
mov rax, qword [r10]
lea ecx, [r9 + r9]
xor edx, edx
lea rax, [rax + rax*2]
div rcx
mov edx, dword [rsp + 0x70]
mov ecx, ebx
mov rbx, qword [rsp + 0x168]
mov dword [rsp + 0x80], eax
mov r13, qword [rsp + 0x80]
mov eax, ecx
cmp word [rsi + rax*2], dx
jne 0x180028466
cmp dword [rdi + rax*4], r13d
ja 0x180028466
mov qword [rsp + 0x88], rcx
inc r11d
mov ecx, 1
mov word [rsi + rax*2], cx
mov eax, dword [rdi + rax*4]
sub qword [r10], rax
mov rcx, qword [rsp + 0x88]
inc ecx
cmp ecx, dword [rbx]
jbe 0x180028436
mov dword [rsp + 0x7c], r11d
xor ebx, ebx
add r8d, 0x82
cmp r8d, 0x1dc
jb 0x1800283d7
mov r13, qword [rsp + 0x98]
mov rdi, 0xffffffffffffffff
mov r11, qword [rsp + 0x80]
mov dword [rsp + 0x88], r9d
jmp 0x180028093