Function at 0x40f650
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x558
mov eax, dword [0x42500c]
xor eax, esp
mov dword [esp + 0x554], eax
push ebx
push edi
push 0x400
lea eax, [esp + 0x15c]
mov ebx, ecx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0xd8]
push 0x80
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0xc8
mov edi, eax
lea eax, [esp + 0x14]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x10]
push str.http:__ip_api.com_json_
push 0xc8
push eax
call fcn.0040afa0
add esp, 8
lea edx, [esp + 0x15c]
lea ecx, [esp + 0x14]
call fcn.0040dfd0
add esp, 4
mov byte [esp + 0xb], al
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, edi
push eax
push 0x79
push str.getPublicIP_V2
push str._s__d___Time:__d
lea eax, [esp + 0xe8]
push 0x80
push eax
call fcn.0040afa0
add esp, 0x18
lea edx, [esp + 0xd8]
push 0x40a8e0
push ecx
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.0040a6a0
add esp, 4
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_____]
cmp byte [esp + 0xb], 0
je 0x40f80b
lea ecx, [esp + 0x158]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f748
sub ecx, edx
je 0x40f80b
push 0x180
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [esp + 0x158]
push ebx
call fcn.0040f210
mov dl, al
add esp, 4
mov dword [esp + 0xc], edx
test dl, dl
je 0x40f7b9
mov ecx, str.success
mov al, byte [ebx]
cmp al, byte [ecx]
jne 0x40f7a6
test al, al
je 0x40f7a2
mov al, byte [ebx + 1]
cmp al, byte [ecx + 1]
jne 0x40f7a6
add ebx, 2
add ecx, 2
test al, al
jne 0x40f786
xor eax, eax
jmp 0x40f7ab
sbb eax, eax
or eax, 1
xor ecx, ecx
movzx edx, dl
test eax, eax
cmovne edx, ecx
mov dword [esp + 0xc], edx
push 0x40a8e0
push ecx
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [esp + 0x18]
call fcn.0040a6a0
mov edx, str._tResp:_t
mov ecx, eax
call fcn.0040a6a0
lea edx, [esp + 0x160]
mov ecx, eax
call fcn.0040a6a0
add esp, 4
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 al, byte [esp + 0xc]
pop edi
pop ebx
mov ecx, dword [esp + 0x554]
xor ecx, esp
call fcn.00418d36
mov esp, ebp
pop ebp
ret
push 0x40a8e0
push ecx
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [esp + 0x18]
call fcn.0040a6a0
mov edx, str._tfail__t
mov ecx, eax
call fcn.0040a6a0
add esp, 4
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 ecx, dword [esp + 0x55c]
mov al, byte [esp + 0xb]
pop edi
pop ebx
xor ecx, esp
call fcn.00418d36
mov esp, ebp
pop ebp
ret