Function at 0x440520
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x58d335
mov eax, dword fs:[0]
push eax
sub esp, 0xd10
mov eax, dword [0x5f4760]
xor eax, esp
mov dword [esp + 0xd08], eax
push ebx
push esi
push edi
mov eax, dword [0x5f4760]
xor eax, esp
push eax
lea eax, [esp + 0xd20]
mov dword fs:[0], eax
xor ebx, ebx
mov edi, 0x5d2d34
lea esi, [esp + 0x10]
mov byte [esp + 0x16], bl
mov byte [esp + 0x17], bl
call fcn.004065f0
mov dword [esp + 0xd28], ebx
mov eax, dword [esp + 0x10]
mov ecx, dword [0x604340]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push eax
push ecx
push str.proxySwitch
push str.proxy_auth
call esi
mov dword [0x604340], eax
sub eax, 1
je 0x440b2a
sub eax, 1
jne 0x440be9
push 0x7ff
lea eax, [esp + 0x519]
push ebx
push eax
mov byte [esp + 0x520], bl
call fcn.004add60
mov ecx, dword [esp + 0x1c]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
add esp, 0xc
push ecx
push 0x7ff
lea edx, [esp + 0x51c]
push edx
push 0x5d2b98
push str.proxyIP
push str.proxy_auth
call edi
lea ecx, [esp + 0x514]
call fcn.0040d430
cmp eax, 0xffffffff
je 0x440616
push eax
call dword [sym.imp.WS2_32.dll_inet_ntoa]
mov edx, eax
jmp 0x44061d
lea edx, [esp + 0x514]
mov ebx, 0x60432c
call fcn.00403440
mov eax, dword [esp + 0x10]
push eax
push 0x50
push str.proxyPort
push str.proxy_auth
call esi
mov ecx, dword [0x604340]
mov edx, dword [0x60432c]
push ecx
mov ebx, eax
push ebx
push edx
push str.init_proxy__s:_u__type__d
mov esi, 0x602250
call fcn.00409e30
add esp, 0x10
cmp ebx, 0xffff
ja 0x440c54
movzx eax, bx
mov word [0x604330], bx
cmp dword [0x603db0], eax
jne 0x44078f
lea esi, [esp + 0x30]
mov edi, 0x6043e0
call fcn.00437c10
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edi
lea ebx, [ebx]
mov eax, dword [0x6043f0]
mov ebx, eax
cmp dword [0x6043ec], eax
jbe 0x4406b4
call fcn.004a35f3
test esi, esi
je 0x4406c0
cmp esi, dword [0x6043e0]
je 0x4406c5
call fcn.004a35f3
cmp edi, ebx
je 0x440789
test esi, esi
jne 0x44071d
call fcn.004a35f3
cmp edi, dword [esi + 0x10]
jb 0x4406e0
call fcn.004a35f3
mov ecx, dword [0x60432c]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x440721
mov eax, dword [edi]
push ecx
push eax
call fcn.004a47ba
add esp, 8
test eax, eax
sete al
test al, al
jne 0x44072b
lea edi, [esp + 0x28]
lea esi, [esp + 0x20]
call fcn.0040cef0
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
jmp 0x4406a0
mov esi, dword [esi]
jmp 0x4406d6
push 0x80004005
call fcn.00401e70
mov ecx, dword [0x60432c]
push ecx
push str.Proxy_server_has_loop__proxyip:__s
mov ebx, 3
mov ecx, 0x604408
mov dword [0x604344], 0
call fcn.00446e90
mov edx, dword [esp + 0x18]
add esp, 8
push edx
push 0x5d70fc
push str.proxySwitch
push str.proxy_auth
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov dword [esp + 0xd28], 0xffffffff
lea eax, [esp + 0x10]
push eax
call fcn.00403090
xor al, al
jmp 0x440ccc
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esp + 0x10]
push ecx
push 0x7ff
lea edx, [esp + 0x51c]
push edx
push 0x5d2b98
push str.proxyUser
push str.proxy_auth
call edi
mov ecx, dword [0x604334]
lea eax, [esp + 0x514]
push eax
push ecx
call fcn.004a47ba
add esp, 8
test eax, eax
setne al
test al, al
je 0x4407e7
lea edx, [esp + 0x514]
mov ebx, 0x604334
call fcn.00403440
mov bl, 1
jmp 0x4407eb
mov bl, byte [esp + 0x17]
mov edx, dword [esp + 0x10]
push edx
push 0x7ff
lea eax, [esp + 0x51c]
push eax
push 0x5d2b98
push str.proxyPasswd
push str.proxy_auth
call edi
mov edx, dword [0x604338]
lea ecx, [esp + 0x514]
push ecx
push edx
call fcn.004a47ba
add esp, 8
test eax, eax
setne al
test al, al
je 0x440841
lea edx, [esp + 0x514]
mov ebx, 0x604338
call fcn.00403440
jmp 0x440849
test bl, bl
je 0x440aeb
mov dword [esp + 0x88], 0xf
mov dword [esp + 0x84], 0
mov byte [esp + 0x74], 0
mov byte [esp + 0xd28], 1
lea eax, [esp + 0x20]
push eax
call fcn.004030f0
mov byte [esp + 0xd28], 2
mov ebx, 0x604334
call fcn.00406560
mov edi, eax
call fcn.00406480
mov ebx, 0x604338
call fcn.00406560
mov edi, eax
call fcn.00406480
mov ecx, dword [0x604334]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x440a9f
mov edi, 0x400
cmp eax, edi
jge 0x440a9f
mov edx, dword [0x604338]
cmp dword [edx - 0xc], edi
jge 0x440a9f
lea eax, [esp + 0x28]
push eax
call fcn.004030f0
mov byte [esp + 0xd28], 3
lea ecx, [esp + 0x1c]
push ecx
call fcn.004030f0
mov bl, 4
mov byte [esp + 0xd28], bl
push 0x3ff
lea edx, [esp + 0x119]
push 0
push edx
mov byte [esp + 0x120], 0
call fcn.004add60
mov eax, dword [0x604334]
add esp, 0xc
push eax
lea ecx, [esp + 0x3c]
mov dword [esp + 0x1c], edi
call fcn.00403ca0
mov byte [esp + 0xd28], 5
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x118]
push edx
lea eax, [esp + 0x40]
push eax
call fcn.00402040
add esp, 0xc
movzx esi, al
mov byte [esp + 0xd28], bl
lea ecx, [esp + 0x38]
call fcn.00403ce0
test esi, esi
je 0x44097f
mov eax, dword [esp + 0x18]
cmp eax, edi
jae 0x44097f
lea edx, [esp + 0x114]
lea ebx, [esp + 0x28]
mov byte [esp + eax + 0x114], 0
call fcn.00403440
jmp 0x440988
lea esi, [esp + 0x28]
call fcn.00403480
lea eax, [esp + 0x28]
mov ebx, 0x604334
call fcn.00406760
mov ecx, dword [0x604338]
push ecx
lea ecx, [esp + 0x58]
mov dword [esp + 0x1c], edi
call fcn.00403ca0
mov byte [esp + 0xd28], 6
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x118]
push eax
lea ecx, [esp + 0x5c]
push ecx
call fcn.00402040
add esp, 0xc
movzx esi, al
mov byte [esp + 0xd28], 4
lea ecx, [esp + 0x54]
call fcn.00403ce0
test esi, esi
je 0x440a06
mov eax, dword [esp + 0x18]
cmp eax, edi
jae 0x440a06
lea edx, [esp + 0x114]
lea ebx, [esp + 0x1c]
mov byte [esp + eax + 0x114], 0
call fcn.00403440
jmp 0x440a0f
lea esi, [esp + 0x1c]
call fcn.00403480
lea eax, [esp + 0x1c]
mov ebx, 0x604338
call fcn.00406760
mov eax, dword [esp + 0x28]
cmp dword [eax - 0xc], 0
je 0x440a7b
mov edx, dword [esp + 0x1c]
push edx
push eax
push str._s:_s
lea edi, [esp + 0x2c]
call fcn.00402e20
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx - 0xc]
add esp, 0xc
push eax
lea eax, [esp + 0x74]
call fcn.00401ef0
add esp, 4
test al, al
je 0x440a7b
cmp dword [esp + 0x88], 0x10
mov eax, dword [esp + 0x74]
jae 0x440a68
lea eax, [esp + 0x74]
push eax
push str.Proxy_Authorization:_Basic__s_r_n_r_n
mov edi, 0x60433c
call fcn.00402e20
add esp, 8
mov byte [esp + 0xd28], 3
lea eax, [esp + 0x1c]
push eax
call fcn.00403090
mov byte [esp + 0xd28], 2
lea ecx, [esp + 0x28]
push ecx
call fcn.00403090
mov byte [esp + 0xd28], 1
lea edx, [esp + 0x20]
push edx
call fcn.00403090
mov byte [esp + 0xd28], 0
cmp dword [esp + 0x88], 0x10
jb 0x440ad0
mov eax, dword [esp + 0x74]
push eax
call fcn.004a3142
add esp, 4
mov dword [esp + 0x88], 0xf
mov dword [esp + 0x84], 0
mov byte [esp + 0x74], 0
mov ecx, dword [0x60432c]
push 0x7f
push ecx
lea edx, [esp + 0x94]
push edx
call fcn.004a5b40
mov ax, word [0x604330]
add esp, 0xc
xor ebx, ebx
test ax, ax
jbe 0x440b1b
mov word [esp + 0x10c], ax
jmp 0x440b6f
mov eax, 0x50
mov word [esp + 0x10c], ax
jmp 0x440b6f
lea edx, [esp + 0x8c]
push edx
call fcn.00440040
add esp, 4
test al, al
je 0x440b6f
lea ecx, [esp + 0x8c]
call fcn.0040d430
cmp eax, 0xffffffff
je 0x440b6a
push eax
call dword [sym.imp.WS2_32.dll_inet_ntoa]
lea edx, [esp + 0x8c]
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx], cl
inc eax
inc edx
cmp cl, bl
jne 0x440b60
mov byte [esp + 0x16], 1
lea edi, [esp + 0x8c]
call fcn.0043fdb0
test al, al
jne 0x440c05
mov esi, 0x60432c
mov dword [0x604344], ebx
call fcn.00403480
xor eax, eax
mov esi, 0x604334
mov word [0x604330], ax
call fcn.00403480
mov esi, 0x604338
call fcn.00403480
mov esi, 0x60433c
call fcn.00403480
cmp byte [0x604816], bl
jne 0x440be9
mov ecx, edi
push ecx
push str.proxy_address:__s_illegal_
mov ebx, 3
mov ecx, 0x604408
call fcn.00446e90
add esp, 8
mov byte [0x604816], 1
mov byte [0x604817], 0
mov dword [esp + 0xd28], 0xffffffff
lea edx, [esp + 0x10]
push edx
call fcn.00403090
xor al, al
jmp 0x440ccc
cmp byte [0x604817], bl
jne 0x440c3c
lea eax, [esp + 0x8c]
push eax
push str.proxy_address:__s_is_valid_
mov ebx, 3
mov ecx, 0x604408
call fcn.00446e90
add esp, 8
mov byte [0x604817], 1
mov byte [0x604816], 0
xor ebx, ebx
lea eax, [esp + 0x8c]
call fcn.004404f0
mov esi, eax
cmp esi, ebx
jne 0x440c6d
mov dword [0x604344], ebx
mov dword [esp + 0xd28], 0xffffffff
lea ecx, [esp + 0x10]
push ecx
call fcn.00403090
xor al, al
jmp 0x440ccc
cmp byte [esp + 0x16], bl
je 0x440cab
mov edx, esi
mov ebx, 0x60432c
call fcn.00403440
mov dx, word [esi + 0x80]
mov esi, 0x604334
mov word [0x604330], dx
call fcn.00403480
mov esi, 0x604338
call fcn.00403480
mov esi, 0x60433c
call fcn.00403480
mov dword [0x604344], 1
mov dword [esp + 0xd28], 0xffffffff
lea eax, [esp + 0x10]
push eax
call fcn.00403090
mov al, 1
mov ecx, dword [esp + 0xd20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd08]
xor ecx, esp
call fcn.004a314d
mov esp, ebp
pop ebp
ret