Function at 0x52ce70
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x110
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x124]
lea ebp, [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
mov eax, dword [ebp + 0x18]
xor ebx, ebx
cmp eax, ebx
je 0x52ce9f
cmp eax, esi
jne 0x52ce9f
add dword [ebp + 0x1c], 1
jmp 0x52cec0
cmp byte [ebp + 7], bl
je 0x52ceb0
lea eax, [ebp + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
jmp 0x52ceba
mov edx, dword [ebp]
mov eax, dword [edx + 0x14]
mov ecx, ebp
call eax
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x18], esi
push edi
call fcn.0052cc20
mov eax, dword [esp + 0x128]
cmp eax, ebx
je 0x52d4dd
cmp byte [eax], bl
je 0x52d4dd
lea ecx, [esp + 0x10]
push ecx
push str.EnableAutodial
mov eax, str.SoftwareMicrosoftWindowsCurrentVersionInternet_Settings
lea esi, [esp + 0x2c]
mov dword [esp + 0x18], ebx
call fcn.00409510
mov eax, esi
call fcn.004029c0
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x10]
mov edi, esi
mov dword [esp + 0x10], ebx
call fcn.004073f0
call fcn.0052c860
test al, al
je 0x52cfde
call fcn.0052c860
test al, al
je 0x52cfde
mov eax, 0x18
mov edi, str.Still_offline__giving_up
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], ebx
call fcn.00459750
call fcn.0052c740
push eax
lea eax, [esp + 0x18]
mov ecx, 1
call fcn.00544020
lea edi, [esp + 0x14]
call fcn.00401700
mov edx, dword [esp + 0x12c]
mov dword [edx], 2
call fcn.00499330
cmp dword [ebp + 0x1c], ebx
je 0x52cf9e
cmp dword [ebp + 0x18], ebx
je 0x52cf9e
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [ebp + 0x18], eax
jne 0x52cf9e
add dword [ebp + 0x1c], 0xffffffff
mov eax, 6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret 0xc
cmp byte [ebp + 7], bl
mov dword [ebp + 0x18], ebx
je 0x52cfc2
add ebp, 0x20
push ebp
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret 0xc
mov eax, dword [ebp]
mov edx, dword [eax + 0x18]
mov ecx, ebp
call edx
mov eax, 6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret 0xc
lea esi, [esp + 0x18]
call fcn.0052f680
mov edi, dword [esp + 0x124]
mov eax, dword [edi + 0x68]
cmp eax, ebx
je 0x52cffa
add eax, 4
jmp 0x52cffc
xor eax, eax
mov esi, dword [esp + 0x18]
cmp esi, ebx
je 0x52d051
lea ecx, [esi + 4]
cmp ecx, ebx
je 0x52d041
cmp eax, ebx
je 0x52d041
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52d035
cmp dl, bl
je 0x52d02c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52d035
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x52d010
xor eax, eax
cmp eax, ebx
jmp 0x52d0e6
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jmp 0x52d0e6
test dword [esi], 0xffffff00
je 0x52d051
cmp byte [ecx], bl
jne 0x52d0e4
cmp eax, ebx
je 0x52d0f1
cmp byte [eax], bl
je 0x52d0f1
cmp byte [edi + 0x6c], bl
jne 0x52d16e
fldz
lea ecx, [edi + 0x70]
fcomp qword [ecx]
fnstsw ax
test ah, 0x44
jnp 0x52d16e
push ecx
call fcn.004959f0
fcomp qword [0x6c0ce0]
fnstsw ax
test ah, 5
jp 0x52d16e
lea edi, [esp + 0x18]
call fcn.00401700
lea esi, [esp + 0x24]
call fcn.00499330
cmp dword [ebp + 0x1c], ebx
je 0x52d0be
cmp dword [ebp + 0x18], ebx
je 0x52d0be
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [ebp + 0x18], eax
je 0x52d4f2
cmp byte [ebp + 7], bl
mov dword [ebp + 0x18], ebx
jne 0x52d50e
mov eax, dword [ebp]
mov edx, dword [eax + 0x18]
mov ecx, ebp
call edx
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret 0xc
cmp ecx, eax
sete al
cmp al, bl
je 0x52d061
cmp byte [edi + 0x6c], bl
je 0x52d06a
lea edi, [esp + 0x18]
call fcn.00401700
lea esi, [esp + 0x24]
call fcn.00499330
cmp dword [ebp + 0x1c], ebx
je 0x52d134
cmp dword [ebp + 0x18], ebx
je 0x52d134
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [ebp + 0x18], eax
jne 0x52d134
add dword [ebp + 0x1c], 0xffffffff
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret 0xc
cmp byte [ebp + 7], bl
mov dword [ebp + 0x18], ebx
je 0x52d155
add ebp, 0x20
push ebp
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret 0xc
mov eax, dword [ebp]
mov edx, dword [eax + 0x18]
mov ecx, ebp
call edx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret 0xc
mov eax, dword [edi + 0x68]
cmp eax, ebx
je 0x52d17a
add eax, 4
jmp 0x52d17c
xor eax, eax
cmp esi, ebx
je 0x52d1c7
lea ecx, [esi + 4]
cmp ecx, ebx
je 0x52d1bb
cmp eax, ebx
je 0x52d1bb
jmp 0x52d190
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52d1b2
cmp dl, bl
je 0x52d1ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52d1b2
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x52d190
xor eax, eax
cmp eax, ebx
jmp 0x52d1d3
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jmp 0x52d1d3
test dword [esi], 0xffffff00
je 0x52d1c7
cmp byte [ecx], bl
jne 0x52d1d1
cmp eax, ebx
je 0x52d1f1
cmp byte [eax], bl
jne 0x52d1da
jmp 0x52d1f1
cmp ecx, eax
sete al
cmp al, bl
jne 0x52d1f1
lea esi, [esp + 0x18]
lea eax, [edi + 0x68]
call fcn.004017d0
mov byte [edi + 0x6c], bl
call fcn.0052d550
mov dword [edi + 0x78], eax
lea eax, [esp + 0x40]
push eax
call fcn.0052fdc0
mov ecx, dword [esp + 0x128]
push ecx
push str.Sending_HEAD_to_test_offline_state:_url:__s
lea esi, [esp + 0x1c]
mov dword [esp + 0x48], vtable.HttpHeadStream.0
mov dword [esp + 0x4c], vtable.HttpHeadStream.1.0
mov dword [esp + 0x50], vtable.HttpHeadStream.2.0
mov byte [esp + 0xe3], bl
mov dword [esp + 0x1c], ebx
call fcn.00407380
add esp, 8
call fcn.0052c740
push eax
mov eax, esi
mov ecx, 2
call fcn.00544020
xor eax, eax
mov edi, 0x67b348
lea ecx, [esp + 0x10]
mov dword [esp + 0x10], ebx
call fcn.00459750
xor eax, eax
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], ebx
call fcn.00459750
mov eax, dword [esp + 0x128]
mov dword [esp + 0x20], ebx
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x52d280
mov edi, dword [esp + 0x128]
sub eax, edx
lea ecx, [esp + 0x20]
call fcn.00459750
push ebx
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x24]
push eax
push ebx
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x54]
call fcn.00532c10
lea edi, [esp + 0x20]
mov esi, eax
call fcn.00401700
lea edi, [esp + 0x1c]
call fcn.00401700
lea edi, [esp + 0x10]
call fcn.00401700
cmp esi, ebx
mov dword [esp + 0x10], ebx
lea ecx, [esp + 0x10]
je 0x52d3ec
mov eax, 0x10
mov edi, str.Test_HEAD_failed
call fcn.00459750
push esi
push 2
call fcn.0052c740
push eax
lea eax, [esp + 0x1c]
call fcn.00544030
lea edi, [esp + 0x10]
call fcn.00401700
mov eax, 0x3e
mov edi, str.Failed_to_ping_server___no_valid_internet_connection_detected.
lea ecx, [esp + 0x10]
mov dword [esp + 0x10], ebx
call fcn.00459750
call fcn.0052c740
push eax
lea eax, [esp + 0x14]
mov ecx, 1
call fcn.00544020
lea edi, [esp + 0x10]
call fcn.00401700
mov eax, dword [esp + 0x124]
mov edx, dword [esp + 0x12c]
add eax, 0x70
push eax
mov dword [edx], 3
call fcn.00495ac0
lea edi, [esp + 0x14]
call fcn.00401700
lea ecx, [esp + 0x40]
call fcn.0052ffc0
lea edi, [esp + 0x18]
call fcn.00401700
lea esi, [esp + 0x24]
call fcn.00499330
cmp dword [ebp + 0x1c], ebx
je 0x52d3ac
cmp dword [ebp + 0x18], ebx
je 0x52d3ac
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [ebp + 0x18], eax
jne 0x52d3ac
add dword [ebp + 0x1c], 0xffffffff
mov eax, 6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret 0xc
cmp byte [ebp + 7], bl
mov dword [ebp + 0x18], ebx
je 0x52d3d0
add ebp, 0x20
push ebp
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret 0xc
mov edx, dword [ebp]
mov eax, dword [edx + 0x18]
mov ecx, ebp
call eax
mov eax, 6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret 0xc
mov eax, 0x17
mov edi, str.Offline_HEAD_connected.
call fcn.00459750
call fcn.0052c740
push eax
lea eax, [esp + 0x14]
mov ecx, 2
call fcn.00544020
lea edi, [esp + 0x10]
call fcn.00401700
mov ecx, dword [esp + 0x124]
mov byte [ecx + 0x6c], 1
mov eax, 0x3f
mov edi, str.Succesfully_pinged_server___valid_internet_connection_detected.
lea ecx, [esp + 0x10]
mov dword [esp + 0x10], ebx
call fcn.00459750
call fcn.0052c740
push eax
lea eax, [esp + 0x14]
mov ecx, 4
call fcn.00544020
lea edi, [esp + 0x10]
call fcn.00401700
lea edi, [esp + 0x14]
call fcn.00401700
lea ecx, [esp + 0x40]
call fcn.0052ffc0
lea edi, [esp + 0x18]
call fcn.00401700
lea esi, [esp + 0x24]
call fcn.00499330
cmp dword [ebp + 0x1c], ebx
je 0x52d4a3
cmp dword [ebp + 0x18], ebx
je 0x52d4a3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [ebp + 0x18], eax
jne 0x52d4a3
add dword [ebp + 0x1c], 0xffffffff
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret 0xc
cmp byte [ebp + 7], bl
mov dword [ebp + 0x18], ebx
je 0x52d4c4
add ebp, 0x20
push ebp
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret 0xc
mov edx, dword [ebp]
mov eax, dword [edx + 0x18]
mov ecx, ebp
call eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret 0xc
cmp dword [ebp + 0x1c], ebx
je 0x52d506
cmp dword [ebp + 0x18], ebx
je 0x52d506
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [ebp + 0x18], eax
jne 0x52d506
add dword [ebp + 0x1c], 0xffffffff
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret 0xc
cmp byte [ebp + 7], bl
mov dword [ebp + 0x18], ebx
je 0x52d528
add ebp, 0x20
push ebp
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret 0xc
mov edx, dword [ebp]
mov eax, dword [edx + 0x18]
mov ecx, ebp
call eax
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x110
ret 0xc