Function at 0x18001e510
Capabilities:
Check if file exists
Print debug messages
Read file on windows
Reference http user-agent string

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x4f0
lea rbp, [rsp + 0x40]
mov qword [rbp + 0x78], 0xfffffffffffffffe
mov qword [rbp + 0x500], rbx
mov rax, qword [0x1800ba0e0]
xor rax, rbp
mov qword [rbp + 0x4a0], rax
mov r12, rdx
mov qword [rbp + 8], rdx
mov qword [rbp + 0x10], rcx
mov rax, qword [rdx]
movups xmm2, xmmword [rax + 0x78]
movsd xmm1, qword [rax + 0x88]
movsd qword [rbp + 0x220], xmm1
psrldq xmm2, 8
movq rax, xmm2
mov rbx, qword [rax + 8]
test rbx, rbx
jne 0x18001e595
xor esi, esi
mov eax, esi
or r14, 0xffffffffffffffff
movabs r13, 0xffffffffffffff0
lea r15d, [rbx + 3]
jmp 0x18001e603
or r14, 0xffffffffffffffff
mov rax, r14
nop dword [rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x18001e5a0
inc eax
movabs r13, 0xffffffffffffff0
cmp eax, 0x3fffffff
jle 0x18001e5c7
xor esi, esi
mov eax, esi
lea r15d, [rsi + 3]
jmp 0x18001e603
lea r8d, [rax + rax]
cdqe
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x18001e5dc
mov rcx, r13
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.18004b970
sub rsp, rcx
lea rcx, [rsp + 0x40]
mov r15d, 3
mov r9d, r15d
mov rdx, rbx
call fcn.18001d510
xor esi, esi
mov qword [rbp + 0x228], SafeArrayGetLBound
mov qword [rbp + 0x220], rsi
mov byte [rbp + 0x210], 0
cmp byte [rax], 0
jne 0x18001e626
mov r8, rsi
jmp 0x18001e63a
mov r8, r14
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x18001e630
mov rdx, rax
lea rcx, [rbp + 0x210]
call fcn.1800025c0
lea rcx, [rbp + 0x210]
call fcn.18003d210
test al, al
je 0x18001f512
mov qword [rbp + 0x310], SafeArrayGetLBound
mov qword [rbp + 0x308], rsi
mov byte [rbp + 0x2f8], 0
mov r8, r15
lea rdx, [0x180088410]
lea rcx, [rbp + 0x2f8]
call fcn.1800025c0
nop
test rbx, rbx
jne 0x18001e697
mov rax, rsi
jmp 0x18001e6ec
mov rax, r14
nop word [rax + rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x18001e6a0
inc eax
cmp eax, 0x3fffffff
jle 0x18001e6b8
mov rax, rsi
jmp 0x18001e6ec
lea r8d, [rax + rax]
cdqe
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x18001e6cd
mov rcx, r13
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.18004b970
sub rsp, rcx
lea rcx, [rsp + 0x40]
mov r9d, r15d
mov rdx, rbx
call fcn.18001d510
mov qword [rbp + 0x350], SafeArrayGetLBound
mov qword [rbp + 0x348], rsi
mov byte [rbp + 0x338], 0
cmp byte [rax], 0
jne 0x18001e70f
mov r8, rsi
jmp 0x18001e71c
mov r8, r14
inc r8
cmp byte [rax + r8], 0
jne 0x18001e712
mov rdx, rax
lea rcx, [rbp + 0x338]
call fcn.1800025c0
nop
mov qword [rbp + 0x2f0], SafeArrayGetLBound
mov qword [rbp + 0x2e8], rsi
mov byte [rbp + 0x2d8], 0
mov qword [rbp + 0x200], SafeArrayGetLBound
mov qword [rbp + 0x1f8], rsi
mov byte [rbp + 0x1e8], 0
mov qword [rbp + 0x330], SafeArrayGetLBound
mov qword [rbp + 0x328], rsi
mov byte [rbp + 0x318], 0
mov r8d, 8
lea rdx, str.iexplore
lea rcx, [rbp + 0x318]
call fcn.1800025c0
nop
xor dil, dil
mov byte [rbp], dil
mov r8d, 0x4c
lea rdx, str.User_Agent:_Mozilla_5.0__compatible__MSIE_9.0__Windows_NT_6.1__Trident_5.0_r_n
lea rcx, [rbp + 0x2d8]
call fcn.1800025c0
mov r8d, 2
lea rdx, [0x180088480]
lea rcx, [rbp + 0x2d8]
call fcn.180003310
mov rax, qword [r12]
movups xmm2, xmmword [rax + 0x30]
movsd xmm1, qword [rax + 0x40]
movsd qword [rbp + 0x220], xmm1
psrldq xmm2, 8
movq rbx, xmm2
mov rax, qword [rbx + 8]
cmp word [rax], 0
je 0x18001ef2a
mov r8d, 4
lea rdx, [0x180088484]
lea rcx, [rbp + 0x2f8]
call fcn.1800025c0
mov qword [rbp + 0x1b0], rsi
mov rax, qword [rbx + 8]
mov rbx, qword [rax + 8]
lea rdx, [rbp + 0x1b0]
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SafeArrayUnaccessData]
lea r8, [rbp + 0x234]
mov edx, 1
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SafeArrayLock]
lea r8, [rbp + 0x230]
mov edx, 1
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SafeArrayGetLBound]
mov eax, dword [rbp + 0x230]
sub eax, dword [rbp + 0x234]
inc eax
movsxd rdx, eax
mov rax, qword [rbp + 0x1f8]
cmp rdx, rax
ja 0x18001e89a
mov qword [rbp + 0x1f8], rdx
lea rax, [rbp + 0x1e8]
cmp qword [rbp + 0x200], 0x10
cmovae rax, qword [rbp + 0x1e8]
mov byte [rdx + rax], dil
jmp 0x18001e8ac
sub rdx, rax
xor r8d, r8d
lea rcx, [rbp + 0x1e8]
call fcn.180003460
lea rcx, [rbp + 0x1e8]
cmp qword [rbp + 0x200], 0x10
cmovae rcx, qword [rbp + 0x1e8]
mov eax, dword [rbp + 0x230]
sub eax, dword [rbp + 0x234]
inc eax
movsxd r8, eax
mov rdx, qword [rbp + 0x1b0]
call fcn.1800525f0
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SafeArrayGetElement]
mov rax, qword [r12]
movups xmm2, xmmword [rax + 0x90]
movups xmmword [rbp + 0x1c0], xmm2
movsd xmm1, qword [rax + 0xa0]
movsd qword [rbp + 0x1d0], xmm1
mov rcx, rsi
mov qword [rbp + 0x1e0], rcx
movd eax, xmm2
cmp ax, 9
jne 0x18001e988
mov rcx, qword [rbp + 0x1c8]
mov rax, qword [rcx]
lea r8, [rbp + 0x1e0]
lea rdx, [0x18008f0b0]
call qword [rax]
mov rcx, qword [rbp + 0x1e0]
test eax, eax
jns 0x18001e988
mov rbx, qword [rbp + 0x10]
mov rbx, qword [rbx + 0x58]
cmp rcx, rbx
je 0x18001e988
test rbx, rbx
je 0x18001e966
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rbp + 0x1e0]
mov rax, rcx
mov rcx, rbx
mov qword [rbp + 0x1e0], rbx
test rax, rax
je 0x18001e988
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + select]
mov rcx, qword [rbp + 0x1e0]
mov qword [rbp + 0x268], rsi
mov rax, qword [rcx]
lea rdx, [rbp + 0x268]
call qword [rax + 0x90]
test eax, eax
js 0x18001ef05
mov qword [rbp + 0x1b8], rsi
mov rcx, qword [rbp + 0x268]
mov rax, qword [rcx]
lea rdx, [rbp + 0x1b8]
call qword [rax + 0x40]
test eax, eax
js 0x18001eef2
mov rcx, qword [rbp + 0x1b8]
mov rax, qword [rcx]
lea rdx, [rbp + 0x238]
call qword [rax + 0x48]
test eax, eax
jne 0x18001eef2
mov r12d, esi
cmp dword [rbp + 0x238], eax
jle 0x18001eeee
nop word [rax + rax]
mov qword [rbp + 0x250], rsi
xor eax, eax
mov qword [rbp + 0x190], rax
mov qword [rbp + 0x198], rax
mov qword [rbp + 0x1a0], rax
lea rcx, [rbp + 0x190]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
movups xmm0, xmmword [rbp + 0x190]
movaps xmmword [rbp + 0x270], xmm0
movsd xmm1, qword [rbp + 0x1a0]
movsd qword [rbp + 0x280], xmm1
mov word [rbp + 0x1c0], r15w
mov dword [rbp + 0x1c8], r12d
movups xmm0, xmmword [rbp + 0x1c0]
movaps xmmword [rbp + 0x210], xmm0
movsd xmm1, qword [rbp + 0x1d0]
movsd qword [rbp + 0x220], xmm1
mov rcx, qword [rbp + 0x1b8]
mov rax, qword [rcx]
lea r9, [rbp + 0x250]
lea r8, [rbp + 0x270]
lea rdx, [rbp + 0x210]
call qword [rax + 0x58]
mov ebx, eax
lea rcx, [rbp + 0x1c0]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rbp + 0x190]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
test ebx, ebx
jne 0x18001eea8
mov qword [rbp + 0x260], rsi
mov rcx, qword [rbp + 0x250]
mov rax, qword [rcx]
lea r8, [rbp + 0x260]
lea rdx, [0x18008f0e0]
call qword [rax]
test eax, eax
jne 0x18001ee95
mov qword [rbp + 0x248], rsi
mov rcx, qword [rbp + 0x260]
mov rax, qword [rcx]
lea rdx, [rbp + 0x248]
call qword [rax + reloc.WS2_32.dll_WSASetLastError]
test eax, eax
jne 0x18001ee87
lea rcx, str.INPUT
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbx, rax
test rax, rax
je 0x18001eedf
xor r9d, r9d
mov r8d, 0x400
mov rdx, rax
mov rcx, qword [rbp + 0x248]
call sub.OLEAUT32.dll_VarR8Pow
cmp eax, 1
sete dil
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test dil, dil
jne 0x18001ebe5
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
mov r9d, r14d
lea r8, str.input
xor edx, edx
mov ecx, r15d
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, eax
lea edx, [rax - 1]
xor ecx, ecx
call qword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov rdi, rax
test rax, rax
je 0x18001ebad
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rax
mov r9d, r14d
lea r8, str.input
xor edx, edx
mov ecx, r15d
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp eax, ebx
jne 0x18001eecb
test rdi, rdi
je 0x18001eed4
xor r9d, r9d
mov r8d, 0x400
mov rdx, rdi
mov rcx, qword [rbp + 0x248]
call sub.OLEAUT32.dll_VarR8Pow
cmp eax, 1
sete bl
mov rcx, rdi
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test bl, bl
je 0x18001ee87
mov qword [rbp + 0x258], rsi
mov rcx, qword [rbp + 0x250]
mov rax, qword [rcx]
lea r8, [rbp + 0x258]
lea rdx, [0x18008f0f0]
call qword [rax]
test eax, eax
jne 0x18001ee66
lea rcx, str.IHTMLInputFileElement_success
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov qword [rbp + 0x240], rsi
mov rcx, qword [rbp + 0x258]
mov rax, qword [rcx]
lea rdx, [rbp + 0x240]
call qword [rax + 0xc8]
test eax, eax
jne 0x18001ee57
mov rcx, qword [rbp + 0x240]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [rbp + 0x240]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x18001ee57
mov rdx, qword [rbp + 0x240]
test rdx, rdx
jne 0x18001ec74
mov rax, rsi
jmp 0x18001ecc9
mov rax, r14
nop word [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x18001ec80
inc eax
cmp eax, 0x3fffffff
jle 0x18001ec98
mov rax, rsi
jmp 0x18001ecc9
lea r8d, [rax + rax]
cdqe
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x18001ecad
mov rcx, r13
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.18004b970
sub rsp, rcx
lea rcx, [rsp + 0x40]
mov r9d, r15d
call fcn.18001d510
lea rdx, [0x1800884f4]
mov rcx, rax
call fcn.18005d400
mov rdi, rax
test rax, rax
je 0x18001ee49
xor edx, edx
lea r8d, [rdx + 2]
mov rcx, rax
call fcn.18005d9c8
mov rcx, rdi
call fcn.18005deac
movsxd rbx, eax
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.18005d9c8
mov qword [rbp + 0x1d8], SafeArrayGetLBound
mov qword [rbp + 0x1d0], rsi
mov byte [rbp + 0x1c0], 0
test rbx, rbx
jne 0x18001ed38
mov qword [rbp + 0x1d0], rbx
mov byte [rbp + rbx + 0x1c0], bl
jmp 0x18001ed4a
xor r8d, r8d
mov rdx, rbx
lea rcx, [rbp + 0x1c0]
call fcn.180003460
lea rcx, [rbp + 0x1c0]
cmp qword [rbp + 0x1d8], 0x10
cmovae rcx, qword [rbp + 0x1c0]
mov r9, rdi
mov r8, rbx
mov edx, 1
call fcn.18005d68c
mov rcx, qword [rbp + 0x1d0]
add rcx, 2
movabs rax, 0xaaaaaaaaaaaaaaab
mul rcx
shr rdx, 1
shl edx, 2
mov qword [rbp + 0x1f8], rsi
lea rax, [rbp + 0x1e8]
cmp qword [rbp + 0x200], 0x10
cmovae rax, qword [rbp + 0x1e8]
mov byte [rax], 0
movsxd rdx, edx
mov rax, qword [rbp + 0x1f8]
cmp rdx, rax
ja 0x18001ede3
mov qword [rbp + 0x1f8], rdx
lea rax, [rbp + 0x1e8]
cmp qword [rbp + 0x200], 0x10
cmovae rax, qword [rbp + 0x1e8]
mov byte [rax + rdx], 0
jmp 0x18001edf5
sub rdx, rax
xor r8d, r8d
lea rcx, [rbp + 0x1e8]
call fcn.180003460
lea r8, [rbp + 0x1e8]
cmp qword [rbp + 0x200], 0x10
cmovae r8, qword [rbp + 0x1e8]
lea rcx, [rbp + 0x1c0]
cmp qword [rbp + 0x1d8], 0x10
cmovae rcx, qword [rbp + 0x1c0]
mov edx, dword [rbp + 0x1d0]
call fcn.180001ef0
mov byte [rbp], 1
mov rcx, rdi
call fcn.18005d2c4
nop
lea rcx, [rbp + 0x1c0]
call fcn.180002860
jmp 0x18001ee57
lea rcx, str.fopen_failed
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
nop
mov rcx, qword [rbp + 0x240]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x18001ee74
lea rcx, str.IHTMLInputFileElement_failed
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
nop
mov rcx, qword [rbp + 0x258]
test rcx, rcx
je 0x18001ee87
mov rax, qword [rcx]
call qword [rax + select]
nop
mov rcx, qword [rbp + 0x248]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rcx, qword [rbp + 0x260]
test rcx, rcx
je 0x18001eea8
mov rax, qword [rcx]
call qword [rax + select]
nop
mov rcx, qword [rbp + 0x250]
test rcx, rcx
je 0x18001eeba
mov rax, qword [rcx]
call qword [rax + select]
inc r12d
cmp r12d, dword [rbp + 0x238]
jge 0x18001eeea
jmp 0x18001ea00
mov rcx, rdi
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ecx, 0x8007000e
call fcn.180004930
int3
mov ecx, 0x8007000e
call fcn.180004930
nop
movzx edi, byte [rbp]
mov r12, qword [rbp + 8]
mov rcx, qword [rbp + 0x1b8]
test rcx, rcx
je 0x18001ef05
mov rax, qword [rcx]
call qword [rax + select]
nop
mov rcx, qword [rbp + 0x268]
test rcx, rcx
je 0x18001ef18
mov rax, qword [rcx]
call qword [rax + select]
nop
mov rcx, qword [rbp + 0x1e0]
test rcx, rcx
je 0x18001ef2a
mov rax, qword [rcx]
call qword [rax + select]
mov qword [rbp + 0x2d0], SafeArrayGetLBound
mov qword [rbp + 0x2c8], rsi
mov byte [rbp + 0x2b8], 0
lea rax, [rbp + 0x210]
mov qword [rbp + 8], rax
lea rax, [rbp + 0x270]
mov qword [rbp + 0x1b0], rax
lea rax, [rbp + 0x1c0]
mov qword [rbp + 0x268], rax
lea rax, [rbp + 0x190]
mov qword [rbp + 0x260], rax
mov qword [rbp + 0x228], SafeArrayGetLBound
mov qword [rbp + 0x220], rsi
mov byte [rbp + 0x210], 0
mov r9, r14
xor r8d, r8d
lea rdx, [rbp + 0x318]
lea rcx, [rbp + 0x210]
call fcn.180002490
nop
mov qword [rbp + 0x288], SafeArrayGetLBound
mov qword [rbp + 0x280], rsi
mov byte [rbp + 0x270], 0
mov r9, r14
xor r8d, r8d
lea rdx, [rbp + 0x1e8]
lea rcx, [rbp + 0x270]
call fcn.180002490
nop
mov qword [rbp + 0x1d8], SafeArrayGetLBound
mov qword [rbp + 0x1d0], rsi
mov byte [rbp + 0x1c0], 0
mov r9, r14
xor r8d, r8d
lea rdx, [rbp + 0x2d8]
lea rcx, [rbp + 0x1c0]
call fcn.180002490
nop
mov qword [rbp + 0x1a8], SafeArrayGetLBound
mov qword [rbp + 0x1a0], rsi
mov byte [rbp + 0x190], 0
mov r9, r14
xor r8d, r8d
lea rdx, [rbp + 0x338]
lea rcx, [rbp + 0x190]
call fcn.180002490
nop
mov qword [rbp + 0x30], SafeArrayGetLBound
mov qword [rbp + 0x28], rsi
mov byte [rbp + 0x18], 0
mov r9, r14
xor r8d, r8d
lea rdx, [rbp + 0x2f8]
lea rcx, [rbp + 0x18]
call fcn.180002490
nop
lea rax, [rbp + 0x2b8]
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x28], dil
lea rax, [rbp + 0x210]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x270]
lea r8, [rbp + 0x1c0]
lea rdx, [rbp + 0x190]
lea rcx, [rbp + 0x18]
call fcn.180045620
test al, al
je 0x18001f4b7
lea rdx, str.notify_ets_responseBody_is__s
lea rcx, [rbp + 0x80]
call fcn.180012ec0
nop
lea rdx, [rbp + 0x2b8]
mov rcx, rax
call fcn.18000c4d0
mov rdx, rax
lea rcx, [rbp + 0x270]
call fcn.180011920
nop
lea rcx, [rbp + 0x80]
call fcn.1800182b0
lea rcx, [rbp + 0x270]
cmp qword [rbp + 0x288], 0x10
cmovae rcx, qword [rbp + 0x270]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor edx, edx
mov r8d, 0xf8
lea rcx, [rbp + 0x3a0]
call fcn.180050fe0
mov r9d, 1
mov r8d, r15d
lea rdx, [rbp + 0x2b8]
lea rcx, [rbp + 0x3a0]
call fcn.180013750
nop
xor eax, eax
mov qword [rbp + 0x290], rax
mov qword [rbp + 0x298], rax
mov qword [rbp + 0x2a0], rax
mov qword [rbp + 0x2a8], rax
mov qword [rbp + 0x2b0], rax
lea rcx, [rbp + 0x290]
call fcn.1800134b0
nop
lea rdx, [rbp + 0x290]
lea rcx, [rbp + 0x3a0]
call fcn.180010f00
mov qword [rbp + 0x30], SafeArrayGetLBound
mov qword [rbp + 0x28], rsi
mov byte [rbp + 0x18], 0
mov r8d, 5
lea rdx, str.check
lea rcx, [rbp + 0x18]
call fcn.1800025c0
mov byte [rbp + 0x38], 0x2e
lea rax, [rbp + 0x18]
cmp qword [rbp + 0x30], 0x10
cmovae rax, qword [rbp + 0x18]
mov qword [rbp + 0x40], rax
lea r8, [rbp + 0x18]
lea rdx, [rbp + 0x378]
lea rcx, [rbp + 0x290]
call fcn.18000c750
nop
lea rcx, [rbp + 0x18]
call fcn.180002860
mov qword [rbp + 0x60], SafeArrayGetLBound
mov qword [rbp + 0x58], rsi
mov byte [rbp + 0x48], 0
mov r8d, 4
lea rdx, str.epid
lea rcx, [rbp + 0x48]
call fcn.1800025c0
mov byte [rbp + 0x68], 0x2e
lea rax, [rbp + 0x48]
cmp qword [rbp + 0x60], 0x10
cmovae rax, qword [rbp + 0x48]
mov qword [rbp + 0x70], rax
lea r8, [rbp + 0x48]
lea rdx, [rbp + 0x358]
lea rcx, [rbp + 0x290]
call fcn.18000c750
nop
lea rcx, [rbp + 0x48]
call fcn.180002860
lea rdx, str.block
lea rcx, [rbp + 0x378]
call fcn.180026450
test eax, eax
jne 0x18001f425
mov rax, qword [r12]
movups xmm2, xmmword [rax + 0x90]
movups xmmword [rbp + 0x210], xmm2
movsd xmm1, qword [rax + 0xa0]
movsd qword [rbp + 0x220], xmm1
mov qword [rbp + 0x1b8], rsi
movd eax, xmm2
cmp ax, 9
jne 0x18001f2ba
mov rcx, qword [rbp + 0x218]
mov rax, qword [rcx]
lea r8, [rbp + 0x1b8]
lea rdx, [0x18008f0b0]
call qword [rax]
test eax, eax
jns 0x18001f2ba
mov rdx, qword [rbp + 0x10]
add rdx, 0x58
lea rcx, [rbp + 0x1b8]
call fcn.180019f30
mov rax, qword [r12]
mov rcx, qword [rax + 8]
mov word [rcx], r14w
mov qword [rbp + 0x28], rsi
mov qword [rbp + 0x30], rsi
xor r8d, r8d
xor edx, edx
lea rcx, [rbp + 0x18]
call fcn.1800241d0
mov r9, r14
xor r8d, r8d
lea rdx, [rbp + 0x358]
lea rcx, [rbp + 0x18]
call fcn.180002490
lea rdx, [rbp + 0x18]
lea rcx, [rbp + 0x210]
call fcn.180044190
nop
lea rcx, [rbp + 0x1c0]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
lea rcx, [rbp + 0x190]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, 8
mov word [rbp + 0x190], ax
mov qword [rbp + 0x198], rsi
mov word [rbp + 0x1c0], ax
lea rdx, [rbp + 0x210]
cmp qword [rbp + 0x228], 0x10
cmovae rdx, qword [rbp + 0x210]
test rdx, rdx
je 0x18001f39d
inc r14
cmp byte [rdx + r14], 0
jne 0x18001f353
inc r14d
cmp r14d, 0x3fffffff
jg 0x18001f39d
movsxd rax, r14d
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x18001f37b
mov rcx, r13
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.18004b970
sub rsp, rcx
lea rcx, [rsp + 0x40]
mov r9d, r15d
mov r8d, r14d
call fcn.18001ce40
mov rsi, rax
mov rcx, rsi
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rbp + 0x1c8], rax
mov rcx, qword [rbp + 0x1b8]
mov rax, qword [rcx]
lea rdx, [rbp + 0x190]
mov qword [rsp + 0x28], rdx
lea rdx, [rbp + 0x190]
mov qword [rsp + 0x20], rdx
lea r9, [rbp + 0x190]
lea r8, [rbp + 0x190]
lea rdx, [rbp + 0x1c0]
call qword [rax + 0x1a0]
lea rcx, [rbp + 0x1c0]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
lea rcx, [rbp + 0x190]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rbp + 0x210]
call fcn.180002860
nop
mov rcx, qword [rbp + 0x1b8]
test rcx, rcx
je 0x18001f425
mov rax, qword [rcx]
call qword [rax + select]
nop
lea rcx, [rbp + 0x358]
call fcn.180002860
nop
lea rcx, [rbp + 0x378]
call fcn.180002860
nop
mov rbx, qword [rbp + 0x2b0]
test rbx, rbx
je 0x18001f473
lea rcx, [rbx + 0x11]
call fcn.180026e90
mov edx, 1
lea r8d, [rdx + 0x6f]
mov rcx, qword [rbx + 8]
call fcn.180020370
mov edx, 0x20
mov rcx, rbx
call fcn.18004b24c
lea rcx, [rbp + 0x290]
call fcn.180002860
nop
lea rcx, [rbp + 0x438]
call fcn.1800187f0
nop
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x438], rax
lea rcx, [rbp + 0x438]
call fcn.18004d2e0
nop
lea rcx, [rbp + 0x270]
call fcn.180002860
nop
jmp 0x18001f4c5
lea rcx, str.notify_ets_failed
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
nop
lea rcx, [rbp + 0x2b8]
call fcn.180002860
nop
lea rcx, [rbp + 0x318]
call fcn.180002860
nop
lea rcx, [rbp + 0x1e8]
call fcn.180002860
nop
lea rcx, [rbp + 0x2d8]
call fcn.180002860
nop
lea rcx, [rbp + 0x338]
call fcn.180002860
nop
lea rcx, [rbp + 0x2f8]
call fcn.180002860
mov rcx, qword [rbp + 0x4a0]
xor rcx, rbp
call fcn.18004b0f0
mov rbx, qword [rbp + 0x500]
lea rsp, [rbp + 0x4b0]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret