Function at 0x180046020
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov dword [rsp + 8], ecx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x350]
sub rsp, 0x450
mov r13, r9
mov r15, r8
mov r12, rdx
mov edi, ecx
xor ebx, ebx
mov qword [rbp + 0xd0], rbx
mov word [rbp + 0xd8], bx
movdqa xmm0, xmmword [0x18014a120]
movdqu xmmword [rbp + 0xea], xmm0
mov byte [rbp + 0xda], bl
mov qword [rbp + 0x88], rbx
mov word [rbp + 0x90], bx
movdqu xmmword [rbp + 0xa2], xmm0
mov byte [rbp + 0x92], bl
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x20], xmm0
mov qword [rbp + 0x30], rbx
mov qword [rbp + 0x38], rbx
movdqa xmmword [rbp + 0x40], xmm0
mov qword [rbp + 0x50], rbx
mov qword [rbp + 0x58], rbx
mov qword [rbp + 0x60], rbx
mov qword [rbp + 0x120], rbx
mov qword [rbp + 0x128], rbx
mov qword [rbp + 0x130], rbx
lea ecx, [rbx + 0x30]
call fcn.1800aa21c
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [rbp + 0x128], rax
mov qword [rbp + 0x138], rbx
xorps xmm2, xmm2
movsd qword [rbp + 0x140], xmm2
mov qword [rbp + 0x148], rbx
mov dword [rbp + 0x150], 1
mov qword [rbp + 0x158], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x160], xmm0
xorps xmm1, xmm1
movdqa xmmword [rbp + 0x170], xmm1
movdqa xmmword [rbp + 0x180], xmm0
mov qword [rbp + 0x190], rbx
mov qword [rbp + 0x198], 0xffffffffffffffff
mov dword [rbp + 0x1a0], ebx
xor eax, eax
movups xmmword [rbp + 0x1a8], xmm0
movups xmmword [rbp + 0x1b8], xmm0
movups xmmword [rbp + 0x1c8], xmm0
movups xmmword [rbp + 0x1d8], xmm0
mov qword [rbp + 0x1e8], rax
movdqa xmm0, xmmword [0x18014a120]
movdqa xmmword [rbp + 0x200], xmm0
mov byte [rbp + 0x1f0], al
mov word [rbp + 0x210], bx
mov dword [rbp + 0x214], ebx
mov qword [rbp + 0x218], rbx
xorps xmm0, xmm0
movaps xmmword [rbp + 0x220], xmm0
movsd qword [rbp + 0x230], xmm2
mov byte [rbp + 0x238], al
mov qword [rbp + 0x23c], rbx
mov esi, edi
lea r14d, [rdi + 0xd]
lea r11, [0x180000000]
lea r9d, [rbx + 0x53]
lea r10d, [rbx + 0x3f]
mov rdx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x60]
mov qword [rbp - 0x78], rdx
cmp edi, r14d
jae 0x1800466db
add edi, 0xfffffeff
lea r8d, [rbx + 0x70]
mov r15, qword [rbp + 0x3b0]
mov rcx, qword [rsp + 0x60]
mov qword [rbp - 0x10], rcx
mov qword [rbp - 0x80], rax
nop dword [rax + rax]
cmp edi, 0x2f
ja case.0x18004622d.13
movzx eax, byte [r11 + rdi + 0x47644]
mov ecx, dword [r11 + rax*4 + 0x4760c]
add rcx, r11
jmp rcx
mov word [rbp - 8], r9w
mov word [rbp - 7], r10w
mov eax, 0x69
mov word [rbp - 6], ax
jmp case.0x18004622d.13
mov word [rbp - 4], r9w
jmp case.0x18004622d.13
mov dword [rsp + 0x58], 0x20
mov rbx, qword [rbp + 0x3a0]
mov r8, qword [rbx]
add r8, 0x28
lea r9, [rsp + 0x58]
mov edx, 0x5d
lea rcx, [0x180137ed8]
call fcn.18007be50
mov rax, qword [rbx]
mov dword [rax + 0x88], 0xfffffffc
xor ebx, ebx
mov rdx, qword [rbp - 0x78]
lea r11, [0x180000000]
mov r9d, 0x53
lea r8d, [r9 + 0x1d]
mov r10, qword [rbp - 0x80]
inc esi
inc edi
cmp esi, r14d
jae 0x1800466ea
mov r10d, 0x3f
jmp 0x180046210
mov dword [rsp + 0x58], 0x20
mov rax, qword [rbp + 0x3a0]
mov r8, qword [rax]
add r8, 8
lea r9, [rsp + 0x58]
mov edx, 0x5d
lea rcx, [0x180137ed8]
call fcn.18007be50
jmp 0x180046286
test rdx, rdx
jne case.0x18004622d.13
mov ebx, 0x10
nop
mov eax, ebx
sub eax, 0x10
je 0x180046460
sub eax, 1
je 0x180046456
cmp eax, 1
jne 0x180046476
xor ebx, ebx
lea rcx, [rbp + 0x198]
call fcn.1800058d0
lea rcx, [rbp + 0x180]
call fcn.1800052a0
mov rdx, qword [rbp + 0x168]
test rdx, rdx
je 0x18004635f
mov r8, qword [rbp + 0x178]
sub r8, rdx
sar r8, 4
lea rcx, [rbp + 0x168]
call fcn.18008d650
mov qword [rbp + 0x168], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x170], xmm0
lea rcx, [rbp + 0x128]
call fcn.180005810
nop
lea rcx, [rbp + 0x38]
call fcn.180088f80
mov rdx, qword [rbp + 0x20]
test rdx, rdx
je 0x18004639e
mov r8, qword [rbp + 0x30]
sub r8, rdx
sar r8, 3
lea rcx, [rbp + 0x20]
call fcn.18008d600
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x20], xmm0
mov qword [rbp + 0x30], rbx
mov rdx, qword [rbp + 0xaa]
cmp rdx, 0x10
jb 0x1800463df
inc rdx
mov rcx, qword [rbp + 0x92]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800463da
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180047604
call fcn.1800aa258
movdqa xmm0, xmmword [0x18014a120]
movdqu xmmword [rbp + 0xa2], xmm0
mov byte [rbp + 0x92], 0
mov rdx, qword [rbp + 0xf2]
cmp rdx, 0x10
jb 0x180046437
inc rdx
mov rcx, qword [rbp + 0xda]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180046432
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800475fe
call fcn.1800aa258
mov rax, qword [rbp - 0x58]
mov rbx, qword [rsp + 0x498]
add rsp, 0x450
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov qword [rbp - 0x58], 0
jmp 0x180046476
lea rax, [rbp + 0x70]
mov qword [rbp - 0x70], rax
lea rdx, [rbp - 0x70]
mov ecx, 0xd7
call fcn.180053160
inc ebx
cmp ebx, 0x13
jb 0x1800462f0
jmp 0x180046284
lea rax, [rbp + 0x70]
mov qword [rbp - 0x70], rax
mov r9, qword [rbp + 0x3b8]
xor r8d, r8d
mov edx, 0x8c
lea rcx, [rbp - 0x70]
call fcn.180006a90
mov rax, qword [r15]
mov qword [rbp - 0x20], rax
mov rax, qword [r13]
mov qword [rbp - 0x70], rax
mov eax, dword [r12]
mov dword [rsp + 0x58], eax
lea rax, [rbp + 0x70]
mov qword [rbp - 0x50], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x20], rax
mov r9d, 0x117
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x20]
lea rcx, [rsp + 0x58]
call fcn.18006bef0
mov rdx, rax
mov qword [rbp - 0x78], rax
jmp 0x18004628a
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x120
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18008d0d0
jmp 0x180046286
mov dword [rsp + 0x58], 0x1c4
mov byte [rsp + 0x50], 0
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, 0xcb
xor r8d, r8d
xor edx, edx
mov rbx, qword [rbp + 0x3a0]
mov rcx, qword [rbx]
call fcn.180058440
mov rax, qword [rbx]
mov dword [rax], 2
jmp 0x180046284
mov rax, qword [rbp + 0x3a0]
mov rax, qword [rax]
mov dword [rax + 4], 5
jmp case.0x18004622d.13
mov word [rbp - 5], r8w
jmp case.0x18004622d.13
mov dword [rsp + 0x68], 0xc0
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x38], rbx
lea rax, [rsp + 0x68]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rbx
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, r10d
call fcn.18004bcf0
mov r10, rax
mov qword [rbp - 0x80], rax
test rax, rax
jne 0x1800466c1
mov ebx, 0x25
cmp ebx, 0x25
je 0x1800465f6
cmp ebx, 0x1564
je 0x1800465ec
cmp ebx, 0x2aa3
je case.0x180046c47.491
jmp 0x180046647
mov qword [rbp - 0x58], 0
jmp 0x180046647
mov rax, qword [rbp - 0x78]
mov qword [rbp - 0x70], rax
xor eax, eax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x70]
xor r8d, r8d
mov edx, 0x14c
xor ecx, ecx
call fcn.18004edd0
lea rax, [rbp + 0x70]
mov qword [rbp - 0x70], rax
lea rdx, [rbp - 0x70]
mov ecx, 0xd7
call fcn.180053160
add ebx, 0x153f
cmp ebx, 0x3fbd
jbe 0x1800465d1
jmp 0x180046284
mov rax, qword [rbp - 0x28]
mov qword [rbp - 0x10], rax
jmp case.0x18004622d.13
mov dword [rbp - 0x60], 2
mov rax, qword [r13]
mov qword [rbp - 0x70], rax
mov r9d, 0xa3
lea r8, [rbp - 0x60]
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x70]
call fcn.18008dbb0
test eax, eax
je 0x180046286
mov rax, qword [r13]
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x60], rcx
mov r8d, 0x84
lea rdx, [rsp + 0x60]
xor ecx, ecx
call fcn.1800082d0
mov dword [rbp - 0x58], eax
jmp 0x18004630f
mov rdx, qword [rbp - 0x78]
mov r8d, 0x70
lea r9d, [r8 - 0x1d]
lea r11, [0x180000000]
jmp 0x18004629f
mov qword [rbp - 0x10], rax
mov r10, qword [rsp + 0x60]
mov qword [rbp - 0x80], r10
jmp 0x1800466f7
mov r15, qword [rbp + 0x3a0]
mov edi, dword [rbp + 0x390]
mov ebx, edi
imul esi, edi, 0x152
mov r11d, 0x7375
mov r9d, 0x74
cmp edi, esi
ja 0x180046b8f
mov ecx, 0xffd8
lea r14d, [rcx - 0xf]
mov r12d, 0xff
lea r8d, [rcx + 0x27]
mov r11d, 0x416d
mov r9d, 0x61
mov eax, 0x63
cmp ebx, 0x3535
ja 0x180046aff
je 0x180046adb
cmp ebx, 0x1b1b
ja 0x1800467e4
je 0x1800467cc
mov eax, ebx
sub eax, 0x101
je 0x180046793
sub eax, 0xf
je 0x180046785
cmp eax, 0x1e
jne 0x180046b76
cmp word [rsp + 0x70], cx
je 0x180046b76
mov dword [rbp - 0x58], 0x1031
jmp case.0x180046c47.491
mov eax, 0x74
mov word [rbp - 3], ax
jmp 0x180046b76
mov dword [rsp + 0x58], 0xc0
mov byte [rsp + 0x50], 0
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, 0xcb
xor r8d, r8d
xor edx, edx
mov rcx, r10
call fcn.180058440
jmp 0x180046a31
mov dword [r10], 0x41504446
mov qword [r10 + 8], rdx
mov dword [r10 + 4], 1
jmp 0x180046b76
cmp ebx, 0x1cb0
je 0x180046ac8
cmp ebx, 0x1fda
jne 0x180046b76
nop dword [rax]
mov edi, 0x8d
nop word [rax + rax]
mov eax, edi
sub eax, 0x8a
je 0x1800468b6
sub eax, 1
je 0x180046882
sub eax, 1
je 0x18004685c
cmp eax, 1
jne 0x180046ab5
mov dword [rbp - 0x60], 2
mov rax, qword [r13]
mov qword [rbp - 0x70], rax
mov r9d, 0xa3
lea r8, [rbp - 0x60]
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x70]
call fcn.18008dbb0
jmp 0x180046aa7
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x120
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18008d0d0
jmp 0x180046aaf
mov dword [rbp - 0x60], 2
mov rax, qword [r13]
mov qword [rbp - 0x70], rax
mov r9d, 0xa3
lea r8, [rbp - 0x60]
lea rdx, [rbp - 0x68]
lea rcx, [rbp - 0x70]
call fcn.18008dbb0
test eax, eax
jne 0x180046c78
lea rax, [rbp - 0x68]
jmp 0x180046861
movzx ecx, word [rsp + 0x70]
lea eax, [rcx + 0x40]
cmp ax, 2
jbe 0x180046914
cmp cx, r14w
je 0x180046914
or cx, r12w
cmp cx, r8w
je 0x180046a75
xor ebx, ebx
mov dword [rsp + 0x58], ebx
mov dword [rsp + 0x68], 0x1063
mov rax, qword [r15]
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x60], rcx
lea r9, [rsp + 0x68]
mov r8d, 0x104
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x58]
call fcn.180069300
mov dword [rbp - 0x58], eax
jmp 0x18004630f
mov ebx, 0x7c
nop dword [rax]
cmp ebx, 0x3c10
ja 0x1800469dd
je 0x1800469b8
cmp ebx, 0x7c
je 0x180046985
cmp ebx, 0x1458
je 0x180046978
cmp ebx, 0x2834
jne 0x180046a63
lea rax, [rbp - 0x38]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x120
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18008d0d0
mov dword [rbp - 0x60], 2
lea rdx, [rbp - 0x34]
jmp 0x180046990
mov dword [rbp - 0x60], 2
lea rdx, [rbp - 0x38]
jmp 0x180046990
mov dword [rbp - 0x60], 1
lea rdx, [rbp - 0x47]
mov rax, qword [r13]
lea r8, [rbp - 0x60]
mov r9d, 0xa3
mov qword [rbp - 0x70], rax
lea rcx, [rbp - 0x70]
call fcn.18008dbb0
test eax, eax
jne 0x180046c78
jmp 0x180046a63
lea rax, [rbp - 0x34]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x120
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18008d0d0
jmp 0x180046a63
cmp ebx, 0x4fec
je 0x180046a5c
cmp ebx, 0x63c8
je 0x180046a53
cmp ebx, 0x77a4
jne 0x180046a63
mov ebx, 0x1fda
movzx eax, word [rbp - 0x38]
mov dword [rsp + 0x58], eax
mov rax, qword [r15]
mov qword [rbp - 0x70], rax
lea r9, str.Height
lea r8, [rsp + 0x58]
lea rdx, [rbp - 0x70]
mov ecx, 0xb8
call fcn.180027180
test eax, eax
jne 0x180046c78
mov edi, dword [rbp + 0x390]
mov r10, qword [rbp - 0x80]
mov rdx, qword [rbp - 0x78]
mov ecx, 0xffd8
lea r8d, [rcx + 0x27]
mov r9d, 0x61
mov r11d, 0x416d
jmp 0x180046b76
lea rdx, [rbp - 0x48]
jmp 0x180046990
mov dword [rbp - 0x60], 1
add ebx, 0x13dc
cmp ebx, 0x8b04
jbe 0x180046920
mov dword [rsp + 0x58], 1
movzx eax, word [rbp - 0x68]
sub eax, 2
mov dword [rbp - 0x40], eax
mov rax, qword [r13]
mov qword [rbp - 0x70], rax
lea r9, [rbp - 0x70]
mov r8d, 0x54
lea rdx, [rsp + 0x58]
lea rcx, [rbp - 0x40]
call fcn.180044f10
test eax, eax
jne 0x180046c78
mov r8d, 0xffff
dec edi
cmp edi, 0x89
ja 0x180046810
jmp 0x180046800
mov dword [rbp - 2], 0x616572
mov dword [rbp + 1], 0x63416d
jmp 0x180046b76
mov dword [r10 + 0x98], 0
movups xmm0, xmmword [rbp + 0x70]
movups xmmword [r10 + 0x48], xmm0
movsd xmm1, qword [rbp + 0x80]
movsd qword [r10 + 0x58], xmm1
jmp 0x180046b76
cmp ebx, 0x53f0
ja 0x180046b56
je 0x180046b3b
cmp ebx, 0x3850
je 0x180046b2e
cmp ebx, 0x3e86
je 0x180046c49
cmp ebx, 0x4f4f
jne 0x180046b76
lea rax, [r10 + 0x48]
mov qword [rdx], rax
jmp 0x180046b76
mov word [rbp + 4], ax
mov dword [rbp + 5], 0x72656c65
jmp 0x180046b76
mov dword [rbp + 9], 0x6f7461
mov eax, 0x72
mov word [rbp + 0xc], ax
mov eax, 0x53
mov word [rbp + 0xd], ax
jmp 0x180046b76
cmp ebx, 0x6f90
je 0x180046b6d
cmp ebx, 0x8b30
jne 0x180046b76
mov word [rbp + 0xf], r9w
jmp 0x180046b76
mov eax, 0x74
mov word [rbp + 0xe], ax
imul eax, edi, 0x1a
add ebx, eax
cmp ebx, esi
jbe 0x180046732
mov r9d, 0x74
mov r11d, 0x7375
mov ebx, edi
movzx edx, word [rsp + 0x70]
mov dword [rsp + 0x78], edx
mov rax, qword [rbp - 0x50]
mov qword [rbp - 0x20], rax
mov rcx, qword [rbp - 0x50]
mov qword [rbp - 0x78], rcx
mov eax, dword [rsp + 0x58]
mov dword [rbp - 0x2c], eax
movzx r13d, byte [rsp + 0x50]
mov eax, dword [rsp + 0x58]
mov dword [rbp - 0x40], eax
movzx r15d, byte [rsp + 0x50]
mov eax, dword [rsp + 0x58]
mov dword [rbp - 0x30], eax
mov rdi, qword [rbp - 0x50]
mov qword [rbp - 0x50], rdi
mov rax, qword [rbp - 0x50]
mov qword [rbp - 0x18], rax
movzx r12d, byte [rsp + 0x50]
mov esi, dword [rsp + 0x58]
mov r14d, dword [rsp + 0x58]
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x74], ebx
mov eax, dword [rbp + 0x390]
add eax, 0x6db
cmp ebx, eax
jae case.0x180046c47.491
mov eax, ebx
cmp eax, 0x1fa
ja 0x180047284
je 0x1800470d9
add eax, 0xfffffeff
cmp eax, 0xea
ja case.default.0x180046c47
lea r8, [0x180000000]
movzx eax, byte [r8 + rax + 0x47694]
mov ecx, dword [r8 + rax*4 + 0x47674]
add rcx, r8
jmp rcx
movzx eax, word [rbp - 0x34]
mov dword [rsp + 0x68], eax
mov rax, qword [r15]
mov qword [rsp + 0x60], rax
lea r9, str.Width
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x60]
mov ecx, 0xb8
call fcn.180027180
test eax, eax
je 0x180046c9f
mov rax, qword [r13]
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x60], rcx
lea rdx, [rsp + 0x60]
mov r8d, 0x84
xor ecx, ecx
call fcn.1800082d0
mov dword [rbp - 0x58], eax
jmp case.0x180046c47.491
movzx ecx, byte [rbp - 0x48]
sub ecx, 1
je 0x180046f3c
sub ecx, 2
je 0x180046e6c
cmp ecx, 1
jne 0x1800468d8
mov esi, 6
mov edi, dword [rsp + 0x68]
mov r14, qword [rbp - 0x28]
nop dword [rax + rax]
cmp esi, 6
ja case.default.0x180046cec
mov eax, esi
lea rdx, [0x180000000]
mov ecx, dword [rdx + rax*4 + 0x47780]
add rcx, rdx
jmp rcx
mov dword [rsp + 0x68], 1
mov rax, qword [r15]
mov rcx, qword [rax + 8]
mov qword [rsp + 0x60], rcx
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x60]
mov ecx, 0x21
call fcn.1800204c0
mov qword [rsp + 0x60], r14
lea r8, [rsp + 0x60]
mov rdx, rax
mov r12d, 0x3f
mov ecx, r12d
call fcn.180058e20
mov ebx, eax
mov dword [rsp + 0x68], 0
mov rax, qword [r15]
mov rcx, qword [rax + 8]
mov qword [rsp + 0x60], rcx
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x60]
lea ecx, [r12 - 0x1e]
call fcn.1800204c0
mov ecx, r12d
jmp 0x180046e31
test r14, r14
je 0x180046c78
mov rax, qword [r15]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x20], r14
mov r9d, 0x104
lea r8, [rsp + 0x60]
lea rdx, str.Decode
xor ecx, ecx
call fcn.1800105f0
mov rdi, rax
test eax, eax
jne 0x180046c78
jmp case.default.0x180046cec
mov rax, qword [r15]
mov rcx, qword [rax + 8]
mov qword [rbp - 0x70], rcx
lea rdx, [rbp - 0x70]
mov ecx, 0xb8
call fcn.180020780
mov r14, rax
jmp case.default.0x180046cec
mov rax, qword [r15]
mov rcx, qword [rax + 8]
mov qword [rsp + 0x60], rcx
mov dword [rsp + 0x68], 1
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x60]
mov ecx, 0x21
call fcn.1800204c0
mov qword [rsp + 0x60], r14
lea r8, [rsp + 0x60]
mov rdx, rax
mov ecx, 0x3f
call fcn.180058e20
mov ebx, eax
mov rax, qword [r15]
mov rcx, qword [rax + 8]
mov qword [rsp + 0x60], rcx
mov dword [rsp + 0x68], 0
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x60]
mov ecx, 0x21
call fcn.1800204c0
mov ecx, 0x3f
mov qword [rsp + 0x60], r14
lea r8, [rsp + 0x60]
mov rdx, rax
call fcn.180058e20
lea ecx, [rax + rbx]
add edi, ecx
dec esi
lea eax, [rsi + 0x60]
cmp eax, 0x5f
jbe 0x1800468d8
jmp 0x180046cd0
test edi, edi
jne 0x180046c78
mov rax, qword [str.movq]
jmp 0x180046e73
mov rax, qword [str.DeviceRGB]
mov qword [rbp - 0x10], rax
movzx eax, word [rsp + 0x70]
mov dword [rsp + 0x78], eax
mov rax, qword [rbp - 0x50]
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x50]
mov qword [rbp - 0x78], rax
mov eax, dword [rsp + 0x58]
mov dword [rbp - 0x2c], eax
movzx r13d, byte [rsp + 0x50]
mov eax, dword [rsp + 0x58]
mov dword [rbp - 0x40], eax
movzx r15d, byte [rsp + 0x50]
mov eax, dword [rsp + 0x58]
mov dword [rbp - 0x30], eax
mov rax, qword [rbp - 0x50]
mov qword [rbp - 0x50], rax
mov rbx, qword [rbp - 0x50]
mov qword [rbp - 0x18], rbx
movzx r12d, byte [rsp + 0x50]
mov esi, dword [rsp + 0x58]
mov r14d, dword [rsp + 0x58]
mov edi, dword [rsp + 0x58]
mov dword [rsp + 0x58], edi
mov ebx, 0x12e
mov rdi, qword [rbp + 0x3a0]
mov rax, qword [rdi]
mov rcx, qword [rax + 8]
mov qword [rbp - 0x28], rcx
mov r8, qword [rbp - 0x10]
lea rdx, [rbp - 0x28]
lea ecx, [rbx - 0x1a]
call fcn.1800a7160
mov rcx, qword [rdi]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x20], rax
lea r9d, [rbx - 0x2a]
lea r8, [rsp + 0x60]
lea rdx, str._CheckBoth
xor ecx, ecx
call fcn.1800105f0
test eax, eax
jne 0x1800475e3
mov rcx, qword [rbp - 0x78]
mov edx, dword [rsp + 0x78]
mov r10, qword [rbp - 0x80]
jmp 0x1800475cb
mov rax, qword [str.mi__load2x]
mov qword [rbp - 0x10], rax
movzx eax, word [rsp + 0x70]
mov dword [rsp + 0x78], eax
mov rax, qword [rbp - 0x50]
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x50]
mov qword [rbp - 0x78], rax
mov eax, dword [rsp + 0x58]
mov dword [rbp - 0x2c], eax
movzx r13d, byte [rsp + 0x50]
mov eax, dword [rsp + 0x58]
mov dword [rbp - 0x40], eax
movzx r15d, byte [rsp + 0x50]
mov eax, dword [rsp + 0x58]
mov dword [rbp - 0x30], eax
mov rax, qword [rbp - 0x50]
mov qword [rbp - 0x50], rax
mov rbx, qword [rbp - 0x50]
mov qword [rbp - 0x18], rbx
movzx r12d, byte [rsp + 0x50]
mov esi, dword [rsp + 0x58]
mov r14d, dword [rsp + 0x58]
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x58], eax
jmp case.0x180046c47.302
mov qword [rbp - 0x58], r10
jmp case.0x180046c47.258
mov qword [rsp + 0x60], r10
xor r9d, r9d
mov r8d, 0x9f
lea rdx, [rsp + 0x60]
xor ecx, ecx
call fcn.180045480
test eax, eax
je 0x18004703d
mov ebx, 0x10
mov rdi, qword [rbp - 0x80]
nop dword [rax]
mov eax, ebx
sub eax, 0xf
je case.0x180046c47.491
cmp eax, 1
jne 0x180047036
mov qword [rsp + 0x60], rdi
xor eax, eax
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x127
xor ecx, ecx
call fcn.180032ce0
lea rax, [rbp + 0x70]
mov qword [rsp + 0x60], rax
lea rdx, [rsp + 0x60]
mov ecx, 0xd7
call fcn.180053160
xor eax, eax
mov qword [rbp - 0x58], rax
dec ebx
cmp ebx, 0xe
ja 0x180046fe0
mov rax, qword [rbp + 0x3a0]
mov rax, qword [rax]
mov r10, qword [rbp - 0x80]
mov qword [r10 + 0x50], rax
jmp 0x1800475bf
mov ebx, 4
nop dword [rax]
cmp ebx, 4
je 0x180047074
cmp ebx, 0x32
jne 0x1800470d1
xor ebx, ebx
mov dword [rbp - 0x58], ebx
jmp 0x18004630f
movzx eax, byte [rbp - 0x47]
mov dword [rsp + 0x68], eax
mov rdi, qword [rbp + 0x3a0]
mov rax, qword [rdi]
mov rcx, qword [rax + 8]
mov qword [rsp + 0x60], rcx
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x60]
mov ecx, 0x21
call fcn.1800204c0
mov rcx, qword [rdi]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x20], rax
mov r9d, 0x104
lea r8, [rsp + 0x60]
lea rdx, str.cppLocalVariable
xor ecx, ecx
call fcn.1800105f0
test eax, eax
jne 0x1800475e3
add ebx, 0x2e
cmp ebx, 0x60
jb 0x180047060
mov ebx, 0x1bb
mov word [rbp - 0x68], bx
xor eax, eax
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x68]
lea r8, [rbp + 0xd0]
lea edx, [rax + 0x36]
lea rcx, [0x180163188]
call fcn.1800834d0
mov word [rbp - 0x68], bx
lea r9, [0x1801631a8]
lea r8, [rbp - 0x68]
lea rdx, [rbp + 0x88]
mov ecx, 0x58
call fcn.1800a6520
jmp 0x1800475bb
mov word [rbp + 0x10], r9w
mov word [rbp + 0x11], r11w
jmp case.0x180046c47.258
mov byte [rbp + 0x13], 0
xor eax, eax
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [0x180163128]
mov edx, 0xbf
xor ecx, ecx
call fcn.18003dbf0
test al, al
jne 0x180047266
mov ebx, 0x54
cmp ebx, 0x9fcc
ja 0x1800471ea
je 0x1800471c3
cmp ebx, 0x54
je 0x1800471bb
cmp ebx, 0x357c
je 0x1800471a7
cmp ebx, 0x6aa4
jne 0x180047254
xor edx, edx
mov dword [rbp - 0x30], edx
xorps xmm0, xmm0
movups xmmword [rbp + 0x100], xmm0
movups xmmword [rbp + 0x110], xmm0
mov qword [rbp - 0x70], rdx
jmp 0x180047254
mov r15b, 1
xor edx, edx
mov edi, edx
mov qword [rbp - 0x50], rdx
mov qword [rbp - 0x18], rdx
jmp 0x180047254
mov r13b, 1
jmp 0x180047254
lea r8, [rbp + 0x100]
mov edx, dword [rbp - 0x30]
mov rcx, rdi
call sub.IMM32.dll_ImmGetCandidateWindow
mov dword [rbp - 0x2c], eax
lea rdx, [rbp - 0x70]
mov rcx, qword [rbp - 0x18]
call sub.IMM32.dll_ImmGetStatusWindowPos
mov dword [rbp - 0x40], eax
jmp 0x180047254
cmp ebx, 0xd4f4
je 0x180047237
cmp ebx, 0x10a1c
je 0x180047208
cmp ebx, 0x13f44
je case.0x180046c47.491
jmp 0x180047254
test r13b, r13b
je 0x18004721c
lea rdx, [rbp + 0x100]
mov rcx, rdi
call sub.IMM32.dll_ImmSetCandidateWindow
test r15b, r15b
je 0x18004722e
lea rdx, [rbp - 0x70]
mov rcx, qword [rbp - 0x18]
call sub.IMM32.dll_ImmSetStatusWindowPos
mov dword [rbp - 0x58], 1
jmp 0x180047254
xor edx, edx
mov ecx, edx
movzx eax, r13b
cmp dword [rbp - 0x2c], edx
cmovne ecx, eax
movzx r13d, cl
movzx r15d, r15b
cmp dword [rbp - 0x40], edx
cmove r15d, edx
add ebx, 0x3528
cmp ebx, 0x17418
jbe 0x180047165
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
call fcn.1800b19ac
mov rcx, qword [rbp - 0x78]
mov edx, dword [rsp + 0x78]
mov r10, qword [rbp - 0x80]
jmp case.default.0x180046c47
cmp eax, 0x3ce
ja 0x180047550
je 0x18004751d
sub eax, 0x26f
je 0x18004748b
sub eax, 0x75
je 0x18004742a
cmp eax, 0x75
jne case.default.0x180046c47
xor ebx, ebx
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], ebx
lea r9, [rbp + 0x250]
lea r8, [0x180073cb0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rcx, rax
mov qword [rbp - 0x78], rax
test rax, rax
jne 0x180047277
mov edi, 0x103
nop word [rax + rax]
cmp edi, 0x103
je 0x180047410
cmp edi, 0x3bb1
je 0x180047404
cmp edi, 0x765f
je 0x1800473ca
cmp edi, 0xb10d
je 0x180047334
cmp edi, 0xebbb
jne 0x180047413
mov dword [rbp - 0x58], 1
jmp 0x18004630f
mov dword [rbp + 0x260], 0x50
test r12b, r12b
je 0x1800473bb
mov ebx, 0xba
nop dword [rax + rax]
mov eax, ebx
sub eax, 0xb8
je 0x18004739d
sub eax, 1
je 0x180047369
cmp eax, 1
jne 0x1800473af
xor eax, eax
mov esi, eax
jmp 0x1800473af
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x2b0], xmm0
movups xmmword [rbp + 0x2c0], xmm0
movups xmmword [rbp + 0x2d0], xmm0
movups xmmword [rbp + 0x2e0], xmm0
movups xmmword [rbp + 0x2f0], xmm0
mov dword [rbp + 0x300], eax
lea r14d, [rax + 0x54]
jmp 0x1800473af
mov ecx, esi
mov r8d, r14d
lea rdx, [rbp + 0x2b0]
call qword [sym.imp.WINMM.dll_midiOutGetDevCapsW]
dec ebx
cmp ebx, 0xb7
ja 0x180047350
xor ebx, ebx
lea rcx, [rbp + 0x260]
call qword [sym.imp.COMDLG32.dll_FindTextW]
jmp 0x180047413
xorps xmm0, xmm0
movups xmmword [rbp + 0x260], xmm0
movups xmmword [rbp + 0x270], xmm0
movups xmmword [rbp + 0x280], xmm0
movups xmmword [rbp + 0x290], xmm0
movups xmmword [rbp + 0x2a0], xmm0
mov ecx, ebx
movzx eax, r12b
cmp dword [rsp + 0x58], 0
cmovne ecx, eax
movzx r12d, cl
jmp 0x180047413
call qword [sym.imp.WINMM.dll_midiOutGetNumDevs]
mov dword [rsp + 0x58], eax
jmp 0x180047413
mov r12b, 1
add edi, 0x3aae
cmp edi, 0x12566
jbe 0x1800472f0
jmp 0x1800475bb
xor eax, eax
mov qword [rbp - 0x20], rax
mov eax, dword [0x1801631d0]
mov dword [rsp + 0x68], eax
lea r9, [rbp + 0x20]
lea r8, [rsp + 0x68]
mov edx, 0x80
lea rcx, [rbp + 0x100]
call fcn.1800167d0
lea rax, [rbp + 0x20]
mov qword [rbp + 0xc0], rax
mov eax, dword [0x1801631d0]
mov dword [rbp + 0xc8], eax
mov eax, dword [0x1801631d4]
mov dword [rbp + 0xcc], eax
movaps xmm0, xmmword [rbp + 0xc0]
movdqa xmmword [rbp + 0x250], xmm0
jmp 0x1800475bb
mov dword [rsp + 0x20], 0x11a
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0x20]
xor ecx, ecx
call fcn.180027d20
lea rax, [rbp + 0xd0]
mov qword [rsp + 0x60], rax
mov rdx, qword [rbp + 0x28]
cmp rdx, qword [rbp + 0x30]
je 0x1800474d2
lea rax, [rbp + 0xd0]
mov qword [rdx], rax
mov rdx, qword [rbp + 0x28]
add rdx, 8
mov qword [rbp + 0x28], rdx
jmp 0x1800474e4
lea r8, [rsp + 0x60]
lea rcx, [rbp + 0x20]
call fcn.1800017b0
mov rdx, qword [rbp + 0x28]
lea rax, [rbp + 0x88]
mov qword [rsp + 0x60], rax
cmp rdx, qword [rbp + 0x30]
je 0x18004750a
lea rax, [rbp + 0x88]
mov qword [rdx], rax
add qword [rbp + 0x28], 8
jmp 0x1800475bb
lea r8, [rsp + 0x60]
lea rcx, [rbp + 0x20]
call fcn.1800017b0
jmp 0x1800475bb
mov eax, 0x32
mov dword [rsp + 0x78], eax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rax, [0x18000f820]
mov qword [rsp + 0x60], rax
lea r8, [rsp + 0x60]
mov edx, 0x107
lea rcx, [rbp + 0x100]
call fcn.18000a120
jmp 0x1800475bb
sub eax, 0x443
je 0x18004758c
sub eax, 0x75
je 0x180047567
cmp eax, 0x75
je case.0x180046c47.491
jmp case.default.0x180046c47
movzx r8d, dx
lea rdx, [rbp + 0x310]
lea rcx, [rbp - 8]
call qword [sym.imp.COMDLG32.dll_GetFileTitleA]
mov rcx, qword [rbp - 0x20]
call sub.IMM32.dll_ImmGetOpenStatus
xor eax, eax
mov dword [rbp - 0x58], eax
jmp 0x1800475bb
lea r9, [0x180163120]
lea r8, [rbp + 0x120]
mov edx, 0x37
lea rcx, [rbp + 0x20]
call fcn.18000cb50
xor r8d, r8d
lea rdx, [rbp + 0x120]
lea ecx, [r8 + 0x69]
call fcn.180033990
mov r10, qword [rbp - 0x80]
mov edx, dword [rsp + 0x78]
mov rcx, qword [rbp - 0x78]
mov ebx, dword [rsp + 0x74]
add ebx, 0x75
mov rdi, qword [rbp - 0x50]
mov r9d, 0x74
mov r11d, 0x7375
jmp 0x180046bf2
mov rax, qword [rbp + 0x3a8]
mov rax, qword [rax]
mov rcx, qword [rax + 0x10]
mov qword [rbp - 0x28], rcx
lea rdx, [rbp - 0x28]
jmp 0x180046c8a
call fcn.1800b0714
nop
call fcn.1800b0714
int3