Function at 0x18003e7d0
Capabilities:
Move file

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov dword [rax + 0x20], r9d
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x138]
sub rsp, 0x200
mov rbx, qword [rsp + 0x48]
xor r14d, r14d
mov edx, dword [rbp + 0x158]
mov esi, r9d
mov rdi, qword [rsp + 0x48]
mov r12, r8
movaps xmmword [rax - 0x48], xmm6
mov r15d, r9d
movaps xmmword [rax - 0x58], xmm7
lea r11d, [r14 + 1]
imul eax, r9d, 0x972
mov dword [rbp - 0x50], edx
mov qword [rsp + 0x58], rbx
mov dword [rbp - 0x4c], eax
cmp r9d, eax
ja 0x18003ef45
mov rax, qword [rsp + 0x48]
movsd xmm7, qword [0x1800a0188]
mov esi, dword [rbp + 0x158]
mov r13, qword [rbp + 0x40]
mov qword [rbp - 0x48], rax
mov eax, dword [rbp + 0x158]
mov dword [rsp + 0x68], eax
mov rax, qword [rsp + 0x48]
mov qword [rbp - 0x20], rax
mov eax, dword [rbp + 0x158]
mov dword [rsp + 0x44], eax
mov eax, dword [rbp + 0x158]
mov dword [rsp + 0x40], eax
mov qword [rsp + 0x70], rdi
nop word [rax + rax]
cmp r15d, 0x7425
ja 0x18003ec6f
je 0x18003ebbc
cmp r15d, 0xd4
ja 0x18003e9c0
je 0x18003e98c
mov eax, r15d
sub eax, 0x68
je 0x18003e984
sub eax, 0x37
je 0x18003e8e1
mov ecx, dword [rsp + 0x44]
mov r9d, dword [rsp + 0x40]
cmp eax, 0x1c
jne 0x18003eaeb
mov r13, r12
jmp 0x18003eaeb
mov r8d, 0x47
mov qword [rsp + 0x48], r14
lea rdx, [rsp + 0x48]
xor ecx, ecx
call fcn.18003a350
xor r8d, r8d
mov qword [rsp + 0x48], r14
lea rdx, [rsp + 0x48]
mov ecx, 0xbf
mov edi, eax
call fcn.18001ca20
mov rbx, rax
mov qword [rsp + 0x48], r14
lea rax, [rsp + 0x48]
mov r9d, 0xc4
xor r8d, r8d
mov qword [rsp + 0x20], rax
xor edx, edx
xor ecx, ecx
call fcn.18003b990
test eax, eax
lea r9, [rsp + 0x48]
mov eax, r14d
mov ecx, r14d
setns cl
mov r8d, 0xea
test ebx, ebx
setns al
add ecx, eax
mov eax, r14d
test edi, edi
setns al
xor edx, edx
add ecx, eax
mov rax, qword [r12]
mov dword [rsp + 0x40], ecx
xor ecx, ecx
mov qword [rsp + 0x48], rax
call fcn.180003f40
mov rdi, qword [rsp + 0x70]
mov rbx, rax
mov qword [rsp + 0x58], rax
jmp 0x18003eae2
mov dword [rcx], r14d
jmp 0x18003eae2
mov eax, dword [rcx]
lea r9, [rsp + 0x50]
mov rdx, qword [rbp + 0x160]
mov rcx, r12
mov r8d, 0x9e
mov dword [rsp + 0x50], eax
call fcn.18001ad00
mov dword [rbp - 0x70], eax
cmp eax, 0
jge 0x18003eae2
mov rax, r14
jmp 0x18003fd74
cmp r15d, 0xf8
je 0x18003eb0e
cmp r15d, 0x4bf8
jne 0x18003eae2
mov r8d, VarR4FromDec
lea rcx, [rbp - 0x28]
mov rdx, r12
call fcn.18003a350
test al, al
je case.0x18003efc2.154
movsd xmm6, qword [rbp - 0x28]
lea rbx, [r12 + reloc.OLEAUT32.dll_VarUI2FromUI1]
movaps xmm0, xmm6
addsd xmm0, qword [r12 + 0x198]
comisd xmm7, xmm0
jbe 0x18003ea71
mov rax, qword [rbp + 0x160]
lea r8, [rsp + 0x50]
xor r9d, r9d
mov qword [rsp + 0x20], r14
mov rdx, rbx
mov eax, dword [rax]
lea ecx, [r9 + 0x50]
mov dword [rsp + 0x50], eax
call fcn.18001a000
cmp eax, 0x1388
jb 0x18003eac0
mov r8, rbx
mov edx, VarUI2FromUI1
xor ecx, ecx
call fcn.18002fe80
mov r9, r12
xor edx, edx
xor ecx, ecx
mov r8d, 0x107
call fcn.180002b50
mov rax, qword [rbp + 0x140]
mov dword [rax], 1
jmp 0x18003eac0
mov r8, rbx
mov edx, VarUI2FromUI1
xor ecx, ecx
call fcn.18002fe80
comisd xmm6, xmm7
jb 0x18003eac0
mov rax, qword [rbp + 0x160]
lea rcx, [rsp + 0x50]
mov r8, rbx
mov edx, 0xa1
mov eax, dword [rax]
mov dword [rsp + 0x50], eax
call fcn.18002fe80
cmp eax, 0x1388
jb 0x18003eadd
lea r9, [r12 + 0x50]
xor edx, edx
xor ecx, ecx
mov r8d, 0x12b
call fcn.180029130
mov qword [rsp + 0x28], r14
mov r9d, 0x104
xor r8d, r8d
mov qword [rsp + 0x20], r14
mov rdx, rbx
xor ecx, ecx
call fcn.180014df0
mov rbx, qword [rsp + 0x58]
mov ecx, dword [rsp + 0x44]
mov r9d, dword [rsp + 0x40]
imul eax, dword [rbp + 0x158], 0xba
add r15d, eax
cmp r15d, dword [rbp - 0x4c]
ja 0x18003ef25
mov rcx, qword [rbp + 0x140]
jmp 0x18003e890
mov dword [rbp - 0x50], r14d
test r12, r12
je 0x18003ebaf
mov qword [rsp + 0x30], r14
lea rax, [rbp - 0x80]
mov qword [rsp + 0x28], r14
mov r9, r12
xor r8d, r8d
mov qword [rsp + 0x20], rax
xor edx, edx
mov ecx, 0xd1
call fcn.18001eca0
cmp dword [rbp - 0x80], 0
mov rsi, rax
jne 0x18003eae2
mov rcx, qword [r12]
test rcx, rcx
je 0x18003eca9
test byte [r12 + 0x10], 8
jne 0x18003eb72
test eax, eax
je 0x18003eca9
cmp qword [r12 + 8], 0
je 0x18003eca9
call fcn.180066bf4
test eax, eax
je 0x18003eca9
call fcn.18006be3c
mov r9d, 0x112
lea r8, [rbp + 0x158]
lea rdx, [rbp - 0x40]
mov ecx, dword [rax]
mov eax, 0x16
mov dword [rbp - 0x40], ecx
lea rcx, [r12 + 0x18]
mov dword [rbp + 0x158], eax
call fcn.18002d330
mov dword [rsp + 0x78], 0xffffffff
jmp case.0x18003efc2.154
cmp dword [rbx], 0
jl 0x18003ebc7
mov dword [rbx], 0xffffffff
mov r8d, 0x47
mov qword [rsp + 0x48], rbx
lea rdx, [rsp + 0x48]
xor ecx, ecx
call fcn.18003a350
xor r8d, r8d
mov qword [rsp + 0x48], rbx
lea rdx, [rsp + 0x48]
mov ecx, 0xbf
mov edi, eax
call fcn.18001ca20
mov rbx, rax
mov r9d, 0xc4
mov rax, qword [rsp + 0x58]
xor r8d, r8d
mov qword [rsp + 0x48], rax
xor edx, edx
lea rax, [rsp + 0x48]
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.18003b990
test eax, eax
mov ecx, r14d
mov eax, r14d
setns cl
test ebx, ebx
mov rbx, qword [rsp + 0x58]
setns al
test edi, edi
mov rdi, qword [rsp + 0x70]
lea r9d, [rax + rcx]
mov eax, r14d
setns al
add eax, dword [rsp + 0x40]
add r9d, eax
cmp dword [rbx], 0xffffffff
mov dword [rsp + 0x40], r9d
jne 0x18003eee3
mov eax, dword [rbx + 4]
mov ecx, r14d
test eax, eax
sete cl
add ecx, eax
mov dword [rbx], ecx
jmp 0x18003eae2
cmp r15d, 0x11077
ja 0x18003ed33
je 0x18003ecc1
cmp r15d, 0x8899
je 0x18003eccb
cmp r15d, 0x9adc
je 0x18003eeec
cmp r15d, 0xb528
jne 0x18003eae2
test esi, esi
jne 0x18003eae2
xor r9d, r9d
mov qword [rsp + 0x20], r14
mov r8d, 0xc4
mov rdx, r12
xor ecx, ecx
call fcn.18002e1e0
mov dword [rsp + 0x78], r14d
jmp case.0x18003efc2.154
cmp dword [r13], 0
jne 0x18003ed07
movzx eax, byte [r13 + 4]
lea r9, [rbp - 0x78]
mov byte [rbp - 0x78], al
xor edx, edx
mov rax, qword [r13 + 8]
xor r8d, r8d
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
lea ecx, [rdx + 0x24]
call fcn.18003ca60
mov rcx, qword [rbp + 0x140]
jmp 0x18003ed0b
mov dword [r13], r14d
mov rax, qword [r13 + 8]
lea r9, [rsp + 0x48]
mov qword [rsp + 0x48], rcx
lea rdx, [rbp - 0x30]
mov ecx, 0xa5
mov qword [rbp - 0x30], rax
xor r8d, r8d
call fcn.18002edd0
jmp 0x18003eae2
cmp r15d, 0x16958
je 0x18003ed82
cmp r15d, 0x21d88
jne 0x18003eede
mov qword [rsp + 0x28], r12
lea rdx, [rbp - 0x38]
xor r9d, r9d
mov dword [rsp + 0x20], 0x34
xor r8d, r8d
xor ecx, ecx
call fcn.180042390
mov qword [rbp - 0x20], rax
test rax, rax
je 0x18003eebb
mov ecx, dword [r12 + 0x50]
mov dword [rsp + 0x44], ecx
jmp 0x18003eae6
movsxd rcx, dword [rbp - 0x80]
shl rcx, 4
call fcn.18006cfe0
mov qword [rbp - 0x48], rax
test rax, rax
je 0x18003ebaf
mov ecx, dword [rbp - 0x80]
lea rdx, [rbp - 0x40]
mov dword [rbp - 0x40], ecx
mov r8d, 0x6c
lea rcx, [r12 + 0x18]
call fcn.180018ee0
mov qword [rsp + 0x70], rax
mov rdi, rax
test rax, rax
je 0x18003eec8
cmp dword [rbp - 0x80], 0
mov dword [rsp + 0x68], r14d
jle 0x18003ee08
nop dword [rax]
nop word [rax + rax]
movsxd rcx, r14d
xor edx, edx
shl rcx, 7
mov r8d, 0x121
add rcx, qword [rdi]
call fcn.180019dd0
inc r14d
cmp r14d, dword [rbp - 0x80]
jl 0x18003ede0
mov dword [rsp + 0x68], r14d
xor r14d, r14d
lea r9, [rsp + 0x50]
mov dword [rsp + 0x50], r14d
lea r8, [rsp + 0x60]
mov dword [rsp + 0x60], 1
mov edx, 0xe5
mov rcx, r12
call fcn.180032a10
test eax, eax
je 0x18003ee70
lea r9, [r12 + 0x18]
mov qword [rsp + 0x48], DispInvoke
lea r8, [rsp + 0x48]
mov qword [rsp + 0x20], r14
lea rdx, str.z5VJHjh7RNaS7RHU_0sgPg
mov ecx, VarDateFromCy
call fcn.18001a000
mov qword [rdi + 0x18], rax
test rax, rax
je 0x18003eebb
mov eax, 0x16
mov word [rdi + 0x20], ax
jmp 0x18003eadd
lea r9, [rsp + 0x50]
mov dword [rsp + 0x50], 8
lea r8, [rsp + 0x60]
mov dword [rsp + 0x60], 1
mov edx, 0xe5
mov rcx, r12
call fcn.180032a10
test eax, eax
jne 0x18003eadd
mov r9d, 0x107
mov r8, r12
xor edx, edx
mov rcx, rdi
call fcn.1800220d0
cmp eax, 0xffffffff
jne 0x18003eadd
mov rdx, rdi
mov ecx, 0xf9
call fcn.180022830
mov rcx, qword [rbp - 0x48]
call fcn.18006c3d8
mov dword [rsp + 0x78], 0xffffffff
jmp case.0x18003efc2.154
mov r9d, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x44]
jmp 0x18003eaeb
mov eax, dword [rcx]
lea r9, [rbp + 0x158]
mov rcx, qword [rbp + 0x148]
lea r8, [rsp + 0x48]
mov dword [rbp + 0x158], eax
mov rdx, r12
movsxd rax, dword [rbp - 0x70]
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x20], 0x106
call fcn.180011aa0
jmp 0x18003fd74
mov r13, qword [rsp + 0x70]
mov r11d, 1
mov r8d, dword [rsp + 0x68]
mov rdi, qword [rbp - 0x20]
mov esi, dword [rbp + 0x158]
mov r10, qword [rbp - 0x48]
jmp 0x18003ef75
mov r10, qword [rsp + 0x48]
mov r8d, dword [rbp + 0x158]
mov r9d, dword [rbp + 0x158]
mov r13, qword [rsp + 0x48]
mov ecx, dword [rbp + 0x158]
mov qword [rbp - 0x48], r10
mov dword [rsp + 0x68], r8d
mov qword [rbp - 0x20], rdi
mov dword [rsp + 0x40], r9d
lea eax, [rsi - 0xd]
movsxd rdx, ecx
mov dword [rbp - 0x18], eax
mov qword [rbp - 0x58], rdx
cmp esi, eax
jbe case.0x18003efc2.154
mov r15d, dword [rbp + 0x158]
lea rsi, [0x180000000]
mov eax, dword [rbp + 0x158]
mov qword [rbp - 0x28], r15
add eax, 0xffffff66
cmp eax, 0x5e
ja case.0x18003efc2.166
movzx eax, byte [rsi + rax + 0x3fdd0]
mov ecx, dword [rsi + rax*4 + 0x3fd9c]
add rcx, rsi
jmp rcx
mov rax, qword [r12]
lea r9, [rsp + 0x48]
xor edx, edx
mov qword [rsp + 0x48], rax
xor ecx, ecx
mov r8d, 0xea
call fcn.180003f40
mov rbx, rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x48], rax
mov r9d, 0xc4
lea rax, [rsp + 0x48]
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], rax
xor ecx, ecx
call fcn.18003b990
mov r9, rbx
xor r8d, r8d
xor edx, edx
mov ecx, 0xbf
mov rsi, rax
call fcn.18001e6a0
mov r9, qword [r12]
xor r8d, r8d
xor edx, edx
mov ecx, 0xbf
mov rdi, rax
call fcn.18001e6a0
mov ecx, 2
mov rbx, rax
call fcn.180066670
mov rcx, rax
mov qword [rsp + 0x28], rdi
xor r9d, r9d
mov qword [rsp + 0x20], rbx
lea r8, [0x180096248]
lea rdx, str.WARNING:_unable_to_unload_auxlib
call fcn.1800010d0
mov rcx, qword [rbp + 0x148]
mov rax, qword [rcx]
lea r9, [rsp + 0x48]
mov rbx, qword [rsp + 0x58]
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x70], rbx
call fcn.18002fa20
test eax, eax
mov ecx, r14d
mov eax, r14d
sete cl
test esi, esi
setne al
add eax, dword [rsp + 0x40]
add eax, ecx
mov dword [rsp + 0x40], eax
lea r9, [rsp + 0x48]
mov qword [rsp + 0x48], rbx
xor r8d, r8d
mov qword [rsp + 0x20], r14
xor edx, edx
mov ecx, 0x93
call fcn.180035cc0
jmp 0x18003fd35
mov r8d, 0x47
mov qword [rsp + 0x48], rbx
lea rdx, [rsp + 0x48]
xor ecx, ecx
call fcn.18003a350
mov r9, rbx
xor r8d, r8d
xor edx, edx
mov ecx, 0xbf
mov esi, eax
call fcn.18001e6a0
mov r9, qword [r12]
xor r8d, r8d
xor edx, edx
mov ecx, 0xbf
mov rdi, rax
call fcn.18001e6a0
mov ecx, 2
mov rbx, rax
call fcn.180066670
mov rcx, rax
mov qword [rsp + 0x28], rdi
xor r9d, r9d
mov qword [rsp + 0x20], rbx
lea r8, [0x180096248]
lea rdx, str.DEBUG__s:_d:_._tbltrim___s____s_n
call fcn.1800010d0
mov rcx, qword [rbp + 0x160]
jmp 0x18003f06c
mov rcx, rdi
call fcn.18006c3d8
mov dword [rsp + 0x78], r14d
jmp 0x18003fd35
mov ebx, dword [rsp + 0x44]
test ebx, ebx
jne 0x18003f18d
mov r8, qword [rbp - 0x38]
xor r9d, r9d
mov qword [rsp + 0x28], r13
xor edx, edx
mov rcx, r12
mov dword [rsp + 0x20], 0x141
call fcn.180027fb0
test eax, eax
mov eax, 1
cmovs ebx, eax
mov dword [rsp + 0x44], ebx
mov rdx, r13
mov dword [r13 + 8], r14d
mov ecx, 0xf9
call fcn.180022830
jmp 0x18003fd30
mov dword [rsp + 0x68], r14d
test rdx, rdx
jle 0x18003f21c
mov rdi, r14
mov rbx, r10
mov r15d, edi
mov rsi, rdx
nop dword [rax]
mov rax, qword [r12 + 0x60]
cmp dword [rdi + rax], 1
je 0x18003f201
xor r8d, r8d
movsxd rax, r15d
mov qword [rsp + 0x48], rax
lea rcx, [rsp + 0x48]
lea rax, [rsp + 0x50]
mov dword [rbx], r15d
mov r9, r12
mov dword [rsp + 0x50], r14d
lea edx, [r8 + 0x64]
mov qword [rsp + 0x20], rax
call fcn.180053560
mov qword [rbx + 8], rax
add rbx, 0x10
inc r15d
add rdi, 0x40
sub rsi, 1
jne 0x18003f1c0
mov rbx, qword [rsp + 0x58]
mov dword [rsp + 0x68], r15d
mov r15, qword [rbp - 0x28]
mov edi, 1
mov dword [rsp + 0x50], r14d
lea r9, [rsp + 0x50]
mov dword [rsp + 0x60], edi
lea r8, [rsp + 0x60]
mov edx, 0xe5
mov rcx, r12
call fcn.180032a10
test eax, eax
je 0x18003f25d
movsxd rdx, dword [rbp - 0x80]
lea r9, [0x1800413e0]
mov rcx, qword [rbp - 0x48]
lea r8d, [rdi + 0xf]
call fcn.18006a7b0
lea r9, [rsp + 0x50]
mov dword [rsp + 0x50], r14d
lea r8, [rsp + 0x60]
mov dword [rsp + 0x60], edi
mov edx, 0xe5
mov rcx, r12
call fcn.180032a10
cmp eax, edi
jne 0x18003f2b3
lea r9, [rsp + 0x50]
mov dword [rsp + 0x50], 8
lea r8, [rsp + 0x60]
mov dword [rsp + 0x60], edi
mov edx, 0xe5
mov rcx, r12
call fcn.180032a10
test eax, eax
jne 0x18003f2b3
mov r11d, edi
mov dword [rbp - 0x4c], edi
jmp 0x18003fd3b
mov dword [rbp - 0x4c], r14d
mov r11d, edi
jmp 0x18003fd3b
mov dword [rsp + 0x78], r9d
jmp case.0x18003efc2.166
mov rax, qword [r12]
lea r9, [rsp + 0x48]
xor edx, edx
mov qword [rsp + 0x48], rax
xor ecx, ecx
mov r8d, 0xea
call fcn.180003f40
xor r8d, r8d
mov qword [rsp + 0x58], rax
lea rdx, [rsp + 0x48]
mov qword [rsp + 0x48], rax
mov ecx, 0xbf
mov rbx, rax
call fcn.18001ca20
mov r9, rbx
xor r8d, r8d
xor edx, edx
mov ecx, 0xbf
mov rsi, rax
call fcn.18001e6a0
mov r9, qword [r12]
xor r8d, r8d
xor edx, edx
mov ecx, 0xbf
mov rdi, rax
call fcn.18001e6a0
mov ecx, 2
mov rbx, rax
call fcn.180066670
mov rcx, rax
mov qword [rsp + 0x28], rdi
xor r9d, r9d
mov qword [rsp + 0x20], rbx
lea r8, [0x180096248]
lea rdx, str._Z23convert_double2_sat_rtpDv2_d
call fcn.1800010d0
mov rcx, qword [rbp + 0x140]
lea r9, [rsp + 0x48]
mov rbx, qword [rsp + 0x58]
mov qword [rsp + 0x70], rbx
mov rax, qword [rcx]
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x48], rax
call fcn.18002fa20
test eax, eax
mov ecx, r14d
mov eax, r14d
mov r11d, 1
sete cl
test esi, esi
setne al
add eax, dword [rsp + 0x40]
lea r9d, [rax + rcx]
mov dword [rsp + 0x40], r9d
jmp 0x18003fd40
cmp dword [rbp - 0x80], 0
mov dword [rsp + 0x44], r14d
mov dword [rsp + 0x50], r14d
jle case.0x18003efc2.166
movsxd rsi, r8d
mov rcx, r10
mov qword [rsp + 0x48], rsi
mov rdi, r14
mov qword [rsp + 0x70], rcx
nop word [rax + rax]
mov eax, 0x10d
mov dword [rsp + 0x60], eax
nop dword [rax]
sub eax, 0x10d
je 0x18003fa85
sub eax, 0x68
je 0x18003f686
sub eax, 0x68
je 0x18003f60a
sub eax, 0x68
je 0x18003f432
cmp eax, 0x68
jne 0x18003fac6
xor r9d, r9d
lea edx, [rax - 0x48]
xor r8d, r8d
lea rcx, [rbp + 0x50]
call fcn.180032a10
jmp 0x18003fac1
mov rcx, qword [rbp - 0x38]
call fcn.180065fa4
cmp dword [rbp - 0x70], 0
mov rcx, qword [r13]
mov dword [rdi + rcx + 0x24], eax
je 0x18003f5a3
mov ebx, 0xd8
mov eax, ebx
sub eax, 0xd8
je 0x18003f58b
sub eax, 0x3a
je 0x18003f49d
sub eax, 0x3a
je 0x18003f48d
cmp eax, 0x3a
jne 0x18003f58f
mov rcx, qword [r13]
mov eax, dword [rbp + 0x68]
mov dword [rdi + rcx + 0x18], eax
mov rcx, qword [r13]
mov eax, dword [rbp + 0x60]
mov dword [rdi + rcx + 0x10], eax
jmp 0x18003f58f
mov rcx, qword [r13]
mov eax, dword [rbp + 0x64]
mov dword [rdi + rcx + 0x14], eax
jmp 0x18003f58f
mov r9, qword [r12 + 0x60]
mov rcx, rsi
shl rcx, 6
mov eax, dword [rcx + r9]
sub eax, 2
cmp eax, 1
jbe 0x18003f519
mov qword [rsp + 0x38], r14
lea rax, [rbp - 0x10]
mov qword [rsp + 0x30], r12
lea r9, [rbp + 0xd0]
mov qword [rsp + 0x28], rax
lea rdx, [rbp + 0xd8]
mov r8d, 0x61
mov qword [rsp + 0x20], r12
lea rcx, [rbp + 0x40]
mov qword [rbp + 0xd0], 0xffffffffffffffff
mov qword [rbp + 0xd8], r14
mov dword [rbp - 0x10], 8
mov qword [rbp + 0x40], rsi
call fcn.18002aad0
mov qword [rbp - 0x30], rax
test rax, rax
je 0x18003fb76
mov r9, rax
jmp 0x18003f52c
mov rax, qword [rbp - 0x30]
test rax, rax
je 0x18003f527
mov r9, rax
jmp 0x18003f52c
mov r9, qword [rcx + r9 + 8]
mov rcx, qword [rbp - 0x38]
lea rax, [rbp + 0x50]
mov r8, r12
mov qword [rsp + 0x20], rax
mov edx, 0x45
call fcn.180015290
test eax, eax
mov rax, qword [rbp - 0x30]
js 0x18003fb0c
test rax, rax
je 0x18003f56e
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
xor edx, edx
mov ecx, VarUI2FromUI1
call fcn.1800523d0
mov rcx, qword [r13]
mov rax, qword [rbp + 0x58]
mov qword [rdi + rcx + 8], rax
mov rcx, qword [r13]
mov eax, dword [rbp + 0xa4]
mov dword [rdi + rcx + 0x54], eax
jmp 0x18003f58f
mov qword [rbp - 0x30], r14
add ebx, 0x3a
cmp ebx, 0x1c0
jb 0x18003f452
jmp 0x18003fac1
mov r9, qword [rbp - 0x38]
lea rbx, [r12 + 0x18]
mov eax, 1
mov qword [rsp + 0x20], rbx
lea r8, [rbp - 0x60]
mov dword [rbp - 0x60], eax
mov edx, 0xc1
lea rcx, [rbp + 0x50]
call fcn.180051180
test eax, eax
js 0x18003fb76
mov rax, qword [r13]
lea r9, [rbp - 8]
mov rdx, qword [rbp - 0x38]
mov r8, rbx
mov ecx, dword [rdi + rax + 0x14]
mov rax, qword [r12 + 8]
mov dword [rbp - 8], ecx
mov ecx, 0xf6
mov qword [rsp + 0x20], rax
call fcn.1800523d0
test eax, eax
js 0x18003fb76
jmp 0x18003fac1
mov rdx, qword [r13]
lea rcx, [rbp]
xor r9d, r9d
mov rbx, rsi
shl rbx, 7
lea r8d, [r9 + 0xc]
movzx eax, word [rbx + rdx + 0x68]
mov dword [rbp], eax
mov rdx, qword [rbx + rdx + 0x60]
call fcn.18003b760
cmp r15d, 2
jne 0x18003f63f
cmp eax, 1
je 0x18003f64a
jmp 0x18003f645
cmp r15d, 1
jne 0x18003f668
cmp eax, 2
jne 0x18003f668
movzx ecx, word [rbp + 0x54]
mov eax, 0x800
or cx, ax
mov word [rbp + 0x54], cx
mov rax, qword [r13]
mov word [rbx + rax + 4], cx
jmp 0x18003fac1
movzx ecx, word [rbp + 0x54]
mov eax, 0xf7ff
and cx, ax
mov word [rbp + 0x54], cx
mov rax, qword [r13]
mov word [rbx + rax + 4], cx
jmp 0x18003fac1
cmp dword [rbp - 0x70], 0
je 0x18003f80d
mov r15, qword [rsp + 0x48]
mov esi, 0x103
nop word [rax + rax]
mov eax, esi
sub eax, 0x101
je 0x18003f798
sub eax, 1
je 0x18003f718
cmp eax, 1
jne 0x18003f7f1
xor edx, edx
lea rcx, [rbp + 0x50]
mov r8d, 0x121
call fcn.180019dd0
mov eax, 1
mov dword [rbp - 0x60], r14d
lea r9, [rbp - 0x60]
mov dword [rbp - 0x68], eax
lea r8, [rbp - 0x68]
mov edx, 0xe5
mov rcx, r12
call fcn.180032a10
test eax, eax
je 0x18003f7f1
mov dword [rsp + 0x28], 0xe8
lea rcx, [rbp + 0x50]
xor r9d, r9d
mov qword [rsp + 0x20], r14
xor r8d, r8d
xor edx, edx
call fcn.180027790
jmp 0x18003f7f1
mov rcx, qword [r12 + 0x60]
mov rax, r15
shl rax, 6
test byte [rax + rcx + 0x10], 1
je 0x18003f73c
mov eax, dword [rax + rcx + 0x14]
or dword [rbp + 0xa0], 1
mov dword [rbp + 0xa4], eax
movaps xmm0, xmmword [rbp + 0x50]
mov rax, qword [r13]
movups xmmword [rdi + rax], xmm0
movaps xmm1, xmmword [rbp + 0x60]
movups xmmword [rdi + rax + 0x10], xmm1
movaps xmm0, xmmword [rbp + 0x70]
movups xmmword [rdi + rax + 0x20], xmm0
movaps xmm1, xmmword [rbp + 0x80]
movups xmmword [rdi + rax + 0x30], xmm1
movaps xmm0, xmmword [rbp + 0x90]
movups xmmword [rdi + rax + 0x40], xmm0
movaps xmm1, xmmword [rbp + 0xa0]
movups xmmword [rdi + rax + 0x50], xmm1
movaps xmm0, xmmword [rbp + 0xb0]
movups xmmword [rdi + rax + 0x60], xmm0
movaps xmm1, xmmword [rbp + 0xc0]
movups xmmword [rdi + rax + 0x70], xmm1
jmp 0x18003f7f1
mov rax, qword [r12 + 0x60]
mov rcx, r15
shl rcx, 6
test byte [rcx + rax + 0x10], 2
jne 0x18003f7f1
mov rax, qword [r12 + 0x38]
mov rbx, r15
shl rbx, 7
mov rcx, qword [rax]
mov rcx, qword [rcx + rbx + 0x58]
call fcn.180071c48
mov qword [rbp + 0xa8], rax
mov rax, qword [r12 + 0x38]
mov rcx, qword [r13]
mov rax, qword [rax]
mov rax, qword [rax + rbx + 0x58]
mov qword [rdi + rcx + 0x58], rax
or dword [rbp + 0xa0], 2
mov rax, qword [r13]
or dword [rdi + rax + 0x50], 2
dec esi
cmp esi, reloc.OLEAUT32.dll_VarUI2FromUI1
ja 0x18003f6a0
mov r15, qword [rbp - 0x28]
mov rsi, qword [rsp + 0x48]
jmp 0x18003f93e
mov rax, qword [r12 + 0x38]
mov rbx, rsi
shl rbx, 7
xor r8d, r8d
mov rcx, qword [rax]
mov edx, dword [rcx + rbx + 0x24]
mov rcx, qword [r12 + 8]
call fcn.180067298
test eax, eax
jne 0x18003fb4d
mov r9, qword [r12 + 8]
lea r8, [r12 + 0x18]
mov eax, 1
lea rdx, [rbp - 0x68]
mov dword [rbp - 0x68], eax
xor ecx, ecx
lea rax, [rbp + 0x50]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0xcc
mov qword [rsp + 0x20], r14
call fcn.180006e80
test eax, eax
jne 0x18003fb76
mov rax, qword [r12 + 0x38]
mov rcx, qword [rax]
mov rax, qword [r13]
movups xmm0, xmmword [rcx + rbx]
movups xmmword [rdi + rax], xmm0
movups xmm1, xmmword [rcx + rbx + 0x10]
movups xmmword [rdi + rax + 0x10], xmm1
movups xmm0, xmmword [rcx + rbx + 0x20]
movups xmmword [rdi + rax + 0x20], xmm0
movups xmm1, xmmword [rcx + rbx + 0x30]
movups xmmword [rdi + rax + 0x30], xmm1
movups xmm0, xmmword [rcx + rbx + 0x40]
movups xmmword [rdi + rax + 0x40], xmm0
movups xmm1, xmmword [rcx + rbx + 0x50]
movups xmmword [rdi + rax + 0x50], xmm1
movups xmm0, xmmword [rcx + rbx + 0x60]
movups xmmword [rdi + rax + 0x60], xmm0
movups xmm1, xmmword [rcx + rbx + 0x70]
movups xmmword [rdi + rax + 0x70], xmm1
test byte [rbp + 0x54], 8
je 0x18003f93e
mov r9d, 0x53
mov r14d, 0xfff7
nop dword [rax]
mov eax, r9d
sub eax, 0x51
je 0x18003f928
sub eax, 1
je 0x18003f921
cmp eax, 1
jne 0x18003f932
mov rdx, qword [r12 + 0x38]
mov r8, rsi
shl r8, 7
mov rax, qword [rdx]
mov ecx, dword [r8 + rax + 0x10]
mov dword [rbp + 0x60], ecx
mov rax, qword [rdx]
mov ecx, dword [r8 + rax + 0x14]
mov dword [rbp + 0x64], ecx
mov rax, qword [rdx]
mov ecx, dword [r8 + rax + 0x18]
mov dword [rbp + 0x68], ecx
jmp 0x18003f932
and word [rbp + 0x54], r14w
jmp 0x18003f932
mov rax, qword [r13]
and word [rdi + rax + 4], r14w
dec r9d
cmp r9d, 0x50
ja 0x18003f8e0
xor r14d, r14d
mov rax, qword [r12 + 0x60]
mov rbx, rsi
shl rbx, 6
test byte [rax + rbx + 0x10], 2
je 0x18003f994
mov rcx, qword [rbp + 0xa8]
call fcn.18006c3d8
mov rcx, qword [r12 + 0x60]
mov rcx, qword [rcx + rbx + 0x18]
call fcn.180071c48
mov qword [rbp + 0xa8], rax
test rax, rax
je 0x18003fb76
mov rax, qword [r12 + 0x60]
mov rcx, qword [r13]
mov rax, qword [rax + rbx + 0x18]
mov qword [rdi + rcx + 0x58], rax
mov rax, qword [r12 + 0x60]
test byte [rax + rbx + 0x10], 8
je 0x18003f9fd
mov rcx, qword [rbp + 0xc0]
call fcn.18006c3d8
mov rax, qword [r12 + 0x60]
movzx ecx, word [rax + rbx + 0x38]
test cx, cx
je 0x18003f9ea
call fcn.18006cfe0
mov qword [rbp + 0xc0], rax
test rax, rax
je 0x18003fb76
mov rdx, qword [r12 + 0x60]
mov rcx, rax
movzx r8d, word [rdx + rbx + 0x38]
mov rdx, qword [rdx + rbx + 0x30]
call fcn.180063330
mov rax, qword [r12 + 0x60]
jmp 0x18003f9f1
mov qword [rbp + 0xc0], r14
movzx eax, word [rax + rbx + 0x38]
mov word [rbp + 0xc8], ax
mov eax, 1
mov dword [rbp - 0x68], r14d
lea r9, [rbp - 0x68]
mov dword [rbp - 0x60], eax
lea r8, [rbp - 0x60]
mov edx, 0xe5
mov rcx, r12
call fcn.180032a10
test eax, eax
jne 0x18003fa4f
mov rax, qword [r12 + 0x60]
test byte [rax + rbx + 0x10], 4
je 0x18003fa4f
mov rax, qword [rax + rbx + 0x20]
mov rcx, qword [r13]
mov qword [rdi + rcx + 0x60], rax
mov rax, qword [r12 + 0x60]
mov rcx, qword [r13]
movzx eax, word [rax + rbx + 0x28]
mov word [rdi + rcx + 0x68], ax
mov rdx, qword [rbp + 0xa8]
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [rdx + rax], 0
jne 0x18003fa60
xor r9d, r9d
mov dword [rbp + 8], eax
lea rcx, [rbp + 8]
lea r8d, [r9 + 0xc]
call fcn.18003b760
mov r15, rax
mov qword [rbp - 0x28], rax
jmp 0x18003fac1
movsxd r8, dword [rcx]
mov rdx, qword [r12 + 0x60]
mov rcx, r8
shl rcx, 6
mov rsi, r8
mov dword [rsp + 0x68], r8d
mov qword [rsp + 0x48], r8
mov eax, dword [rcx + rdx]
sub eax, 2
cmp eax, 1
jbe 0x18003fabd
cmp dword [rbp - 0x4c], 0
jne 0x18003fabd
test byte [rcx + rdx + 0x10], 1
mov dword [rbp - 0x70], r14d
je 0x18003fac1
mov dword [rbp - 0x70], r11d
mov rcx, qword [rsp + 0x70]
mov eax, dword [rsp + 0x60]
mov r11d, 1
add eax, 0x68
mov dword [rsp + 0x60], eax
cmp eax, 0x315
jb 0x18003f3f0
mov edx, dword [rsp + 0x50]
add rcx, 0x10
inc edx
mov qword [rsp + 0x70], rcx
sub rdi, 0xffffffffffffff80
mov dword [rsp + 0x50], edx
cmp edx, dword [rbp - 0x80]
jl 0x18003f3e0
mov rbx, qword [rsp + 0x58]
jmp 0x18003fd3b
mov dword [rsp + 0x44], 1
test rax, rax
je 0x18003fb30
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
xor edx, edx
mov ecx, VarUI2FromUI1
call fcn.1800523d0
mov rbx, qword [rsp + 0x58]
mov rcx, qword [rbp - 0x48]
mov dword [rbp + 0x158], 0xf6
call fcn.18006c3d8
jmp 0x18003fd35
call fcn.18006be3c
mov r9d, 0x112
lea r8, [rbp + 0x10]
lea rdx, [rbp + 0x18]
mov ecx, dword [rax]
mov dword [rbp + 0x18], ecx
lea rcx, [r12 + 0x18]
mov dword [rbp + 0x10], 4
call fcn.18002d330
mov dword [rsp + 0x44], 1
jmp 0x18003fb30
cmp dword [rsp + 0x44], 0
je 0x18003fbe2
mov ebx, 0x108
nop dword [rax]
mov eax, ebx
sub eax, 0x108
je 0x18003fba4
cmp eax, 1
je case.0x18003efc2.154
jmp 0x18003fbd8
xor r9d, r9d
lea rcx, [rbp + 0x50]
xor r8d, r8d
lea edx, [r9 + 0x20]
call fcn.180032a10
mov rcx, qword [rbp - 0x38]
call fcn.180066798
mov rcx, rdi
call fcn.180066bf4
mov rcx, rdi
call fcn.18006c3d8
mov dword [rsp + 0x78], 0xffffffff
inc ebx
cmp ebx, 0x10a
jb 0x18003fb90
mov rcx, qword [rbp - 0x38]
call fcn.180066798
test eax, eax
je 0x18003fc64
mov ebx, 0xf7
nop dword [rax]
nop dword [rax + rax]
mov eax, ebx
sub eax, 0xf5
je case.0x18003efc2.154
sub eax, 1
je 0x18003fc52
cmp eax, 1
jne 0x18003fc5a
call fcn.18006be3c
mov r9d, 0x112
lea r8, [rbp + 0x20]
lea rdx, [rbp + 0x28]
mov ecx, dword [rax]
mov dword [rbp + 0x28], ecx
lea rcx, [r12 + 0x18]
mov dword [rbp + 0x20], 3
call fcn.18002d330
mov rcx, rdi
call fcn.180066bf4
mov rcx, rdi
call fcn.18006c3d8
jmp 0x18003fc5a
mov dword [rsp + 0x78], 0xffffffff
dec ebx
cmp ebx, 0xf4
ja 0x18003fc00
mov rcx, qword [r12 + 8]
test rcx, rcx
je 0x18003fc84
call fcn.180066798
mov eax, 1
mov qword [r12 + 8], r14
mov esi, eax
mov dword [rbp - 0x50], eax
jmp 0x18003fc87
mov esi, dword [rbp - 0x50]
mov rdx, qword [r12]
mov rcx, rdi
call fcn.18006af34
test eax, eax
je 0x18003fd18
mov ebx, 0xd2
mov eax, ebx
sub eax, 0xd2
je 0x18003fcb4
cmp eax, 1
je case.0x18003efc2.154
jmp 0x18003fd0e
call fcn.18006be3c
mov r9d, 0x112
lea r8, [rbp + 0x30]
lea rdx, [rbp + 0x38]
mov ecx, dword [rax]
mov dword [rbp + 0x38], ecx
lea rcx, [r12 + 0x18]
mov dword [rbp + 0x30], 2
call fcn.18002d330
mov rcx, rdi
call fcn.180066bf4
mov rcx, rdi
call fcn.18006c3d8
test esi, esi
je 0x18003fd06
mov rcx, qword [r12]
lea rdx, [0x18009844c]
call fcn.180066544
mov qword [r12 + 8], rax
mov dword [rsp + 0x78], 0xffffffff
inc ebx
cmp ebx, 0xd4
jb 0x18003fca0
xor r9d, r9d
mov qword [rsp + 0x20], r14
mov r8d, 0xc4
mov rdx, r12
xor ecx, ecx
call fcn.18002e1e0
mov rbx, qword [rsp + 0x58]
mov r11d, 1
mov r9d, dword [rsp + 0x40]
mov rdx, qword [rbp - 0x58]
mov eax, dword [rbp + 0x158]
lea rsi, [0x180000000]
mov r8d, dword [rsp + 0x68]
dec eax
mov rdi, qword [rbp - 0x20]
mov r10, qword [rbp - 0x48]
mov dword [rbp + 0x158], eax
cmp eax, dword [rbp - 0x18]
ja 0x18003efa2
mov rax, qword [rsp + 0x78]
lea r11, [rsp + 0x200]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret