Function at 0x602c3860
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
xor edi, edi
mov ebx, ecx
xor esi, esi
mov dword [ebp - 4], edi
call fcn.602c34c0
test eax, eax
mov eax, dword [ebx + 0x4c]
je 0x602c39e9
push eax
call sub.PNCRT.dll_void___cdecl_operator_delete_void__
mov ecx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x24]
add esp, 4
or ecx, eax
mov dword [ebx + 0x4c], edi
je 0x602c38c7
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [ebx + 0x20]
xor ecx, ecx
sub eax, edx
mov edx, dword [ebx + 0x24]
sbb ecx, edx
cmp ecx, edi
jg 0x602c38c7
jl 0x602c38b7
cmp eax, 0x2932e00
jae 0x602c38c7
mov dword [ebx + 0x78], 1
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebx + 0x38]
mov dword [ebx + 0x78], 2
cmp ecx, edi
je 0x602c3909
mov eax, dword [ecx + 8]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], eax
cmp ecx, dword [ebx + 0x38]
jne 0x602c38e7
cmp eax, edi
je 0x602c3909
push eax
call fcn.602c9b10
mov eax, dword [eax]
push eax
mov edx, dword [eax]
call dword [edx + 0xc]
mov ecx, dword [ebp - 0xc]
lea eax, [ebp - 8]
push eax
call fcn.602c9af0
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
jmp 0x602c38de
mov eax, dword [ebx + 0x2c]
lea edx, [ebp - 4]
push edx
push str.ProxyAutoConfigURL
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
test eax, eax
jne 0x602c3995
mov eax, dword [ebp - 4]
cmp eax, edi
je 0x602c3995
cmp dword [ebx + 0x50], edi
je 0x602c3943
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
mov ecx, dword [ebx + 0x50]
push eax
push ecx
call dword [sym.imp.PNCRT.dll__stricmp]
add esp, 8
test eax, eax
je 0x602c39a4
mov edx, dword [ebx + 0x50]
push edx
call sub.PNCRT.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebp - 4]
add esp, 4
mov dword [ebx + 0x50], edi
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
inc eax
push eax
call sub.PNCRT.dll_void____cdecl_operator_new_unsigned_int_
mov dword [ebx + 0x50], eax
mov eax, dword [ebp - 4]
add esp, 4
mov edx, dword [eax]
push eax
call dword [edx + 0x1c]
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [ebx + 0x50]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor edi, edi
jmp 0x602c39a4
mov ecx, dword [ebx + 0x50]
push ecx
call sub.PNCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [ebx + 0x50], edi
mov eax, dword [ebp - 4]
cmp eax, edi
je 0x602c39b4
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov dword [ebp - 4], edi
mov eax, dword [ebx + 0x50]
cmp eax, edi
je 0x602c39cf
push eax
mov ecx, ebx
call fcn.602c40c0
pop edi
pop esi
mov eax, 0x8004004e
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.602c3ff0
mov ecx, ebx
call fcn.602c3f60
pop edi
pop esi
mov eax, 0x8004004e
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, edi
jne 0x602c38be
mov eax, dword [ebx + 0x5c]
push 0x6030ca8c
push eax
call dword [sym.imp.PNCRT.dll_fopen]
mov esi, eax
add esp, 8
cmp esi, edi
je 0x602c3a7e
push 2
push edi
push esi
call dword [sym.imp.PNCRT.dll_fseek]
push esi
call dword [sym.imp.PNCRT.dll_ftell]
mov edi, eax
push edi
mov dword [ebp - 8], edi
call sub.PNCRT.dll_void____cdecl_operator_new_unsigned_int_
mov edx, eax
mov ecx, edi
mov dword [ebx + 0x4c], edx
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
push 0
and ecx, 3
push 0
rep stosb byte es:[edi], al
push esi
call dword [sym.imp.PNCRT.dll_fseek]
mov eax, dword [ebp - 8]
mov ecx, dword [ebx + 0x4c]
push esi
push eax
push 1
push ecx
call dword [sym.imp.PNCRT.dll_fread]
push esi
call dword [sym.imp.PNCRT.dll_fclose]
add esp, 0x34
mov ecx, ebx
call fcn.602c34e0
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x78], 1
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebx + 0x54], edi
jne 0x602c3ade
mov eax, dword [ebx + 0x2c]
lea ecx, [ebp - 4]
push ecx
push str.LastKnownProxyAutoConfigURL
mov edx, dword [eax]
push eax
call dword [edx + 0xc]
test eax, eax
jne 0x602c3ade
mov eax, dword [ebp - 4]
cmp eax, edi
je 0x602c3aee
mov edx, dword [eax]
push eax
call dword [edx + 0x18]
inc eax
push eax
call sub.PNCRT.dll_void____cdecl_operator_new_unsigned_int_
mov dword [ebx + 0x54], eax
mov eax, dword [ebp - 4]
add esp, 4
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [ebx + 0x54]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor edi, edi
mov eax, dword [ebp - 4]
cmp eax, edi
je 0x602c3aee
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], edi
mov eax, dword [ebx + 0x54]
cmp eax, edi
je 0x602c3a75
push eax
mov ecx, ebx
mov dword [ebx + 0x78], 2
call fcn.602c40c0
pop edi
pop esi
mov eax, 0x8004004e
pop ebx
mov esp, ebp
pop ebp
ret