Function at 0x180044b40
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3b8]
sub rsp, 0x4b8
mov r10d, dword [rbp + 0x400]
lea edi, [rcx + 0xf]
mov r11d, dword [rbp + 0x400]
mov r14d, ecx
mov r15d, dword [rbp + 0x400]
mov rsi, r8
mov r8d, dword [rbp + 0x400]
lea rcx, [0x180000000]
mov r12d, dword [rbp + 0x400]
mov dword [rsp + 0x48], r10d
mov dword [rsp + 0x40], r8d
mov dword [rsp + 0x44], r11d
cmp r14d, edi
jae 0x180044edf
mov rcx, qword [rbp - 0x78]
lea ebx, [r14 - 0x7b]
mov eax, dword [rbp + 0x400]
mov qword [rbp - 0x78], rcx
mov ecx, dword [rbp + 0x400]
mov r13, qword [rbp - 0x78]
mov r9, qword [rbp - 0x78]
mov rdx, qword [rbp - 0x78]
mov dword [rbp - 0x6c], ecx
mov ecx, dword [rbp + 0x400]
mov qword [rbp + 0x70], r13
mov qword [rsp + 0x70], r9
mov dword [rbp - 0x68], ecx
mov qword [rsp + 0x58], rdx
mov dword [rbp - 0x80], eax
nop word [rax + rax]
cmp ebx, 0x52
ja case.0x180044c24.2
lea r10, [0x180000000]
movzx eax, byte [r10 + rbx + 0x45e70]
mov ecx, dword [r10 + rax*4 + 0x45e30]
add rcx, r10
jmp rcx
xor r13d, r13d
lea rax, [rsi + 0x50]
mov qword [rsp + 0x38], r13
xor r9d, r9d
mov dword [rsp + 0x30], 0x12
xor r8d, r8d
mov qword [rsp + 0x28], r13
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.18003ccc0
lea rdx, [rsi + 8]
mov r9d, 0xe0
xor r8d, r8d
xor ecx, ecx
call fcn.180064c80
test al, al
je 0x180045e14
xor edx, edx
lea ecx, [rdx + 0x38]
call fcn.18005dc30
movsd xmm1, qword [0x1800ab2e8]
xorps xmm0, xmm0
mov eax, eax
cvtsi2sd xmm0, rax
divsd xmm1, xmm0
movsd qword [rsi + 0x118], xmm1
mov rdx, qword [rsp + 0x58]
mov r8d, dword [rsp + 0x40]
mov r9, qword [rsp + 0x70]
mov r11d, dword [rsp + 0x44]
jmp case.0x180044c24.2
mov byte [rbp - 0x7c], 1
jmp case.0x180044c24.2
xor eax, eax
mov qword [rbp - 0x78], rax
jmp case.0x180044c24.2
mov r8d, 3
lea rdx, [0x1800a8184]
lea rcx, [rbp - 0x3e]
call fcn.18007c5d0
jmp 0x180044c97
xor eax, eax
mov dword [rbp - 0x7c], eax
jmp case.0x180044c24.2
mov r13, qword [sym.imp.WINMM.dll_midiOutClose]
lea rcx, [rbp + 0xe0]
xor edx, edx
mov qword [rbp + 0x70], r13
mov r8d, 0xd0
mov dword [rbp - 0x6c], 0x10
mov qword [rsi + 0x260], 0xffffffffffffffff
call fcn.180078f10
jmp 0x180044c97
mov dword [0x1800c7090], 1
jmp case.0x180044c24.2
mov rax, qword [rbp + 0x408]
xor r13d, r13d
mov r15d, r13d
mov dword [rbp - 0x80], r13d
mov r12d, r13d
mov r9, qword [rax]
mov qword [rsp + 0x70], r9
jmp case.0x180044c24.2
mov r9, qword [r9 + 0x18]
lea rcx, [rbp + 0x80]
xor eax, eax
mov dword [rsp + 0x48], eax
lea edx, [rax + 1]
lea r8d, [rax + 0xe]
call fcn.180082cbc
cmp rax, 0xe
je 0x180044c97
mov rax, qword [rsi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x2b
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax]
jmp 0x180044c97
xor edx, edx
mov r8d, 0x288
mov rcx, rsi
call fcn.180078f10
mov dword [rbp - 0x68], 1
jmp 0x180044c97
mov eax, 0x6e44
mov byte [rbp - 0x3e], 0
mov word [rbp - 0x40], ax
jmp case.0x180044c24.2
movsd xmm0, qword [str.dnsa]
mov eax, 0x6565
mov word [rbp - 0x3b], ax
movsd qword [rbp + 0xa0], xmm0
mov byte [rbp - 0x39], 0
mov dword [rbp + 0xa8], 0x70
jmp case.0x180044c24.2
mov rcx, qword [rsi]
cmp dword [rcx + 0x24], 0x64
je 0x180044e16
mov rax, qword [rcx]
mov dword [rax + 0x28], 0x14
mov rax, qword [rsi]
mov rcx, qword [rax]
mov eax, dword [rax + 0x24]
mov dword [rcx + 0x2c], eax
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax]
mov rcx, qword [rsi]
mov r8d, dword [rsp + 0x40]
cmp r8d, 3
jne 0x180044e28
cmp dword [rcx + 0x50], r8d
jne 0x180044e37
lea r11d, [r8 + 7]
jmp 0x180044e3f
cmp r8d, 4
jle 0x180044e37
lea r11d, [r8 + r8*2]
add r11d, r11d
jmp 0x180044e3f
lea r11d, [r8*4 + 2]
cmp qword [rcx + 0x230], 0
mov dword [rsp + 0x44], r11d
je 0x180044e57
cmp dword [rcx + 0x238], r11d
jge 0x180044e9b
mov eax, 0xa
cmp r11d, eax
cmovg eax, r11d
xor edx, edx
mov dword [rcx + 0x238], eax
mov rcx, qword [rsi]
movsxd rax, dword [rcx + 0x238]
mov r9, qword [rcx + 8]
lea r8, [rax + rax*8]
shl r8, 2
call qword [r9]
mov rcx, qword [rsi]
mov r8d, dword [rsp + 0x40]
mov r11d, dword [rsp + 0x44]
mov qword [rcx + 0x230], rax
mov rcx, qword [rsi]
mov rdx, qword [rcx + 0x230]
mov r9, qword [rsp + 0x70]
mov qword [rsp + 0x58], rdx
mov qword [rcx + 0x128], rdx
jmp case.0x180044c24.2
mov rax, qword [rsi]
mov r8d, dword [rax + 0x4c]
mov dword [rsp + 0x40], r8d
inc ebx
lea eax, [rbx + 0x7b]
cmp eax, edi
jb 0x180044c00
mov ebx, dword [rbp - 0x80]
lea rcx, [0x180000000]
mov r10d, dword [rsp + 0x48]
jmp 0x180044f1c
mov rax, qword [rbp - 0x78]
mov ebx, dword [rbp + 0x400]
mov qword [rbp - 0x78], rax
mov eax, dword [rbp + 0x400]
mov r9, qword [rbp - 0x78]
mov rdx, qword [rbp - 0x78]
mov dword [rbp - 0x6c], eax
mov rax, qword [rbp - 0x78]
mov qword [rbp + 0x70], rax
mov eax, dword [rbp + 0x400]
mov dword [rbp - 0x68], eax
mov qword [rsp + 0x70], r9
mov dword [rbp - 0x80], ebx
mov qword [rsp + 0x58], rdx
lea edi, [r14 + 0x240]
mov dword [rsp + 0x4c], edi
cmp r14d, edi
jae case.0x180044f7b.123
mov edi, dword [rbp + 0x400]
mov r13d, dword [rbp - 0x44]
mov eax, dword [rsp + 0x4c]
nop
cmp r14d, 0x193
ja 0x180045df0
je case.0x180044f7b.123
lea eax, [r14 - 0x7b]
cmp eax, 0xf4
ja case.0x180044f7b.138
movzx eax, byte [rcx + rax + 0x45f04]
mov ecx, dword [rcx + rax*4 + 0x45ec4]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov eax, 0x64
mov dword [rbp + 0xbe], 0x700061
mov word [rbp + 0xc6], ax
xor eax, eax
mov word [rbp + 0xcc], ax
mov dword [rbp + 0xc2], 0x2e0069
mov dword [rbp + 0xc8], 0x6c006c
jmp case.0x180044f7b.138
mov rax, qword [rsi]
mov dword [rax + 0x120], r11d
cmp r8d, 3
jne 0x180045345
mov rax, qword [rsi]
cmp dword [rax + 0x50], r8d
jne 0x180045345
mov ebx, 0xba
xor esi, esi
nop dword [rax]
cmp ebx, 0xba
je 0x180045191
cmp ebx, 0x3c4e
je 0x1800450fd
cmp ebx, 0x77e2
jne 0x180045322
mov eax, 2
mov dword [rsp + 0x60], esi
mov dword [rbp + 0x400], eax
lea r9, [rsp + 0x50]
lea rax, [rbp + 0x400]
mov dword [rsp + 0x68], 1
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x68]
lea rax, [rsp + 0x60]
mov dword [rsp + 0x50], 0x3f
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x20], rdx
mov edx, 0xdf
mov dword [rsp + 0x58], 1
call fcn.18006dd70
lea rcx, [rsp + 0x58]
mov dword [rsp + 0x68], esi
mov qword [rsp + 0x30], rcx
lea r9, [rsp + 0x50]
lea rcx, [rsp + 0x68]
mov dword [rsp + 0x60], 1
mov qword [rsp + 0x28], rcx
lea r8, [rsp + 0x60]
lea rcx, [rbp - 0x60]
mov dword [rsp + 0x50], 0x3f
mov edx, 0xdf
mov dword [rbp - 0x60], 1
mov dword [rsp + 0x58], 1
mov qword [rsp + 0x20], rax
call fcn.18006dd70
lea rcx, [rbp - 0x60]
mov dword [rbp + 0x400], esi
mov qword [rsp + 0x30], rcx
lea r9, [rsp + 0x68]
lea rcx, [rbp + 0x400]
mov dword [rsp + 0x50], 1
mov qword [rsp + 0x28], rcx
lea r8, [rsp + 0x50]
lea rcx, [rsp + 0x60]
mov dword [rsp + 0x68], 0x3f
mov dword [rsp + 0x60], 1
mov dword [rbp - 0x60], esi
jmp 0x180045310
mov eax, 2
mov dword [rsp + 0x58], 1
mov dword [rsp + 0x50], eax
lea r9, [rsp + 0x68]
lea rax, [rbp + 0x400]
mov dword [rsp + 0x68], 0x3f
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x50]
lea rax, [rsp + 0x58]
mov dword [rsp + 0x60], 1
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x20], rdx
mov edx, 0xdf
mov dword [rbp + 0x400], esi
call fcn.18006dd70
lea rcx, [rbp + 0x60]
mov dword [rsp + 0x58], esi
mov qword [rsp + 0x20], rcx
lea r8, [rsp + 0x58]
lea rcx, [rsp + 0x68]
mov dword [rbp + 0x60], 1
mov r9d, 0xd6
mov dword [rsp + 0x68], 3
mov rdx, rax
call fcn.18003aad0
jmp 0x18004531f
lea rax, [rbp + 0x400]
mov dword [rsp + 0x58], 1
mov r9d, 0xd6
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x58]
mov dword [rbp + 0x400], esi
lea rcx, [rsp + 0x68]
mov dword [rsp + 0x68], 3
call fcn.18003aad0
lea rcx, [rsp + 0x58]
mov dword [rsp + 0x68], 2
mov qword [rsp + 0x30], rcx
lea r9, [rsp + 0x50]
lea rcx, [rsp + 0x68]
mov dword [rsp + 0x60], esi
mov qword [rsp + 0x28], rcx
lea r8, [rsp + 0x60]
lea rcx, [rsp + 0x78]
mov dword [rsp + 0x50], 5
mov edx, 0xdf
mov dword [rsp + 0x78], 1
mov dword [rsp + 0x58], esi
mov qword [rsp + 0x20], rax
call fcn.18006dd70
lea rcx, [rbp + 0x400]
mov dword [rsp + 0x78], 1
mov qword [rsp + 0x30], rcx
lea r9, [rsp + 0x68]
lea rcx, [rsp + 0x78]
mov dword [rsp + 0x50], esi
mov qword [rsp + 0x28], rcx
lea r8, [rsp + 0x50]
lea rcx, [rsp + 0x60]
mov dword [rsp + 0x68], 0x3f
mov edx, 0xdf
mov dword [rsp + 0x60], 1
mov dword [rbp + 0x400], 2
mov qword [rsp + 0x20], rax
call fcn.18006dd70
lea rcx, [rsp + 0x78]
mov dword [rsp + 0x58], 1
mov qword [rsp + 0x30], rcx
lea r9, [rsp + 0x68]
lea rcx, [rsp + 0x58]
mov dword [rsp + 0x50], esi
mov qword [rsp + 0x28], rcx
lea r8, [rsp + 0x50]
lea rcx, [rsp + 0x60]
mov dword [rsp + 0x68], 0x3f
mov edx, 0xdf
mov dword [rsp + 0x60], 1
mov dword [rsp + 0x78], 1
mov qword [rsp + 0x20], rax
call fcn.18006dd70
mov ecx, 2
mov dword [rsp + 0x68], esi
mov dword [rbp + 0x400], ecx
lea r9, [rsp + 0x58]
lea rcx, [rbp + 0x68]
mov dword [rsp + 0x58], 0x3f
mov qword [rsp + 0x30], rcx
lea r8, [rsp + 0x68]
lea rcx, [rbp + 0x400]
mov dword [rsp + 0x50], 6
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x50]
mov dword [rbp + 0x68], esi
mov edx, 0xdf
mov qword [rsp + 0x20], rax
call fcn.18006dd70
mov rdx, rax
add ebx, 0x3b94
cmp ebx, 0xb2bc
jbe 0x180044fe0
mov rsi, qword [rbp + 0x410]
mov qword [rsp + 0x58], rdx
jmp 0x180045dd8
mov esi, dword [rsp + 0x40]
mov ebx, 0x38
nop
mov eax, ebx
sub eax, 0x38
je 0x1800454f5
sub eax, 1
je 0x180045450
cmp eax, 1
jne 0x18004552b
mov dword [rsp + 0x50], eax
lea r9, [rsp + 0x58]
mov eax, 2
mov dword [rsp + 0x68], 0x3f
mov dword [rsp + 0x78], eax
lea r8, [rsp + 0x68]
lea rax, [rbp + 0x400]
mov dword [rbp + 0x400], 1
mov qword [rsp + 0x30], rax
lea rcx, [rsp + 0x50]
lea rax, [rsp + 0x78]
mov dword [rsp + 0x58], esi
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x94
call fcn.180073cc0
lea rcx, [rsp + 0x60]
mov dword [rbp - 0x58], 0
mov qword [rsp + 0x20], rcx
lea r8, [rbp - 0x58]
lea rcx, [rbp - 0x50]
mov dword [rsp + 0x60], 1
mov r9d, 0xd6
mov dword [rbp - 0x50], esi
mov rdx, rax
call fcn.18003aad0
xor ecx, ecx
mov dword [rbp - 0x58], 1
mov dword [rbp + 0x98], ecx
lea r9, [rbp + 0x78]
lea rcx, [rbp - 0x50]
mov dword [rbp + 0x90], 0x3f
mov qword [rsp + 0x30], rcx
lea r8, [rbp + 0x90]
lea rcx, [rbp - 0x58]
mov dword [rbp - 0x50], 1
mov qword [rsp + 0x28], rcx
mov rdx, rax
lea rcx, [rbp + 0x98]
mov dword [rbp + 0x78], esi
mov dword [rsp + 0x20], 0x94
call fcn.180073cc0
jmp 0x180045528
mov eax, 2
mov dword [rsp + 0x68], 5
mov dword [rsp + 0x50], eax
lea r9, [rsp + 0x58]
xor eax, eax
mov dword [rbp + 0x400], 1
mov dword [rsp + 0x78], eax
lea r8, [rsp + 0x68]
lea rax, [rbp + 0x400]
mov dword [rsp + 0x58], esi
mov qword [rsp + 0x30], rax
lea rcx, [rsp + 0x50]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x94
call fcn.180073cc0
mov ecx, 2
mov dword [rbp + 0x38], 0x3f
mov dword [rbp + 0x40], ecx
lea r9, [rbp + 0x30]
xor ecx, ecx
mov dword [rbp + 0x20], 6
mov dword [rbp + 0x28], ecx
lea r8, [rbp + 0x38]
lea rcx, [rbp + 0x20]
mov dword [rbp + 0x30], esi
mov qword [rsp + 0x30], rcx
mov rdx, rax
lea rcx, [rbp + 0x28]
mov qword [rsp + 0x28], rcx
lea rcx, [rbp + 0x40]
mov dword [rsp + 0x20], 0x94
call fcn.180073cc0
jmp 0x180045528
xor eax, eax
mov dword [rbp + 0x400], 1
mov dword [rbp + 0x48], eax
lea r8, [rbp + 0x400]
lea rax, [rbp + 0x48]
mov dword [rsp + 0x78], esi
mov r9d, 0xd6
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x78]
call fcn.18003aad0
mov rdx, rax
inc ebx
cmp ebx, 0x3b
jb 0x180045350
mov rsi, qword [rbp + 0x410]
mov qword [rsp + 0x58], rdx
jmp 0x180045dd8
mov rcx, qword [rsi]
mov rax, qword [rcx + 0x10]
test rax, rax
je 0x180045559
inc dword [rax + 0x1c]
mov rcx, qword [rsi]
mov rax, qword [rcx + 8]
lea r8d, [r15 + r15*2]
mov edx, 1
mov r9d, edx
call qword [rax + 0x10]
mov r9, qword [rsp + 0x70]
mov ecx, 2
mov qword [r9 + 0x20], rax
mov dword [r9 + 0x28], 1
mov rax, qword [rsi]
mov dword [rax + 0x3c], ecx
mov rax, qword [rsi]
mov dword [rax + 0x38], 3
jmp 0x180045ddd
test r10d, r10d
jle 0x180045623
test ebx, ebx
jg 0x1800455ae
mov ebx, 0x100
mov dword [rbp - 0x80], ebx
jmp 0x1800455cb
cmp ebx, 0x100
jle 0x1800455cb
mov rax, qword [rsi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x3e9
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax]
mov rcx, qword [rsi]
mov r9d, 3
mov r8d, ebx
mov rax, qword [rcx + 8]
lea edx, [r9 - 2]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x70]
lea r8, [rbp + 0x400]
mov qword [rsp + 0x68], rcx
lea rdx, [rsp + 0x68]
mov r9d, 0xa8
mov dword [rsp + 0x78], ebx
mov qword [rcx + 0x38], rax
lea rcx, [rsp + 0x78]
mov eax, dword [rsp + 0x48]
mov dword [rbp + 0x400], eax
call fcn.180064c80
mov eax, dword [rsp + 0x48]
imul eax, ebx
sub edi, eax
test edi, edi
jns 0x18004563c
mov rax, qword [rsi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x3eb
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax]
sub edi, 1
js 0x18004566c
mov rbx, qword [rsp + 0x70]
nop word [rax + rax]
xor edx, edx
mov qword [rsp + 0x78], rbx
lea r9, [rsp + 0x78]
xor ecx, ecx
lea r8d, [rdx + 0x50]
call fcn.180026f30
sub edi, 1
jns 0x180045650
mov r9, qword [rsp + 0x70]
mov r8d, dword [rsp + 0x40]
mov r10d, dword [rsp + 0x48]
mov r11d, dword [rsp + 0x44]
cmp dword [r9 + 0x50], 0x18
jne 0x180045693
lea eax, [r15 + r15*2]
mov dword [rbp - 0x64], eax
jmp case.0x180044f7b.138
mov dword [rbp - 0x64], r15d
jmp case.0x180044f7b.138
mov rax, qword [rsi]
mov dword [rax + 0x48], 8
mov rax, qword [rsi]
mov dword [rax + 0x30], r15d
mov rax, qword [rsi]
mov dword [rax + 0x34], r12d
jmp case.0x180044f7b.138
movzx ecx, byte [rbp + 0x81]
movzx eax, byte [rbp + 0x80]
shl ecx, 8
add ecx, eax
cmp ecx, 0x4d42
je 0x1800456ee
mov rax, qword [rsi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x3ef
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax]
mov r9, qword [rsp + 0x70]
movzx ecx, byte [rbp + 0x8d]
mov edx, 1
movzx eax, byte [rbp + 0x8c]
mov r9, qword [r9 + 0x18]
shl ecx, 8
add ecx, eax
lea r8d, [rdx + 3]
movzx eax, byte [rbp + 0x8b]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp + 0x8a]
shl ecx, 8
add ecx, eax
mov dword [rbp + 0x5c], ecx
lea rcx, [rbp - 0x20]
call fcn.180082cbc
cmp rax, 4
je 0x18004574d
mov rax, qword [rsi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x2b
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax]
movzx eax, byte [rbp - 0x1e]
movzx ecx, byte [rbp - 0x1d]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x1f]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x20]
shl ecx, 8
add ecx, eax
mov dword [rbp - 0x48], ecx
jmp 0x180045dd8
cmp dword [rbp + 0x50], 0
jne 0x180045e14
mov rcx, qword [rbp + 0xd0]
mov rax, rcx
test rcx, rcx
je 0x1800457bf
nop dword [rax]
cmp word [rax + 0x10], 1
je 0x1800457b3
mov rax, qword [rax]
test rax, rax
jne 0x180045790
lea edx, [rax + 1]
mov r14d, 0x14b
call qword [rbp + 0xd8]
jmp 0x180045dd8
mov rdx, qword [rbp + 0x418]
mov eax, dword [rax + 0x20]
mov dword [rdx], eax
mov edx, 1
mov r14d, 0x14b
call qword [rbp + 0xd8]
jmp 0x180045dd8
mov rax, qword [rbp + 0x418]
cmp dword [rax], 0xffffffff
setne byte [rbp - 0x7c]
jmp case.0x180044f7b.138
lea r8, [rbp + 0xa0]
mov ecx, 0x4a
lea rdx, [rbp - 0x40]
call fcn.180007c20
lea r8, [rbp + 0xb8]
mov qword [rbp + 0xd8], rax
lea rdx, str.DnsQuery_A
mov ecx, 0x4a
call fcn.180007c20
mov rcx, qword [rbp + 0x418]
mov edx, 1
mov r9, qword [rbp + 0x408]
mov dword [rcx], 0xffffffff
lea r8d, [rdx + 0x67]
xor ecx, ecx
mov qword [rsp + 0x28], rcx
lea rcx, [rbp + 0xd0]
mov qword [rsp + 0x20], rcx
mov rcx, rsi
call rax
mov dword [rbp + 0x50], eax
jmp 0x180045dd8
mov ebx, dword [rbp - 0x64]
test bl, 3
je 0x18004586b
inc ebx
test bl, 3
jne 0x180045861
mov dword [rbp - 0x64], ebx
mov dword [r9 + 0x4c], ebx
xor r8d, r8d
mov rcx, qword [rsi]
mov r9d, ebx
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], r12d
lea edx, [r8 + 1]
mov rax, qword [rcx + 8]
call qword [rax + 0x20]
mov r9, qword [rsp + 0x70]
mov qword [r9 + 0x40], rax
lea rax, [0x18005ccf0]
mov qword [r9 + 8], rax
jmp 0x180045ddd
mov r14d, dword [rbp - 0x48]
lea eax, [r14 - 0xc]
cmp eax, 0x34
jbe 0x1800458cb
mov rax, qword [rsi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x3eb
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax]
mov rdi, qword [rsp + 0x70]
lea eax, [r14 - 4]
movsxd rbx, eax
lea rcx, [rbp - 0x1c]
mov r8, rbx
mov edx, 1
mov r9, qword [rdi + 0x18]
call fcn.180082cbc
cmp rax, rbx
je 0x180045906
mov rax, qword [rsi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x2b
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax]
cmp r14d, 0xc
je 0x18004592a
cmp r14d, 0x28
je 0x18004594b
cmp r14d, 0x40
je 0x18004594b
mov rax, qword [rsi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x3eb
jmp 0x180045c60
mov ecx, 0x7d
nop
mov eax, ecx
sub eax, 0x7c
je 0x180045c4d
cmp eax, 1
je 0x180045bb2
dec ecx
cmp ecx, 0x7b
ja 0x180045930
mov ebx, 0x123
cmp ebx, 0x28fe3
ja 0x180045b28
je 0x180045a8d
cmp ebx, 0x123
je 0x180045a3c
cmp ebx, 0xdb63
je 0x1800459d3
cmp ebx, 0x1b5a3
jne 0x180045b8e
movzx eax, byte [rbp - 2]
movzx r13d, byte [rbp - 1]
movzx ecx, byte [rbp + 3]
shl r13d, 8
add r13d, eax
shl ecx, 8
movzx eax, byte [rbp - 3]
shl r13d, 8
add r13d, eax
movzx eax, byte [rbp - 4]
shl r13d, 8
add r13d, eax
movzx eax, byte [rbp + 2]
add ecx, eax
mov dword [rbp - 0x44], r13d
movzx eax, byte [rbp + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp]
shl ecx, 8
add ecx, eax
mov dword [rbp - 0x80], ecx
jmp 0x180045b8e
movzx eax, byte [rbp - 0x14]
movzx ecx, byte [rbp - 0x13]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x12]
mov dword [rbp - 0x70], ecx
movzx ecx, byte [rbp - 0x11]
shl ecx, 8
add ecx, eax
mov dword [rdi + 0x50], ecx
movzx eax, byte [rbp - 0xe]
movzx ecx, byte [rbp - 0xd]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0xf]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x10]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 6]
mov dword [rbp + 0x54], ecx
movzx ecx, byte [rbp - 5]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 7]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 8]
shl ecx, 8
add ecx, eax
mov dword [rbp + 0x58], ecx
jmp 0x180045b8e
movzx eax, byte [rbp - 0x1a]
movzx r15d, byte [rbp - 0x19]
movzx r12d, byte [rbp - 0x15]
shl r15d, 8
add r15d, eax
shl r12d, 8
movzx eax, byte [rbp - 0x1b]
shl r15d, 8
add r15d, eax
movzx eax, byte [rbp - 0x1c]
shl r15d, 8
add r15d, eax
movzx eax, byte [rbp - 0x16]
add r12d, eax
movzx eax, byte [rbp - 0x17]
shl r12d, 8
add r12d, eax
movzx eax, byte [rbp - 0x18]
shl r12d, 8
add r12d, eax
jmp 0x180045b8e
mov rax, qword [rsi]
mov edx, dword [rdi + 0x50]
mov rcx, qword [rax]
cmp edx, 8
je 0x180045aba
cmp edx, 0x18
je 0x180045ab1
mov dword [rcx + 0x28], 0x3ea
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax]
jmp 0x180045aeb
mov dword [rcx + 0x28], 0x3f0
jmp 0x180045ac9
mov dword [rsp + 0x48], 4
mov dword [rcx + 0x28], 0x3f1
mov rax, qword [rsi]
mov edx, 1
mov rcx, qword [rax]
mov dword [rcx + 0x2c], r15d
mov rax, qword [rsi]
mov rcx, qword [rax]
mov dword [rcx + 0x30], r12d
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax + 8]
cmp dword [rbp - 0x70], 1
mov ebx, 0x28fe3
je 0x180045b0b
mov rax, qword [rsi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x3ec
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax]
cmp dword [rbp + 0x54], 0
je 0x180045b8e
mov rax, qword [rsi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x3ee
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax]
jmp 0x180045b8e
cmp ebx, 0x36a23
je 0x180045b3e
cmp ebx, 0x44463
je 0x180045c68
jmp 0x180045b8e
mov ecx, dword [rbp + 0x58]
test ecx, ecx
jle 0x180045b8e
test r13d, r13d
jle 0x180045b8e
mov eax, 0x51eb851f
imul ecx
mov ecx, 2
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov rax, qword [rsi]
mov dword [rax + 0x15c], edx
mov eax, 0x51eb851f
imul r13d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov rax, qword [rsi]
mov dword [rax + 0x160], edx
mov rax, qword [rsi]
mov word [rax + 0x158], cx
add ebx, 0xda40
cmp ebx, 0x51d80
jbe 0x180045950
mov rax, qword [rsi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x3eb
jmp 0x180045c60
movzx eax, byte [rbp - 0x1c]
movzx ecx, byte [rbp - 0x17]
movzx r15d, byte [rbp - 0x1b]
movzx r12d, byte [rbp - 0x19]
movzx edx, byte [rbp - 0x15]
shl ecx, 8
shl r15d, 8
add r15d, eax
shl r12d, 8
movzx eax, byte [rbp - 0x1a]
add r12d, eax
shl edx, 8
movzx eax, byte [rbp - 0x18]
add ecx, eax
movzx eax, byte [rbp - 0x16]
add edx, eax
mov dword [rbp - 0x70], ecx
mov dword [rdi + 0x50], edx
mov rax, qword [rsi]
mov rcx, qword [rax]
cmp edx, 8
je 0x180045c1c
cmp edx, 0x18
je 0x180045c13
mov dword [rcx + 0x28], 0x3ea
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax]
jmp 0x180045c4d
mov dword [rcx + 0x28], 0x3f2
jmp 0x180045c2b
mov dword [rsp + 0x48], 3
mov dword [rcx + 0x28], 0x3f3
mov rax, qword [rsi]
mov edx, 1
mov rcx, qword [rax]
mov dword [rcx + 0x2c], r15d
mov rax, qword [rsi]
mov rcx, qword [rax]
mov dword [rcx + 0x30], r12d
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax + 8]
cmp dword [rbp - 0x70], 1
je 0x180045c68
mov rax, qword [rsi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x3ec
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax]
mov edi, dword [rbp + 0x5c]
mov r14d, 0xaf
sub edi, dword [rbp - 0x48]
sub edi, 0xe
jmp 0x180045dd8
mov ebx, 0x6e
mov byte [rsi + 0x284], 1
mov rsi, qword [rbp + 0x70]
mov dword [rbp + 0xe0], 0xd0
lea r13d, [rbx - 1]
lea r14d, [rbx - 5]
nop
cmp ebx, 0x6e
je 0x180045d28
cmp ebx, 0x3390
je 0x180045d18
cmp ebx, 0x66b2
je 0x180045cec
cmp ebx, 0x99d4
jne 0x180045d32
mov r8d, 2
lea rdx, [0x1800a81cc]
lea rcx, [rbp - 0x2a]
call fcn.18007c5d0
mov r8, rsi
lea rdx, [rbp - 0x38]
lea rcx, [rbp + 0x1b0]
call fcn.180075c20
jmp 0x180045d32
lea rcx, [rbp - 0x38]
dec rcx
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x180045cf3
mov eax, dword [0x1800a81d0]
mov dword [rcx], eax
movzx eax, word [0x1800a81d4]
mov word [rbp - 0x2d], ax
mov word [rbp - 0x2b], 0x25
jmp 0x180045d32
mov dword [rbp - 0x36], 0x4f6964
mov dword [rbp - 0x33], 0x437475
jmp 0x180045d32
mov word [rbp - 0x38], r13w
mov word [rbp - 0x37], r14w
add ebx, 0x3322
cmp ebx, 0xcc88
jbe 0x180045ca0
mov r8d, dword [rbp - 0x6c]
lea r9, [rbp + 0xe0]
mov edx, dword [rbp - 0x68]
xor eax, eax
mov rcx, qword [rbp - 0x78]
mov rsi, qword [rbp + 0x410]
mov r14d, dword [rbp + 0x400]
mov r13d, dword [rbp - 0x44]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rax
call sub.IMM32.dll_ImmGetImeMenuItemsW
mov dword [rsi + 0x28], 0x238
jmp 0x180045dd8
mov dword [rbp + 0xba], 0x73006e
jmp case.0x180044f7b.138
mov eax, dword [0x1800a81d8]
lea rdx, [0x1800a81e8]
mov dword [rbp + 0xaa], eax
lea rcx, [rbp + 0xa0]
mov eax, dword [0x1800a81e0]
mov r8d, 1
mov dword [rbp + 0xae], eax
movzx eax, word [0x1800a81e4]
mov word [rbp + 0xb2], ax
call fcn.18007c134
mov eax, 0x64
mov word [rbp + 0xb8], ax
mov r9, qword [rsp + 0x70]
mov r8d, dword [rsp + 0x40]
mov r11d, dword [rsp + 0x44]
mov r10d, dword [rsp + 0x48]
mov eax, dword [rsp + 0x4c]
add r14d, 0x24
mov dword [rbp + 0x400], r14d
cmp r14d, eax
jae case.0x180044f7b.123
mov ebx, dword [rbp - 0x80]
lea rcx, [0x180000000]
mov rdx, qword [rsp + 0x58]
jmp 0x180044f40
mov byte [rbp - 0x7c], 0
mov eax, dword [rbp - 0x7c]
add rsp, 0x4b8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret