Function at 0x81e660
Capabilities:
Connect to http server

Disassembly:
push rbp
push r13
push rdi
push rsi
push rbx
sub rsp, 0x3e0
mov rbp, rsp
mov qword [rbp + 0x78], rcx
mov qword [rbp + 0x98], 0
mov qword [rbp + 0xa8], 0
mov qword [rbp + 0xa0], 0
mov qword [rbp + 0xc0], 0
mov qword [rbp + 0xb8], 0
mov qword [rbp + 0xb0], 0
mov qword [rbp + 0xd8], 0
mov qword [rbp + 0xd0], 0
mov qword [rbp + 0xc8], 0
mov qword [rbp + 0xf0], 0
mov qword [rbp + 0xe8], 0
mov qword [rbp + 0xe0], 0
mov qword [rbp + 0xf8], 0
mov qword [rbp + 0x100], 0
mov qword [rbp + 0x108], 0
mov qword [rbp + 0x110], 0
mov qword [rbp + 0x128], 0
mov qword [rbp + 0x120], 0
mov qword [rbp + 0x118], 0
mov qword [rbp + 0x140], 0
mov qword [rbp + 0x138], 0
mov qword [rbp + 0x130], 0
mov qword [rbp + 0x158], 0
mov qword [rbp + 0x150], 0
mov qword [rbp + 0x148], 0
mov qword [rbp + 0x3d8], 0
mov qword [rbp + 0x3d0], 0
mov qword [rbp + 0x178], 0
mov qword [rbp + 0x420], r8
mov qword [rbp + 0x428], r9
mov rax, qword [rbp + 0x430]
mov qword [rbp + 0x430], rax
mov rax, qword [rbp + 0x440]
mov qword [rbp + 0x440], rax
mov rax, qword [rbp + 0x448]
mov qword [rbp + 0x448], rax
mov rax, qword [rbp + 0x450]
mov qword [rbp + 0x450], rax
mov rcx, qword [rbp + 0x420]
call fcn.00412ee0
mov rcx, qword [rbp + 0x428]
call fcn.00412ee0
mov rcx, qword [rbp + 0x430]
call fcn.00412ee0
mov rcx, qword [rbp + 0x440]
call fcn.00412ee0
mov rcx, qword [rbp + 0x448]
call fcn.00412ee0
mov rcx, qword [rbp + 0x450]
call fcn.00412ee0
nop
xor eax, eax
mov byte [rbp + 0x8f], al
mov rax, qword [rbp + 0x468]
mov byte [rax], 0
mov byte [rbp + 0x470], 1
mov rax, qword [rbp + 0x78]
mov rax, qword [rax + 0x150]
mov rax, qword [rax + 0x10]
cmp dword [rax + 0x10], 1
jle 0x81e906
lea rcx, [rbp + 0x150]
mov rax, qword [rbp + 0x78]
mov edx, dword [rax + 0x7c]
call fcn.0043bfe0
mov rax, qword [rbp + 0x78]
mov rcx, qword [rax + 0x150]
call fcn.0082e5c0
lea rcx, [rbp + 0x148]
mov edx, eax
call fcn.0043bfe0
lea rcx, [rbp + 0x158]
mov edx, 6
mov r8, qword [rbp + 0x150]
lea r9, [0x0081f404]
mov rax, qword [rbp + 0x78]
mov rax, qword [rax + 0x228]
mov qword [rsp + 0x20], rax
lea rax, [0x0081f404]
mov qword [rsp + 0x28], rax
mov rax, qword [rbp + 0x148]
mov qword [rsp + 0x30], rax
lea rax, [0x0081f414]
mov qword [rsp + 0x38], rax
call fcn.00414a50
mov rax, qword [rbp + 0x78]
mov rcx, qword [rax + 0xa0]
mov rdx, qword [rbp + 0x158]
call fcn.00602260
jmp 0x81e918
mov rax, qword [rbp + 0x78]
mov rcx, qword [rax + 0xa0]
xor edx, edx
call fcn.00602260
mov rax, qword [rbp + 0x78]
cmp byte [rax + 0x247], 0
je 0x81e9d6
mov rax, qword [rbp + 0x78]
mov rbx, qword [rax + 0xa0]
mov rcx, rbx
lea rdx, [rbp + 0x138]
call fcn.006021f0
lea rcx, [rbp + 0x130]
mov rdx, qword [rbp + 0x440]
call fcn.008188c0
lea rcx, [rbp + 0x140]
mov edx, 8
mov rax, qword [rbp + 0x78]
mov r8, qword [rax + 0x108]
lea r9, [0x0081f404]
mov rax, qword [rbp + 0x138]
mov qword [rsp + 0x20], rax
mov rax, qword [rbp + 0x130]
mov qword [rsp + 0x28], rax
lea rax, [0x0081f404]
mov qword [rsp + 0x30], rax
mov rax, qword [rbp + 0x78]
mov rax, qword [rax + 0x230]
mov qword [rsp + 0x38], rax
lea rax, [0x0081f404]
mov qword [rsp + 0x40], rax
mov rax, qword [rbp + 0x430]
mov qword [rsp + 0x48], rax
call fcn.00414a50
mov rcx, rbx
mov rdx, qword [rbp + 0x140]
call fcn.00602260
jmp 0x81ea4d
mov rax, qword [rbp + 0x78]
mov rbx, qword [rax + 0xa0]
mov rcx, rbx
lea rdx, [rbp + 0x120]
call fcn.006021f0
lea rcx, [rbp + 0x118]
mov rdx, qword [rbp + 0x440]
call fcn.008188c0
lea rcx, [rbp + 0x128]
mov edx, 4
mov rax, qword [rbp + 0x78]
mov r8, qword [rax + 0x108]
lea r9, [0x0081f404]
mov rax, qword [rbp + 0x120]
mov qword [rsp + 0x20], rax
mov rax, qword [rbp + 0x118]
mov qword [rsp + 0x28], rax
call fcn.00414a50
mov rcx, rbx
mov rdx, qword [rbp + 0x128]
call fcn.00602260
mov rax, qword [rbp + 0x78]
cmp byte [rax + 0x242], 0
je 0x81ea61
mov ebx, 0x8000000
jmp 0x81ea63
xor ebx, ebx
mov rax, qword [0x0091a378]
mov rcx, qword [rax]
call fcn.007397f0
cmp qword [rbp + 0x420], 0
je 0x81ea86
cmp qword [rbp + 0x428], 0
jne 0x81ead7
mov rcx, qword [rbp + 0x430]
call fcn.00414500
mov rcx, qword [rbp + 0x78]
mov rcx, qword [rcx + 0x158]
mov rdx, rax
movzx r8, word [rbp + 0x438]
xor r9, r9
mov qword [rsp + 0x20], 0
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x38], 0
call sub.wininet.dll_InternetConnectW
mov qword [rbp + 0x80], rax
jmp 0x81eb40
mov rcx, qword [rbp + 0x430]
call fcn.00414500
mov rsi, rax
mov rcx, qword [rbp + 0x420]
call fcn.00414500
mov rdi, rax
mov rcx, qword [rbp + 0x428]
call fcn.00414500
mov rcx, qword [rbp + 0x78]
mov rcx, qword [rcx + 0x158]
mov rdx, rsi
movzx r8, word [rbp + 0x438]
mov r9, rdi
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x38], 0
call sub.wininet.dll_InternetConnectW
mov qword [rbp + 0x80], rax
mov rax, qword [rbp + 0x80]
test rax, rax
jne 0x81ebd4
mov rax, qword [rbp + 0x78]
cmp qword [rax + 0x160], 0
je 0x81eb7d
mov rax, qword [rbp + 0x78]
mov rcx, qword [rax + 0x168]
mov rdx, qword [rbp + 0x78]
mov r8d, 6
mov rbx, qword [rbp + 0x78]
call qword [rbx + 0x160]
mov rax, qword [rbp + 0x78]
cmp qword [rax + 0x170], 0
je 0x81f240
lea rcx, [rbp + 0x110]
lea rdx, [0x0081f428]
mov r8, qword [rbp + 0x430]
call fcn.00414920
mov rax, qword [rbp + 0x78]
mov rcx, qword [rax + 0x178]
mov rdx, qword [rbp + 0x78]
mov r8d, 6
mov r9, qword [rbp + 0x110]
mov rbx, qword [rbp + 0x78]
call qword [rbx + 0x170]
jmp 0x81f240
cmp byte [rbp + 0x470], 0
je 0x81ec1a
mov rax, qword [rbp + 0x80]
mov rcx, qword [rbp + 0x78]
mov qword [rcx + 0x2d0], rax
lea rcx, [rcx + 0x2d8]
mov edx, 3
mov r8, qword [rbp + 0x430]
mov r9, qword [rbp + 0x420]
mov rax, qword [rbp + 0x428]
mov qword [rsp + 0x20], rax
call fcn.00414a50
xor eax, eax
mov byte [rbp + 0x8e], al
mov rax, qword [0x0091a378]
mov rcx, qword [rax]
call fcn.007397f0
lea rcx, [0x0081f470]
mov rdx, qword [rbp + 0x440]
mov r8d, 1
call fcn.00414d80
test eax, eax
jle 0x81ec8e
lea rcx, [rbp + 0x108]
mov rdx, qword [rbp + 0x440]
lea r8, [0x0081f470]
lea r9, [0x0081f480]
movzx rax, byte [0x0081f484]
mov byte [rsp + 0x20], al
call fcn.0044b200
lea rcx, [rbp + 0x440]
mov rdx, qword [rbp + 0x108]
call fcn.00413430
lea rcx, [0x0081f480]
mov rdx, qword [rbp + 0x440]
mov r8d, 1
call fcn.00414d80
test eax, eax
jle 0x81ed92
lea rcx, [rbp + 0x3d0]
mov rdx, qword [rbp + 0x440]
call fcn.00413430
jmp 0x81ece2
xor eax, eax
test rcx, rcx
je 0x81ecce
mov eax, dword [rcx - 4]
lea rcx, [rbp + 0x3d0]
mov edx, eax
mov r8d, 1
call fcn.00414bd0
xor eax, eax
mov rcx, qword [rbp + 0x3d0]
test rcx, rcx
je 0x81ecf3
mov eax, dword [rcx - 4]
mov rdx, qword [rbp + 0x3d0]
movsxd rax, eax
cmp word [rdx + rax*2 - 2], 0x2f
je 0x81ed16
xor eax, eax
test rcx, rcx
je 0x81ed0f
mov eax, dword [rcx - 4]
test eax, eax
setg al
jmp 0x81ed18
xor eax, eax
test al, al
jne 0x81ecc4
xor eax, eax
mov rcx, qword [rbp + 0x3d0]
test rcx, rcx
je 0x81ed2d
mov eax, dword [rcx - 4]
test eax, eax
jle 0x81ed92
mov dword [rbp + 0x174], 0xff
lea rcx, [rbp + 0x178]
mov edx, dword [rbp + 0x174]
call fcn.00414780
mov rcx, qword [rbp + 0x178]
call fcn.00414500
mov rcx, qword [rbp + 0x80]
mov rdx, rax
lea r8, [rbp + 0x174]
call sub.wininet.dll_FtpGetCurrentDirectoryW
mov al, 1
mov byte [rbp + 0x8e], al
mov rcx, qword [rbp + 0x3d0]
call fcn.00414500
mov rcx, qword [rbp + 0x80]
mov rdx, rax
call sub.wininet.dll_FtpSetCurrentDirectoryW
lea rcx, [rbp + 0x3d8]
mov rdx, qword [rbp + 0x440]
call fcn.008188c0
mov rcx, qword [rbp + 0x3d8]
call fcn.00414500
mov rcx, qword [rbp + 0x80]
mov rdx, rax
lea r8, [rbp + 0x180]
xor r9, r9
mov qword [rsp + 0x20], 0
call sub.wininet.dll_FtpFindFirstFileW
mov rbx, rax
mov rcx, qword [0x004d6fc0]
mov dl, 1
call fcn.005167c0
mov qword [rbp + 0x90], rax
test rbx, rbx
je 0x81ee69
lea rcx, [rbp + 0x100]
lea rdx, [rbp + 0x1ac]
call fcn.0043ded0
mov rcx, qword [rbp + 0x90]
mov rdx, qword [rbp + 0x100]
mov rax, qword [rbp + 0x90]
mov rax, qword [rax]
call qword [rax + 0x78]
jmp 0x81ee4e
lea rcx, [rbp + 0xf8]
lea rdx, [rbp + 0x1ac]
call fcn.0043ded0
mov rcx, qword [rbp + 0x90]
mov rdx, qword [rbp + 0xf8]
mov rax, qword [rbp + 0x90]
mov rax, qword [rax]
call qword [rax + 0x78]
mov rcx, rbx
lea rdx, [rbp + 0x180]
call sub.wininet.dll_InternetFindNextFileW
test eax, eax
jne 0x81ee20
mov rcx, rbx
call sub.wininet.dll_InternetCloseHandle
mov rax, qword [rbp + 0x90]
mov rcx, rax
mov rax, qword [rax]
call qword [rax + 0x28]
xor ecx, ecx
mov edi, eax
sub edi, 1
mov ebx, ecx
cmp ebx, edi
jg 0x81f1bf
sub edi, ecx
add edi, 1
lea rcx, [rbp + 0x98]
mov edx, 4
call fcn.00412df0
lea rcx, [rbp + 0xb8]
call fcn.00412d10
lea rcx, [rbp + 0xc0]
rol byte [rax], 0
add byte [rdx + 2], bh