Function at 0x1401859a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x38]
sub rsp, 0x138
mov rbx, r8
xor r15d, r15d
mov r12, qword [r9]
mov byte [rsp + 0x30], r15b
mov byte [rsp + 0x31], r15b
mov dword [rbp - 0x78], 0xa
mov rcx, qword [r8]
test rcx, rcx
je 0x1401864b1
test r12, r12
je 0x1401864b1
lea rdx, [0x14020b4a0]
mov rcx, qword [rcx]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
test eax, eax
jne 0x140185a1f
cmp qword [rbx + 8], r15
je 0x140185a1f
cmp qword [rbx + 0x10], r15
jne 0x1401864b1
mov rcx, qword [rbx]
lea rdx, str.POST
mov rcx, qword [rcx]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
test eax, eax
jne 0x140185a4b
mov rax, qword [rbx]
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x140185a4b
cmp byte [rcx], r15b
jne 0x1401864b1
mov rcx, qword [rbx]
lea rdx, [0x14020b4c0]
mov rcx, qword [rcx]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
test eax, eax
jne 0x140185a77
mov rax, qword [rbx]
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x140185a77
cmp byte [rcx], r15b
jne 0x1401864b1
mov rcx, qword [rbx]
movups xmm0, xmmword [rcx]
movaps xmmword [rbp - 0x70], xmm0
movups xmm1, xmmword [rcx + 0x10]
movaps xmmword [rbp - 0x60], xmm1
movups xmm0, xmmword [rcx + 0x20]
movaps xmmword [rbp - 0x50], xmm0
movups xmm1, xmmword [rcx + 0x30]
movaps xmmword [rbp - 0x40], xmm1
movups xmm0, xmmword [rcx + 0x40]
movups xmmword [rbp + 0x10], xmm0
movaps xmmword [rbp - 0x30], xmm0
movups xmm0, xmmword [rcx + 0x50]
movaps xmmword [rbp - 0x20], xmm0
movups xmm0, xmmword [rcx + 0x60]
movups xmmword [rbp + 0x20], xmm0
movaps xmmword [rbp - 0x10], xmm0
movsd xmm0, qword [rcx + 0x70]
movsd qword [rbp], xmm0
lea rdx, [0x14020b4a0]
mov rcx, qword [rcx]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
mov rcx, qword [rbp + 0x10]
mov rdx, 0xffffffffffffffff
test eax, eax
cmove rcx, rdx
mov qword [rbp - 0x30], rcx
mov r14, qword [rbp + 0x20]
mov rcx, r14
call fcn.140185920
mov rsi, qword [rbp - 8]
test al, al
jne 0x140185b16
cmp byte [rbp + 0xb0], r15b
jne 0x140185b11
mov rcx, rsi
call fcn.140185920
test al, al
jne 0x140185b16
xor r13b, r13b
jmp 0x140185b19
mov r13b, 1
xor eax, eax
mov dword [rsp + 0x34], eax
mov ecx, dword [rbp + 0xa8]
lea r8, str.BASIC
cmp ecx, 0xffffffff
je 0x140185b39
cmp eax, ecx
jge 0x14018649e
test r13b, r13b
jne 0x140185c6b
mov rdi, qword [rbx + 0x10]
mov rsi, qword [rbx + 8]
mov r15d, 0x4e26
lea rcx, [rbp - 0x70]
call fcn.1401800b0
mov rbx, rax
mov r14, qword [rbp + 0x80]
test rax, rax
je 0x140185bb8
mov rcx, qword [r14]
mov rax, qword [rcx + 0x20]
mov rcx, r14
call qword [case.0x14003c8e9.0]
test eax, eax
jne 0x140185baf
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rbx + r8], 0
jne 0x140185b83
mov rdx, rbx
mov rcx, r14
call fcn.14017e6c0
cmp rax, 0xfffffffffffffffd
ja 0x140185ba3
xor r15d, r15d
jmp 0x140185baf
cmp rax, 0xfffffffffffffffe
jne 0x140185baf
mov r15d, 0x4e3f
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test r15d, r15d
jne 0x140185c5c
mov r8, rdi
mov rdx, rsi
mov rcx, r14
call fcn.14017e6c0
mov rbx, rax
cmp rax, 0xfffffffffffffffd
ja 0x140185c42
mov r8, qword [r14 + 8]
test r8, r8
jne 0x140185be5
xor ebx, ebx
jmp 0x140185c10
mov rax, qword [r14]
lea rdx, [r14 + 0x20]
mov rcx, r14
mov rax, qword [rax + 0x28]
call qword [case.0x14003c8e9.0]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x140185c56
mov qword [r14 + 8], 0
cmp rax, 0xfffffffffffffffe
je 0x140185c42
xor r9d, r9d
mov rdx, r12
mov rcx, r14
call fcn.140182510
mov r15d, eax
test eax, eax
jne 0x140185c42
mov ecx, dword [r12]
call fcn.140181d50
mov r15d, eax
mov r8, r12
mov edx, eax
mov rcx, qword [rbp + 0xc8]
call fcn.14017e190
cmp rbx, 0xfffffffffffffffe
jne 0x140185c50
mov r15d, 0x4e3f
jmp 0x140185c5c
cmp rbx, 0xffffffffffffffff
jne 0x140185c5c
mov r15d, 0x4e26
mov rsi, qword [rbp - 8]
mov r14, qword [rbp - 0x10]
lea r8, str.BASIC
test rsi, rsi
je 0x140185cd2
xor ebx, ebx
xor edi, edi
mov rax, qword [str.BASIC]
test rax, rax
je 0x140185cd2
xor ecx, ecx
movsxd r8, dword [rcx + r8 + 8]
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
test eax, eax
je 0x140185cb5
inc ebx
inc rdi
mov rcx, rdi
shl rcx, 4
lea r8, str.BASIC
mov rax, qword [rcx + r8]
test rax, rax
jne 0x140185c82
jmp 0x140185cd2
test ebx, ebx
je 0x140185cd2
cmp ebx, 1
jne 0x140185cd2
lea edx, [rbx + 0x1f]
mov rcx, rsi
call qword [sym.imp.VCRUNTIME140.dll_strchr]
test rax, rax
je 0x140185cd2
mov byte [rax], 0
test r14, r14
je 0x140185d4d
xor ebx, ebx
xor edi, edi
mov rax, qword [str.BASIC]
lea rdx, str.BASIC
test rax, rax
je 0x140185d54
xor ecx, ecx
movsxd r8, dword [rcx + rdx + 8]
mov rdx, rax
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
test eax, eax
je 0x140185d27
inc ebx
inc rdi
mov rcx, rdi
shl rcx, 4
lea rdx, str.BASIC
mov rax, qword [rcx + rdx]
test rax, rax
jne 0x140185cf4
jmp 0x140185d54
test ebx, ebx
je 0x140185d4d
cmp ebx, 1
jne 0x140185d4d
lea edx, [rbx + 0x1f]
mov rcx, r14
call qword [sym.imp.VCRUNTIME140.dll_strchr]
lea rdx, str.BASIC
test rax, rax
je 0x140185d54
mov byte [rax], 0
jmp 0x140185d54
lea rdx, str.BASIC
test r13b, r13b
jne 0x140185e67
cmp r15d, 0x4e2f
je 0x140185e42
cmp r15d, 0x4e24
je 0x140185e3b
test r15d, r15d
jne 0x140186453
cmp byte [r12 + 0x11d], r15b
jne 0x140185dc8
mov eax, dword [rbp + 0xa0]
cmp eax, 2
je 0x140185dc8
test eax, eax
jne 0x140185e0f
mov rax, qword [rbp + 0x98]
lea r9, [rax + 0x10]
mov qword [rsp + 0x20], r9
mov r9, qword [r9]
mov r8, qword [rax + 8]
mov rdx, r12
mov rbx, qword [rbp + 0x80]
mov rcx, rbx
call fcn.140182120
jmp 0x140185dda
mov rdx, r12
mov rbx, qword [rbp + 0x80]
mov rcx, rbx
call fcn.140182340
cmp dword [r12 + 4], 1
mov r15d, eax
jl 0x140185dff
jne 0x140185def
cmp dword [r12 + 8], 1
jl 0x140185dff
cmp dword [r12 + 0x3c], 1
je 0x140185dff
cmp dword [r12 + 0x40], 1
jne 0x140185e0f
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 0x18]
call qword [case.0x14003c8e9.0]
cmp byte [r12 + 0x11d], 0
je 0x140186497
sub dword [rbp - 0x78], 1
je 0x14018644b
mov eax, dword [rsp + 0x34]
xor r13b, r13b
mov rbx, qword [rbp + 0x90]
jmp 0x140185b1f
cmp byte [rsp + 0x31], 0
jmp 0x140185e47
cmp byte [rsp + 0x30], 0
jne 0x140186497
mov ebx, r15d
mov rdx, r12
mov rdi, qword [rbp + 0x80]
mov rcx, rdi
call fcn.140182340
mov r15d, eax
jmp 0x140185edd
cmp byte [rbp + 0xb0], 0
jne 0x140185ed1
test rsi, rsi
je 0x140185ed1
xor ebx, ebx
xor edi, edi
mov rax, qword [str.BASIC]
test rax, rax
je 0x140185ed1
xor ecx, ecx
nop word [rax + rax]
movsxd r8, dword [rcx + rdx + 8]
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
test eax, eax
je 0x140185ec3
inc ebx
inc rdi
mov rcx, rdi
shl rcx, 4
lea rdx, str.BASIC
mov rax, qword [rcx + rdx]
test rax, rax
jne 0x140185e90
jmp 0x140185ed1
test ebx, ebx
je 0x140185ed1
cmp ebx, 1
mov ebx, 0x4e24
je 0x140185ed6
mov ebx, 0x4e2f
mov rdi, qword [rbp + 0x80]
test r15d, r15d
jne 0x140186497
test r13b, r13b
jne 0x140185f52
cmp dword [r12 + 4], 1
jl 0x140185f0d
jne 0x140185efd
cmp dword [r12 + 8], 1
jl 0x140185f0d
cmp dword [r12 + 0x3c], 1
je 0x140185f0d
cmp dword [r12 + 0x40], 1
jne 0x140185f1d
mov rax, qword [rdi]
mov rcx, rdi
mov rax, qword [rax + 0x18]
call qword [case.0x14003c8e9.0]
mov rax, qword [rbp + 0xb8]
test rax, rax
je 0x140185f52
cmp qword [rdi + 0x10], 0xffffffffffffffff
jne 0x140185f52
mov r8, qword [rbp + 0xc0]
mov rdx, qword [rbp + 0x88]
mov rcx, rdi
call qword [case.0x14003c8e9.0]
mov r15d, eax
test eax, eax
jne 0x140186497
cmp ebx, 0x4e2f
jne 0x1401861c6
xor esi, esi
test r13b, r13b
je 0x140186115
lea r15, vtable.CBuffer.0
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rsi
lea rax, vtable.http::CHTTPBuffer.0
mov qword [rsp + 0x38], rax
mov rbx, 0xffffffffffffffff
nop dword [rax]
inc rbx
cmp byte [r14 + rbx], 0
jne 0x140185fa0
add rbx, 1
je 0x14018606e
mov rcx, qword [rsp + 0x58]
lea rdi, [rcx + rbx]
cmp rdi, rbx
jb 0x14018606e
cmp rdi, qword [rsp + 0x50]
jbe 0x140186035
lfence
mov rdx, qword [rsp + 0x50]
shr rdx, 1
add rdx, qword [rsp + 0x50]
mov rax, rdi
cmp rdx, rdi
cmovae rax, rdx
add rax, 0xfff
and rax, 0xfffffffffffff000
cmp rax, rdi
cmovae rdi, rax
mov rax, qword [rsp + 0x38]
mov r8, rdi
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x38]
mov rax, qword [rax + 8]
call qword [case.0x14003c8e9.0]
test rax, rax
je 0x14018606e
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rdi
mov r14, qword [rbp - 0x10]
mov rcx, qword [rsp + 0x58]
jmp 0x14018603a
mov rax, qword [rsp + 0x40]
add rcx, rax
je 0x14018606e
mov r8, rbx
mov rdx, r14
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rsp + 0x58]
mov rax, rcx
sub rax, qword [rsp + 0x40]
add rax, qword [rsp + 0x48]
add rax, rbx
cmp rax, qword [rsp + 0x50]
ja 0x14018606e
add rcx, rbx
mov qword [rsp + 0x58], rcx
lea rcx, [r12 + 0x78]
call fcn.14018a120
mov rbx, qword [r12 + 0x88]
lfence
lea rdx, [rbx + 1]
lea rcx, [r12 + 0x78]
call fcn.14018a2c0
lea rcx, [rbx + rbx*4]
mov rax, qword [r12 + 0x80]
lea rbx, [rax + rcx*8]
lea rax, [rsp + 0x38]
cmp rbx, rax
je 0x1401860fc
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x1401860c4
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 0x18]
call qword [case.0x14003c8e9.0]
mov rax, qword [rsp + 0x40]
mov qword [rbx + 8], rax
mov rax, qword [rsp + 0x48]
mov qword [rbx + 0x10], rax
mov rax, qword [rsp + 0x50]
mov qword [rbx + 0x18], rax
mov rax, qword [rsp + 0x58]
mov qword [rbx + 0x20], rax
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x38], r15
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x140186111
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov r14, qword [rbp - 0x10]
test r14, r14
je 0x140186127
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rbp - 0x10], rsi
lea rax, [r12 + 0x78]
lea rcx, [rbp - 0x70]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r13, qword [rbp + 0x88]
mov r8, qword [r13 + 8]
mov rdx, qword [r13]
mov rcx, qword [rbp + 0x80]
call fcn.140185200
mov r15d, eax
mov byte [rsp + 0x30], 1
mov r14, qword [rbp - 0x10]
test r14, r14
je 0x1401861ae
mov edi, esi
mov rbx, rsi
mov rcx, qword [str.BASIC]
test rcx, rcx
je 0x1401861ae
mov rax, rsi
lea r13, str.BASIC
movsxd r8, dword [rax + r13 + 8]
mov rdx, rcx
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
test eax, eax
je 0x1401861b3
inc edi
inc rbx
mov rax, rbx
shl rax, 4
mov rcx, qword [rax + r13]
test rcx, rcx
jne 0x140186184
mov edi, 0xffffffff
mov rax, qword [rbp + 0x98]
mov dword [rax + 0x18], edi
mov rsi, qword [rbp - 8]
jmp 0x14018642d
cmp ebx, 0x4e24
jne 0x140186432
xor r14d, r14d
test r13b, r13b
je 0x140186378
lea r15, vtable.CBuffer.0
mov qword [rsp + 0x60], r15
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x68], r14
mov qword [rbp - 0x80], r14
mov qword [rsp + 0x78], r14
lea rax, vtable.http::CHTTPBuffer.0
mov qword [rsp + 0x60], rax
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rsi + rbx], 0
jne 0x140186210
add rbx, 1
je 0x1401862d9
mov rcx, qword [rbp - 0x80]
lea rdi, [rcx + rbx]
cmp rdi, rbx
jb 0x1401862d9
cmp rdi, qword [rsp + 0x78]
jbe 0x1401862a2
lfence
mov rdx, qword [rsp + 0x78]
shr rdx, 1
add rdx, qword [rsp + 0x78]
mov rax, rdi
cmp rdx, rdi
cmovae rax, rdx
add rax, 0xfff
and rax, 0xfffffffffffff000
cmp rax, rdi
cmovae rdi, rax
mov rax, qword [rsp + 0x60]
mov r8, rdi
mov rdx, qword [rsp + 0x68]
lea rcx, [rsp + 0x60]
mov rax, qword [rax + 8]
call qword [case.0x14003c8e9.0]
test rax, rax
je 0x1401862d9
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rdi
mov rsi, qword [rbp - 8]
mov rcx, qword [rbp - 0x80]
jmp 0x1401862a7
mov rax, qword [rsp + 0x68]
add rcx, rax
je 0x1401862d9
mov r8, rbx
mov rdx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rbp - 0x80]
mov rax, rcx
sub rax, qword [rsp + 0x68]
add rax, qword [rsp + 0x70]
add rax, rbx
cmp rax, qword [rsp + 0x78]
ja 0x1401862d9
add rcx, rbx
mov qword [rbp - 0x80], rcx
lea rcx, [r12 + 0x50]
call fcn.14018a120
mov rbx, qword [r12 + 0x60]
lfence
lea rdx, [rbx + 1]
lea rcx, [r12 + 0x50]
call fcn.14018a2c0
lea rcx, [rbx + rbx*4]
mov rax, qword [r12 + 0x58]
lea rbx, [rax + rcx*8]
lea rax, [rsp + 0x60]
cmp rbx, rax
je 0x14018635f
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x140186329
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 0x18]
call qword [case.0x14003c8e9.0]
mov rax, qword [rsp + 0x68]
mov qword [rbx + 8], rax
mov rax, qword [rsp + 0x70]
mov qword [rbx + 0x10], rax
mov rax, qword [rsp + 0x78]
mov qword [rbx + 0x18], rax
mov rax, qword [rbp - 0x80]
mov qword [rbx + 0x20], rax
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x68], r14
mov qword [rbp - 0x80], r14
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x60], r15
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x140186374
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rsi, qword [rbp - 8]
test rsi, rsi
je 0x14018638a
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rbp - 8], r14
lea rax, [r12 + 0x50]
lea rcx, [rbp - 0x70]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov r9b, 1
mov rax, qword [rbp + 0x88]
mov r8, qword [rax + 0x18]
mov rdx, qword [rax + 0x10]
mov rcx, qword [rbp + 0x80]
call fcn.140185200
mov r15d, eax
mov byte [rsp + 0x31], 1
mov rsi, qword [rbp - 8]
test rsi, rsi
je 0x14018641a
mov edi, r14d
mov rbx, r14
mov rcx, qword [str.BASIC]
test rcx, rcx
je 0x14018641a
mov rax, r14
lea r13, str.BASIC
nop dword [rax + rax]
movsxd r8, dword [rax + r13 + 8]
mov rdx, rcx
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
test eax, eax
je 0x14018641f
inc edi
inc rbx
mov rax, rbx
shl rax, 4
mov rcx, qword [rax + r13]
test rcx, rcx
jne 0x1401863f0
mov edi, 0xffffffff
mov rax, qword [rbp + 0x98]
mov dword [rax + 0x1c], edi
mov r14, qword [rbp - 0x10]
test r15d, r15d
jne 0x140186497
mov eax, dword [rsp + 0x34]
inc eax
mov dword [rsp + 0x34], eax
xor r13b, r13b
mov rbx, qword [rbp + 0x90]
jmp 0x140185b1f
mov r15d, 0x4e38
jmp 0x140186497
mov rdx, r12
mov rbx, qword [rbp + 0x80]
mov rcx, rbx
call fcn.140182340
cmp dword [r12 + 4], 1
jl 0x140186487
jne 0x140186477
cmp dword [r12 + 8], 1
jl 0x140186487
cmp dword [r12 + 0x3c], 1
je 0x140186487
cmp dword [r12 + 0x40], 1
jne 0x140186497
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 0x18]
call qword [case.0x14003c8e9.0]
mov rbx, qword [rbp + 0x90]
mov rax, qword [rbx]
mov qword [rax + 0x60], r14
mov rax, qword [rbx]
mov qword [rax + 0x68], rsi
mov eax, r15d
jmp 0x1401864b6
mov eax, 0x4e25
add rsp, 0x138
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret