Function at 0x140008930
Capabilities:
Create thread
Initialize winhttp library
Prepare http request
Receive http response

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x818
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x780], xmm6
mov qword [rbp + 0x778], 0xfffffffffffffffe
stmxcsr dword [rbp + 0x30]
or dword [rbp + 0x30], 0x8040
ldmxcsr dword [rbp + 0x30]
lea rax, [0x14004c0a0]
mov qword [rbp + 0x5a0], rax
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp + 0x650], rax
mov dword [rbp + 0x64c], 0x98
mov qword [rbp + 0x5a8], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0x658], xmm0
mov dword [rbp + 0x668], 0x201
mov qword [rbp + 0x670], 6
movups xmmword [rbp + 0x678], xmm0
movups xmmword [rbp + 0x688], xmm0
mov ecx, 0x10
call fcn.1400140b4
mov rsi, rax
mov cl, 1
call fcn.140013840
mov rbx, rax
lea rax, [rbp + 0x5b0]
mov qword [rsi + 8], rbx
mov qword [rbp + 0x690], rsi
mov qword [rbp + 0x698], rax
mov qword [rbp + 0x6a0], 0
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
lea rcx, [rbp + 0x440]
xor edx, edx
call fcn.140013488
mov rsi, qword [0x14005a1c0]
mov rdi, qword [0x140058548]
test rdi, rdi
jne 0x140008a6b
lea rcx, [rbp + 0x30]
xor edx, edx
call fcn.140013488
cmp qword [0x140058548], 0
jne 0x140008a5b
movsxd rax, dword [0x140058530]
inc rax
mov dword [0x140058530], eax
mov qword [0x140058548], rax
lea rcx, [rbp + 0x30]
call fcn.1400134c4
mov rdi, qword [0x140058548]
cmp qword [rbx + 0x18], rdi
mov qword [rbp + 0x770], rbx
jbe 0x140008a89
mov rax, qword [rbx + 0x10]
mov r14, qword [rax + rdi*8]
test r14, r14
jne 0x140008b2f
cmp byte [rbx + 0x24], 0
je 0x140008aab
call fcn.140013934
cmp qword [rax + 0x18], rdi
jbe 0x140008aab
mov rax, qword [rax + 0x10]
mov r14, qword [rax + rdi*8]
test r14, r14
jne 0x140008b2f
mov r14, rsi
test rsi, rsi
jne 0x140008b2f
mov ecx, 0x30
call fcn.1400140b4
mov qword [rbp + 0x768], rax
mov rdx, qword [rbp + 0x770]
mov rax, qword [rdx + 0x28]
add rdx, 0x30
test rax, rax
cmovne rdx, rax
lea rcx, [rbp + 0x30]
call fcn.14000a640
mov rsi, qword [rbp + 0x768]
mov dword [rsi + 8], 0
lea rax, vtable.std::ctype_char_.0
mov qword [rsi], rax
mov rcx, rsi
add rcx, 0x10
call fcn.140013eb0
lea rcx, [rbp + 0x30]
call fcn.14000a7a0
mov rcx, rsi
call fcn.140013578
mov r14, qword [rbp + 0x768]
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 8]
mov qword [0x14005a1c0], r14
lea rcx, [rbp + 0x440]
call fcn.1400134c4
mov rax, qword [r14]
mov rcx, r14
mov dl, 0x20
call qword [rax + 0x40]
mov ebx, eax
mov rcx, qword [rbp + 0x770]
mov rax, qword [rcx]
call qword [rax + 0x10]
test rax, rax
je 0x140008b68
mov r8, qword [rax]
mov rcx, rax
mov edx, 1
call qword [r8]
mov byte [rbp + 0x6a8], bl
cmp qword [rbp + 0x698], 0
jne 0x140008b98
mov ecx, dword [rbp + 0x660]
mov eax, dword [rbp + 0x664]
and ecx, 0x13
or ecx, 4
mov dword [rbp + 0x660], ecx
and ecx, eax
jne 0x140009ff8
mov rax, qword [rbp + 0x5a0]
movsxd rax, dword [rax + 4]
lea rcx, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rax + 0x5a0], rcx
mov rax, qword [rbp + 0x5a0]
movsxd rax, dword [rax + 4]
lea ecx, [rax - 0xb0]
mov dword [rbp + rax + 0x59c], ecx
lea rax, vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
mov qword [rbp + 0x5b0], rax
mov ecx, 0x10
call fcn.1400140b4
mov rsi, rax
mov cl, 1
call fcn.140013840
mov qword [rsi + 8], rax
mov qword [rbp + 0x610], rsi
lea rcx, [rbp + 0x5b0]
lea rdi, [rcx + 8]
lea r14, [rcx + 0x10]
lea rbx, [rcx + 0x28]
lea r15, [rcx + 0x30]
lea r12, [rcx + 0x48]
lea r13, [rcx + 0x4c]
lea rax, vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
mov qword [rbp + 0x5b0], rax
mov byte [rbp + 0x62c], 0
mov byte [rbp + 0x621], 0
mov qword [rbp + 0x5c8], rdi
mov qword [rbp + 0x5d0], r14
mov qword [rbp + 0x5e8], rbx
mov qword [rbp + 0x5f0], r15
mov qword [rbp + 0x600], r12
mov qword [rbp + 0x608], r13
mov qword [rbp + 0x5f8], 0
xorps xmm0, xmm0
movups xmmword [rcx + 8], xmm0
movups xmmword [rcx + 0x28], xmm0
mov qword [rbp + 0x630], 0
mov qword [rbp + 0x618], 0
mov qword [rbp + 0x624], 0
lea rcx, str.C:WindowsTemp_vmk.log
mov edx, 1
mov r8d, 0x40
call fcn.1400139e0
mov rsi, rax
test rax, rax
je 0x140008dc3
mov byte [rbp + 0x62c], 1
mov byte [rbp + 0x621], 0
mov qword [rbp + 0x5c8], rdi
mov qword [rbp + 0x5d0], r14
mov qword [rbp + 0x5e8], rbx
mov qword [rbp + 0x5f0], r15
mov qword [rbp + 0x600], r12
mov qword [rbp + 0x608], r13
mov qword [rbp + 0x5f8], 0
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
movups xmmword [rbx], xmm0
mov qword [rbp + 0x30], 0
mov qword [rbp + 0x440], 0
mov qword [rbp - 0x40], 0
lea rdx, [rbp + 0x30]
lea r8, [rbp + 0x440]
lea r9, [rbp - 0x40]
mov rcx, rsi
call fcn.140017c64
mov rax, qword [rbp - 0x40]
mov rcx, qword [rbp + 0x440]
mov rdx, qword [rbp + 0x30]
mov qword [rbp + 0x5c8], rdx
mov qword [rbp + 0x5d0], rdx
mov qword [rbp + 0x5e8], rcx
mov qword [rbp + 0x5f0], rcx
mov qword [rbp + 0x600], rax
mov qword [rbp + 0x608], rax
mov qword [rbp + 0x630], rsi
mov qword [rbp + 0x618], 0
mov qword [rbp + 0x624], 0
mov rax, qword [rbp + 0x610]
mov rcx, qword [rax + 8]
mov qword [rbp + 0x38], rcx
mov rax, qword [rcx]
call qword [rax + 8]
lea rcx, [rbp + 0x30]
call fcn.14000ad40
mov rsi, rax
mov rax, qword [rax]
mov rcx, rsi
call qword [rax + 0x18]
test al, al
je 0x140008e62
xor esi, esi
jmp 0x140008ea0
mov rax, qword [rbp + 0x5a0]
movsxd rdx, dword [rax + 4]
xor r8d, r8d
cmp qword [rbp + rdx + 0x5e8], 0
sete r8b
shl r8d, 2
mov eax, dword [rbp + rdx + 0x5b0]
mov ecx, dword [rbp + rdx + 0x5b4]
and eax, 0x15
or eax, r8d
or eax, 2
mov dword [rbp + rdx + 0x5b0], eax
and eax, ecx
je 0x140008ec9
test cl, 2
lea rcx, str.ios_base::eofbit_set
lea r8, str.ios_base::failbit_set
cmove r8, rcx
test al, 4
lea rdx, str.ios_base::badbit_set
cmove rdx, r8
mov dword [rbp + 0x440], 1
lea rax, [0x14004c708]
mov qword [rbp + 0x448], rax
lea rcx, [rbp + 0x30]
lea r8, [rbp + 0x440]
call fcn.14000a870
lea rdx, [0x1400557c8]
lea rcx, [rbp + 0x30]
call fcn.1400152d4
mov qword [rbp + 0x5c8], rdi
mov qword [rbp + 0x5d0], r14
mov qword [rbp + 0x5e8], rbx
mov qword [rbp + 0x5f0], r15
mov qword [rbp + 0x600], r12
mov qword [rbp + 0x608], r13
mov qword [rbp + 0x5f8], 0
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
movups xmmword [rbx], xmm0
mov qword [rbp + 0x618], rsi
mov rcx, qword [rbp + 0x38]
test rcx, rcx
je 0x140008ec9
mov rax, qword [rcx]
call qword [rax + 0x10]
test rax, rax
je 0x140008ec9
mov r8, qword [rax]
mov rcx, rax
mov edx, 1
call qword [r8]
mov rax, qword [rbp + 0x5a0]
movsxd rax, dword [rax + 4]
cmp dword [rbp + rax + 0x5b0], 0
je 0x140008eef
lea rcx, str.Hello_World
call fcn.1400081a0
jmp 0x140009ba3
movups xmm0, xmmword [0x14004bd09]
movups xmmword [rbp + 0x429], xmm0
movaps xmm0, xmmword [str.tmpfiles.org]
movaps xmmword [rbp + 0x420], xmm0
lea rdx, str.dl_4320348_out.txt
lea rdi, [rbp + 0x440]
mov r8d, 0xef
mov rcx, rdi
call fcn.14000cca0
lea rsi, [rbp + 0x420]
mov rcx, rsi
call fcn.140022b20
lea r8, [rax + 1]
lea rcx, [rbp - 0x40]
mov rdx, rsi
call fcn.1400221c8
mov rcx, rdi
call fcn.140022b20
lea r8, [rax + 1]
lea rcx, [rbp + 0x30]
mov qword [rbp + 0x770], rdi
mov rdx, rdi
call fcn.1400221c8
xorps xmm0, xmm0
movaps xmmword [rbp + 0x720], xmm0
mov qword [rbp + 0x730], 0
mov dword [rbp + 0x764], 0
mov dword [rbp + 0x760], 0
movaps xmmword [rbp + 0x6f0], xmm0
mov qword [rbp + 0x700], 2
mov qword [rbp + 0x708], 7
mov dword [rbp + 0x6f0], 0x690057
mov qword [rbp + 0x568], 0
mov qword [rbp + 0x570], 6
mov qword [rbp + 0x578], 7
movabs rax, 0x48006e00610061
mov qword [rbp + 0x560], rax
mov dword [rbp + 0x568], 0x610061
mov qword [rbp + 0x6d8], 0
mov qword [rbp + 0x6e0], 3
mov qword [rbp + 0x6e8], 7
movabs rax, 0x5000540054
mov qword [rbp + 0x6d0], rax
movaps xmmword [rbp + 0x750], xmm0
movaps xmmword [rbp + 0x740], xmm0
lea rdx, [rbp + 0x564]
lea rdi, [rbp + 0x740]
mov r8d, 2
mov rcx, rdi
call fcn.140008290
mov rsi, qword [rbp + 0x700]
cmp qword [rbp + 0x708], 8
jb 0x140009067
mov rbx, qword [rbp + 0x6f0]
jmp 0x14000906e
lea rbx, [rbp + 0x6f0]
mov r14, qword [rbp + 0x750]
mov r12, qword [rbp + 0x758]
mov rax, r12
sub rax, r14
cmp rax, rsi
jae 0x140009129
movabs rax, 0x7ffffffffffffffe
mov rcx, rax
sub rcx, r14
cmp rcx, rsi
jb 0x14000a061
lea r15, [r14 + rsi]
mov rcx, r15
or rcx, 7
cmp rcx, rax
ja 0x14000a057
mov r13, r12
shr r13, 1
sub rax, r13
add r13, r12
cmp rcx, r13
cmova r13, rcx
lea rcx, [r13 + 1]
cmp rax, r12
movabs rax, 0x7fffffffffffffff
cmovae rax, rcx
test rax, rax
js 0x14000a066
lea rcx, [rax + rax]
cmp rax, 0x800
jb 0x1400091a8
movabs rdx, 0x7fffffffffffffed
cmp rax, rdx
jae 0x14000a057
add rcx, 0x27
call fcn.1400140b4
mov rdi, rax
add rdi, 0x27
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x1400091c0
cmp r12, 8
jb 0x140009136
mov rdi, qword [rbp + 0x740]
mov rax, rdi
sub rax, rbx
sar rax, 1
xor r15d, r15d
cmp rdi, rbx
cmova r15, rax
lea r12, [rbx + rsi*2]
lea rax, [rdi + r14*2]
cmp rax, rbx
cmovb r15, rsi
cmp r12, rdi
cmovbe r15, rsi
lea rax, [r14 + rsi]
mov qword [rbp + 0x750], rax
lea rcx, [rdi + rsi*2]
lea r8, [r14*2 + 2]
mov rdx, rdi
call fcn.140016690
lea r8, [r15 + r15]
mov rcx, rdi
mov rdx, rbx
call fcn.14000cca0
sub rsi, r15
lea rdx, [r12 + r15*2]
lea rcx, [rdi + r15*2]
add rsi, rsi
mov r8, rsi
call fcn.14000cca0
jmp 0x140009265
test rax, rax
je 0x1400091b7
call fcn.1400140b4
mov rdi, rax
jmp 0x1400091c0
mov r13, 0xffffffffffffffff
xor edi, edi
mov qword [rbp + 0x750], r15
mov qword [rbp + 0x758], r13
lea r8, [rsi + rsi]
lea r15, [rdi + rsi*2]
lea r14, [r14*2 + 2]
cmp r12, 8
jb 0x140009241
mov rsi, qword [rbp + 0x740]
mov rcx, rdi
mov rdx, rbx
call fcn.14000cca0
mov rcx, r15
mov rdx, rsi
mov r8, r14
call fcn.14000cca0
lea rdx, [r12*2 + 2]
cmp rdx, 0x1000
jb 0x140009237
mov rax, qword [rsi - 8]
add rsi, 0xfffffffffffffff8
sub rsi, rax
cmp rsi, 0x20
jae 0x140009ff3
add r12, r12
add r12, 0x29
mov rdx, r12
mov rsi, rax
mov rcx, rsi
call fcn.1400140f8
jmp 0x14000925e
mov rcx, rdi
mov rdx, rbx
call fcn.14000cca0
lea rdx, [rbp + 0x740]
mov rcx, r15
mov r8, r14
call fcn.14000cca0
mov qword [rbp + 0x740], rdi
mov rax, qword [rbp + 0x740]
mov rcx, qword [rbp + 0x748]
movaps xmm0, xmmword [rbp + 0x750]
movaps xmmword [rbp + 0x6c0], xmm0
mov qword [rbp + 0x6b0], rax
mov qword [rbp + 0x6b8], rcx
mov qword [rbp + 0x750], 0
mov qword [rbp + 0x758], 7
mov word [rbp + 0x740], 0
mov r8, qword [rbp + 0x6e0]
cmp qword [rbp + 0x6e8], 8
jb 0x1400092c8
mov rdx, qword [rbp + 0x6d0]
jmp 0x1400092cf
lea rdx, [rbp + 0x6d0]
lea rcx, [rbp + 0x6b0]
call fcn.140008400
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rbp + 0x590], xmm1
movaps xmmword [rbp + 0x580], xmm0
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 7
mov word [rax], 0
lea rdx, str._Example_1.0
lea rcx, [rbp + 0x580]
mov r8d, 0xc
call fcn.140008400
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rbp + 0x550], xmm1
movaps xmmword [rbp + 0x540], xmm0
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 7
mov word [rax], 0
mov rax, qword [rbp + 0x598]
cmp rax, 8
jb 0x140009394
mov rcx, qword [rbp + 0x580]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x14000938f
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140009ff3
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.1400140f8
mov qword [rbp + 0x590], 0
mov qword [rbp + 0x598], 7
mov word [rbp + 0x580], 0
mov rax, qword [rbp + 0x6c8]
cmp rax, 8
jb 0x1400093ff
mov rcx, qword [rbp + 0x6b0]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x1400093fa
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140009ff3
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.1400140f8
mov qword [rbp + 0x6c0], 0
mov qword [rbp + 0x6c8], 7
mov word [rbp + 0x6b0], 0
mov rax, qword [rbp + 0x758]
cmp rax, 8
jb 0x14000946a
mov rcx, qword [rbp + 0x740]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x140009465
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140009ff3
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.1400140f8
cmp qword [rbp + 0x558], 8
jb 0x14000947d
mov rcx, qword [rbp + 0x540]
jmp 0x140009484
lea rcx, [rbp + 0x540]
mov dword [rsp + 0x20], 0
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.WINHTTP.dll_WinHttpOpen]
test rax, rax
je 0x14000972c
mov rdi, rax
lea rdx, [rbp - 0x40]
xor ebx, ebx
mov rcx, rax
mov r8w, 0x1bb
xor r9d, r9d
call qword [sym.imp.WINHTTP.dll_WinHttpConnect]
test rax, rax
je 0x14000974c
mov r14, rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x30], 0x800000
lea rdx, [0x14004ef48]
xor ebx, ebx
lea r8, [rbp + 0x30]
mov rcx, rax
xor r9d, r9d
call qword [sym.imp.WINHTTP.dll_WinHttpOpenRequest]
mov esi, 0
test rax, rax
je 0x140009784
mov r15, rax
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rcx, rax
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.WINHTTP.dll_WinHttpSendRequest]
test eax, eax
mov rbx, r15
je 0x140009750
mov rcx, rbx
xor edx, edx
call qword [sym.imp.WINHTTP.dll_WinHttpReceiveResponse]
test eax, eax
je 0x140009750
mov qword [rbp + 0x538], r14
mov qword [rbp + 0x718], rdi
xor r15d, r15d
mov qword [rbp + 0x768], rbx
jmp 0x14000959d
lea rbx, [r15 + rdi]
mov qword [rbp + 0x728], rbx
mov rcx, r15
mov rdx, rsi
mov r8, rdi
call fcn.140016690
mov r15, rbx
mov rbx, qword [rbp + 0x768]
mov rcx, rsi
call fcn.1400140f8
cmp dword [rbp + 0x764], 0
je 0x14000975f
mov dword [rbp + 0x764], 0
mov rcx, rbx
lea rdx, [rbp + 0x764]
call qword [sym.imp.WINHTTP.dll_WinHttpQueryDataAvailable]
mov edi, dword [rbp + 0x764]
mov r14, rbx
lea ebx, [rdi + 1]
mov rcx, rbx
call fcn.14001412c
mov rsi, rax
mov rcx, rax
xor edx, edx
mov r8, rbx
call fcn.14000cbd0
mov rcx, r14
mov rdx, rsi
mov r8d, edi
lea r9, [rbp + 0x760]
call qword [sym.imp.WINHTTP.dll_WinHttpReadData]
test eax, eax
mov rbx, r14
je 0x140009588
mov edi, dword [rbp + 0x760]
test rdi, rdi
je 0x140009588
mov rbx, qword [rbp + 0x730]
mov rax, rbx
sub rax, r15
cmp rax, rdi
jae 0x140009565
mov r14, qword [rbp + 0x720]
sub r15, r14
mov rax, r15
movabs rcx, 0x7fffffffffffffff
xor rax, rcx
cmp rax, rdi
jb 0x14000a05c
lea rcx, [r15 + rdi]
sub rbx, r14
mov rax, rbx
shr rax, 1
lea r13, [rax + rbx]
cmp r13, rcx
ja 0x140009655
mov r13, rcx
mov qword [rbp + 0x738], rcx
movabs rcx, 0x7fffffffffffffff
xor rax, rcx
cmp rbx, rax
cmova r13, rcx
cmp r13, 0x1000
jb 0x14000969e
cmp r13, 0xffffffffffffffd9
jae 0x14000a06b
lea rcx, [r13 + 0x27]
call fcn.1400140b4
mov r12, rax
add r12, 0x27
and r12, 0xffffffffffffffe0
mov qword [r12 - 8], rax
jmp 0x1400096b3
test r13, r13
je 0x1400096b0
mov rcx, r13
call fcn.1400140b4
mov r12, rax
jmp 0x1400096b3
xor r12d, r12d
lea rcx, [r12 + r15]
mov rdx, rsi
mov r8, rdi
call fcn.140016690
mov rcx, r12
mov rdx, r14
mov r8, r15
call fcn.140016690
test r14, r14
je 0x140009705
cmp rbx, 0x1000
jb 0x1400096fa
mov rax, qword [r14 - 8]
add r14, 0xfffffffffffffff8
sub r14, rax
cmp r14, 0x20
jae 0x140009ff3
add rbx, 0x27
mov r14, rax
mov rcx, r14
mov rdx, rbx
call fcn.1400140f8
mov qword [rbp + 0x720], r12
mov r15, qword [rbp + 0x738]
add r15, r12
mov qword [rbp + 0x728], r15
add r13, r12
mov qword [rbp + 0x730], r13
jmp 0x140009581
xor ebx, ebx
xor ecx, ecx
xor edx, edx
mov r8d, 0x3000
mov r9d, 4
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r14, rax
jmp 0x1400098af
xor esi, esi
jmp 0x14000978d
mov rcx, rbx
call qword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
xor ebx, ebx
xor esi, esi
jmp 0x140009784
mov rcx, rbx
call qword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
mov rbx, qword [rbp + 0x720]
mov rsi, qword [rbp + 0x728]
mov rdi, qword [rbp + 0x718]
mov r14, qword [rbp + 0x538]
mov rcx, r14
call qword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
mov rcx, rdi
call qword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
mov rdx, rsi
sub rdx, rbx
xor ecx, ecx
mov r8d, 0x3000
mov r9d, 4
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r14, rax
sub rsi, rbx
je 0x1400098af
cmp rsi, 1
adc rsi, 0
xor eax, eax
cmp rsi, 8
jb 0x140009846
mov rcx, r14
sub rcx, rbx
cmp rcx, 0x20
jb 0x140009846
cmp rsi, 0x20
jae 0x1400097e2
xor eax, eax
jmp 0x14000981c
mov rax, rsi
and rax, 0xffffffffffffffe0
xor ecx, ecx
nop dword [rax + rax]
movups xmm0, xmmword [rbx + rcx]
movups xmm1, xmmword [rbx + rcx + 0x10]
movups xmmword [r14 + rcx], xmm0
movups xmmword [r14 + rcx + 0x10], xmm1
add rcx, 0x20
cmp rax, rcx
jne 0x1400097f0
cmp rsi, rax
je 0x1400098af
test sil, 0x18
je 0x140009846
mov rcx, rax
mov rax, rsi
and rax, 0xfffffffffffffff8
nop word cs:[rax + rax]
mov rdx, qword [rbx + rcx]
mov qword [r14 + rcx], rdx
add rcx, 8
cmp rax, rcx
jne 0x140009830
cmp rsi, rax
je 0x1400098af
mov rcx, rax
not rcx
add rcx, rsi
mov rdx, rsi
and rdx, 3
je 0x140009874
lea r8, [rax + rdx]
nop dword [rax]
movzx r9d, byte [rbx + rax]
mov byte [r14 + rax], r9b
inc rax
dec rdx
jne 0x140009860
mov rax, r8
cmp rcx, 3
jb 0x1400098af
nop word [rax + rax]
movzx ecx, byte [rbx + rax]
mov byte [r14 + rax], cl
movzx ecx, byte [rbx + rax + 1]
mov byte [r14 + rax + 1], cl
movzx ecx, byte [rbx + rax + 2]
mov byte [r14 + rax + 2], cl
movzx ecx, byte [rbx + rax + 3]
mov byte [r14 + rax + 3], cl
add rax, 4
cmp rsi, rax
jne 0x140009880
mov rax, qword [rbp + 0x558]
cmp rax, 8
jb 0x1400098fb
mov rcx, qword [rbp + 0x540]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x1400098f6
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140009ff3
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.1400140f8
mov rax, qword [rbp + 0x6e8]
cmp rax, 8
jb 0x140009947
mov rcx, qword [rbp + 0x6d0]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x140009942
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140009ff3
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.1400140f8
mov rax, qword [rbp + 0x578]
cmp rax, 8
jb 0x140009993
mov rcx, qword [rbp + 0x560]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x14000998e
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140009ff3
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.1400140f8
mov rax, qword [rbp + 0x708]
cmp rax, 8
jb 0x1400099df
mov rcx, qword [rbp + 0x6f0]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x1400099da
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140009ff3
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.1400140f8
test rbx, rbx
je 0x140009a1b
mov rdx, qword [rbp + 0x730]
sub rdx, rbx
cmp rdx, 0x1000
jb 0x140009a13
mov rax, qword [rbx - 8]
sub rbx, rax
add rbx, 0xfffffffffffffff8
cmp rbx, 0x20
jae 0x140009ff3
add rdx, 0x27
mov rbx, rax
mov rcx, rbx
call fcn.1400140f8
xorps xmm6, xmm6
movaps xmmword [rbp + 0x30], xmm6
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x48], 0xf
mov rcx, r14
call fcn.140022b20
cmp byte [rax + r14 - 1], 0xa
jne 0x140009a48
mov byte [r14 + rax - 1], 0
movaps xmmword [rbp + 0x450], xmm6
movaps xmmword [rbp + 0x440], xmm6
mov rcx, r14
call fcn.140022b20
test rax, rax
js 0x14000a052
mov r15, rax
cmp rax, 0xf
ja 0x140009c18
mov qword [rbp + 0x450], r15
mov qword [rbp + 0x458], 0xf
lea rcx, [rbp + 0x440]
mov rdx, r14
mov r8, r15
call fcn.14000cca0
mov byte [rbp + r15 + 0x440], 0
mov r15, qword [rbp + 0x450]
test r15b, 3
je 0x140009c8d
mov ecx, 0x30
call fcn.1400140b4
mov edx, 0x30
mov rcx, rax
call fcn.1400140f8
mov r13, qword [rbp + 0x458]
lea rdi, [rbp + 0x30]
cmp r13, 0x10
jb 0x140009b12
mov rcx, qword [rbp + 0x440]
lea rdx, [r13 + 1]
cmp rdx, 0x1000
jb 0x140009b0d
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x140009ff3
add r13, 0x28
mov rdx, r13
mov rcx, rax
call fcn.1400140f8
mov eax, dword [rbp + 0x40]
cmp qword [rbp + 0x48], 0x10
jb 0x140009b20
mov rdi, qword [rbp + 0x30]
mov dword [rbp + 0x440], eax
mov qword [rbp + 0x448], rdi
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r8, [0x140008800]
lea r9, [rbp + 0x440]
xor ecx, ecx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rcx, rax
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rax, qword [rbp + 0x48]
cmp rax, 0x10
jb 0x140009ba3
mov rcx, qword [rbp + 0x30]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140009b9e
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140009ff3
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400140f8
lea rcx, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov rax, qword [rbp + 0x5a0]
movsxd rax, dword [rax + 4]
mov qword [rbp + rax + 0x5a0], rcx
mov rax, qword [rbp + 0x5a0]
movsxd rax, dword [rax + 4]
lea ecx, [rax - 0xb0]
mov dword [rbp + rax + 0x59c], ecx
lea rcx, [rbp + 0x5b0]
call fcn.14000af20
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x650], rax
lea rcx, [rbp + 0x650]
call fcn.140013b14
xor eax, eax
movaps xmm6, xmmword [rbp + 0x780]
add rsp, 0x818
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rax, r15
or rax, 0xf
cmp rax, 0x17
mov edi, 0x16
cmovae rdi, rax
cmp rdi, 0xfff
jb 0x140009c4f
lea rcx, [rdi + 0x28]
call fcn.1400140b4
mov rsi, rax
add rsi, 0x27
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x140009c5b
lea rcx, [rdi + 1]
call fcn.1400140b4
mov rsi, rax
mov qword [rbp + 0x440], rsi
mov qword [rbp + 0x450], r15
mov qword [rbp + 0x458], rdi
mov rcx, rsi
mov rdx, r14
mov r8, r15
call fcn.14000cca0
mov byte [rsi + r15], 0
test r15b, 3
jne 0x140009ab2
mov rax, r15
shr rax, 2
lea rsi, [rax + rax*2]
mov r13, qword [rbp + 0x458]
cmp r13, 0x10
jb 0x140009cb3
mov rax, qword [rbp + 0x440]
mov qword [rbp + 0x770], rax
xor eax, eax
mov rcx, qword [rbp + 0x770]
cmp byte [r15 + rcx - 1], 0x3d
sete al
sub rsi, rax
xor eax, eax
cmp byte [r15 + rcx - 2], 0x3d
sete al
sub rsi, rax
mov r14, qword [rbp + 0x40]
mov r12, rsi
sub r12, r14
jbe 0x140009d5d
mov rcx, qword [rbp + 0x48]
mov rax, rcx
sub rax, r14
cmp rax, r12
jae 0x140009d6e
movabs rdi, 0x7fffffffffffffff
mov rax, r14
xor rax, rdi
cmp rax, r12
jb 0x14000a070
test rsi, rsi
mov qword [rbp + 0x768], rcx
js 0x140009db5
mov rax, rsi
or rax, 0xf
mov rdx, rcx
mov rbx, rcx
shr rbx, 1
mov rcx, rbx
xor rcx, rdi
add rbx, rdx
cmp rax, rbx
cmova rbx, rax
cmp rcx, rdx
cmovae rdi, rbx
lea rcx, [rdi + 1]
cmp rcx, 0x1000
jb 0x140009ddc
cmp rcx, 0xffffffffffffffd9
jb 0x140009dbf
call fcn.1400083a0
cmp qword [rbp + 0x48], 0x10
lea rdi, [rbp + 0x30]
jb 0x140009d7e
mov rax, qword [rbp + 0x30]
jmp 0x140009d82
mov qword [rbp + 0x40], rsi
cmp rcx, 0x10
jb 0x140009d98
mov rdi, qword [rbp + 0x30]
jmp 0x140009d9c
lea rax, [rbp + 0x30]
mov qword [rbp + 0x40], rsi
mov byte [rax + rsi], 0
test r15, r15
jne 0x140009ed3
jmp 0x140009ad4
lea rdi, [rbp + 0x30]
add r14, rdi
mov rcx, r14
xor edx, edx
mov r8, r12
call fcn.14000cbd0
mov byte [rdi + rsi], 0
jmp 0x140009ea9
movabs rcx, 0x8000000000000000
add rcx, 0x27
call fcn.1400140b4
mov rcx, rax
add rcx, 0x27
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
mov rbx, rdi
jmp 0x140009df4
test rcx, rcx
je 0x140009deb
call fcn.1400140b4
mov rcx, rax
jmp 0x140009df4
mov rbx, 0xffffffffffffffff
xor ecx, ecx
mov qword [rbp + 0x40], rsi
mov qword [rbp + 0x48], rbx
lea rax, [rcx + r14]
mov qword [rbp + 0x738], rax
mov rdi, qword [rbp + 0x768]
cmp rdi, 0x10
mov rbx, rcx
jb 0x140009e81
mov rcx, rbx
mov qword [rbp + 0x718], rbx
mov rbx, qword [rbp + 0x30]
mov rdx, rbx
mov r8, r14
call fcn.14000cca0
mov rcx, qword [rbp + 0x738]
xor edx, edx
mov r8, r12
call fcn.14000cbd0
mov rax, qword [rbp + 0x718]
mov r8, rax
mov byte [rax + rsi], 0
lea rdx, [rdi + 1]
cmp rdx, 0x1000
jb 0x140009eb7
mov rax, qword [rbx - 8]
add rbx, 0xfffffffffffffff8
sub rbx, rax
cmp rbx, 0x20
jae 0x140009ff3
add rdi, 0x28
mov rdx, rdi
mov rcx, rax
lea rdi, [rbp + 0x30]
jmp 0x140009ebe
lea rdx, [rbp + 0x30]
mov rcx, rbx
mov r8, r14
call fcn.14000cca0
mov rcx, qword [rbp + 0x738]
xor edx, edx
mov r8, r12
call fcn.14000cbd0
mov byte [rbx + rsi], 0
mov qword [rbp + 0x30], rbx
lea rdi, [rbp + 0x30]
test r15, r15
jne 0x140009ed3
jmp 0x140009ad4
lea rdi, [rbp + 0x30]
mov rcx, rbx
mov rbx, r8
call fcn.1400140f8
mov qword [rbp + 0x30], rbx
test r15, r15
je 0x140009ad4
xor eax, eax
lea r14, [rbp + 0x30]
lea rdx, str.________________________________________________456789:_________
xor edi, edi
jmp 0x140009f03
mov byte [rcx + rdi], bl
inc rdi
add rax, 4
cmp rax, r15
jae 0x140009ad0
mov rcx, qword [rbp + 0x770]
movsx rcx, byte [rcx + rax]
mov r8d, 0
cmp rcx, 0x3d
je 0x140009f20
movzx r8d, byte [rcx + rdx]
mov rcx, qword [rbp + 0x770]
movsx r10, byte [rcx + rax + 1]
xor ebx, ebx
mov r9d, 0
cmp r10, 0x3d
je 0x140009f40
movzx r9d, byte [r10 + rdx]
mov rcx, qword [rbp + 0x770]
movsx rcx, byte [rcx + rax + 2]
cmp rcx, 0x3d
je 0x140009f57
movzx ebx, byte [rcx + rdx]
mov rcx, qword [rbp + 0x770]
movsx r11, byte [rcx + rax + 3]
xor r10d, r10d
cmp r11, 0x3d
je 0x140009f72
movzx r10d, byte [r11 + rdx]
shl r8d, 0x12
shl r9d, 0xc
add r9d, r8d
shl ebx, 6
add ebx, r10d
add ebx, r9d
cmp rdi, rsi
jb 0x140009fa0
cmp rdi, rsi
jb 0x140009fbf
cmp rdi, rsi
jae 0x140009ef6
jmp 0x140009fdc
cmp qword [rbp + 0x48], 0x10
mov r8, r14
jb 0x140009fae
mov r8, qword [rbp + 0x30]
mov ecx, ebx
shr ecx, 0x10
mov byte [r8 + rdi], cl
inc rdi
cmp rdi, rsi
jae 0x140009f90
cmp qword [rbp + 0x48], 0x10
mov rcx, r14
jb 0x140009fcd
mov rcx, qword [rbp + 0x30]
mov byte [rcx + rdi], bh
inc rdi
cmp rdi, rsi
jae 0x140009ef6
cmp qword [rbp + 0x48], 0x10
mov rcx, r14
jb 0x140009ef0
mov rcx, qword [rbp + 0x30]
jmp 0x140009ef0
call fcn.1400202b8
test cl, 2
lea rcx, str.ios_base::eofbit_set
lea r8, str.ios_base::failbit_set
cmove r8, rcx
test al, 4
lea rdx, str.ios_base::badbit_set
cmove rdx, r8
mov dword [rbp + 0x440], 1
lea rax, [0x14004c708]
mov qword [rbp + 0x448], rax
lea rcx, [rbp + 0x30]
lea r8, [rbp + 0x440]
call fcn.14000a870
lea rdx, [0x1400557c8]
lea rcx, [rbp + 0x30]
call fcn.1400152d4
call fcn.140008380
call fcn.1400083a0
call fcn.140008640
call fcn.140008380
call fcn.1400083a0
call fcn.1400083a0
call fcn.140008380
int3