Function at 0x404d76
Capabilities:
Packed with generic packer

Disassembly:
push ebp
push esp
pop ebp
push edi
push esi
push ebx
sub esp, 0x24
mov dword [ebp - 0x28], eax
push ecx
pop edi
push edx
pop ebx
push 0x41f499
push ecx
call fcn.0041dbe0
add esp, 0x10
mov dword [ebp - 0x24], edi
or eax, eax
je 0x404e3c
add eax, 3
mov dword [ebp - 0x24], eax
push eax
push 7
push edi
push str.socks5h
call fcn.004180d5
add esp, 0x10
test eax, eax
je 0x404dc6
mov dword [ebx + 0x138], 7
jmp 0x404e3c
push eax
push 6
push edi
push str.socks5
call fcn.004180d5
add esp, 0x10
test eax, eax
je 0x404de7
mov dword [ebx + 0x138], 5
jmp 0x404e3c
push eax
push 7
push edi
push str.socks4a
call fcn.004180d5
add esp, 0x10
or eax, eax
je 0x404e08
mov dword [ebx + 0x138], 6
jmp 0x404e3c
push eax
push 6
push edi
push str.socks4
call fcn.004180d5
add esp, 0x10
or eax, eax
jne 0x404e32
push esi
push 5
push edi
push str.socks
call fcn.004180d5
add esp, 0x10
or eax, eax
je 0x404e3c
mov dword [ebx + 0x138], 4
push ecx
push ecx
push 0x40
push dword [ebp - 0x24]
call fcn.0041db30
add esp, 0x10
mov dword [ebp - 0x20], eax
or eax, eax
je 0x404faf
push edx
push edx
push eax
pop edx
lea eax, [ebp - 0x14]
sub edx, dword [ebp - 0x24]
push 0
lea ecx, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
call fcn.004048cb
add esp, 0x10
push eax
pop esi
test eax, eax
jne 0x404f71
mov eax, dword [ebx + 0x130]
test eax, eax
je 0x404eaa
sub esp, 0xc
push eax
call dword [0x41e00c]
mov dword [ebx + 0x130], 0
add esp, 0x10
mov edx, dword [ebp - 0x10]
test edx, edx
je 0x404ed5
cld
or ecx, 0xffffffff
xor eax, eax
push edx
pop edi
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0xff
ja 0x404ed5
push 0
push 0
push edx
push dword [ebp - 0x28]
call fcn.00418a5b
jmp 0x404ee3
sub esp, 0xc
push 0x41f460
call dword [0x41e014]
mov dword [ebx + 0x130], eax
add esp, 0x10
cmp dword [ebx + 0x130], 0
je 0x404f6c
mov eax, dword [ebx + 0x134]
test eax, eax
je 0x404f16
sub esp, 0xc
push eax
call dword [0x41e00c]
mov dword [ebx + 0x134], 0
add esp, 0x10
mov edx, dword [ebp - 0x14]
test edx, edx
je 0x404f41
cld
or ecx, 0xffffffff
xor eax, eax
push edx
pop edi
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0xff
ja 0x404f41
push 0
push 0
push edx
push dword [ebp - 0x28]
call fcn.00418a5b
jmp 0x404f4f
sub esp, 0xc
push 0x41f460
call dword [0x41e014]
mov dword [ebx + 0x134], eax
add esp, 0x10
cmp dword [ebx + 0x134], 0
jne 0x405123
jmp 0x404f6c
mov dword [ebp - 0x24], eax
jmp 0x404f71
pushal
popal
push 0x1b
pop esi
mov eax, dword [ebp - 0x10]
or eax, eax
je 0x404f8c
sub esp, 0xc
push eax
call dword [0x41e00c]
mov dword [ebp - 0x10], 0
add esp, 0x10
mov eax, dword [ebp - 0x14]
or eax, eax
je 0x404fa7
sub esp, 0xc
push eax
call dword [0x41e00c]
mov dword [ebp - 0x14], 0
add esp, 0x10
test esi, esi
jne 0x405139
mov eax, dword [ebp - 0x24]
cmp byte [eax], 0x5b
jne 0x40509f
inc dword [ebp - 0x24]
mov esi, dword [0x4252e8]
mov edi, dword [ebp - 0x24]
jmp 0x404fca
inc edi
mov al, byte [edi]
test al, al
je 0x405008
movzx edx, al
mov eax, dword [0x4252c4]
cmp dword [eax], 1
jne 0x404fea
mov eax, dword [esi]
movzx eax, word [eax + edx*2]
and eax, 0x80
jmp 0x404ffa
push eax
push eax
push pe_nt_image_headers32
push edx
call fcn.0041db90
add esp, 0x10
test eax, eax
jne 0x404fc9
mov al, byte [edi]
cmp al, 0x3a
je 0x404fc9
cmp al, 0x2e
je 0x404fc9
cmp byte [edi], 0x25
jne 0x405094
inc edi
mov esi, dword [0x4252e8]
jmp 0x40501b
inc edi
mov al, byte [edi]
test al, al
je 0x405094
movzx edx, al
mov eax, dword [0x4252c4]
cmp dword [eax], 1
jne 0x40503b
mov eax, dword [esi]
movzx eax, word [eax + edx*2]
and eax, 0x103
jmp 0x40504b
push eax
push eax
push 0x103
push edx
call fcn.0041db90
add esp, 0x10
or eax, eax
jne 0x40501a
mov eax, dword [0x4252c4]
movzx edx, byte [edi]
cmp dword [eax], 1
jne 0x40506e
mov eax, dword [0x4252e8]
mov eax, dword [eax]
movzx eax, word [eax + edx*2]
and eax, 0x80
jmp 0x40507e
push eax
push eax
push pe_nt_image_headers32
push edx
call fcn.0041db90
add esp, 0x10
or eax, eax
jne 0x40501a
mov al, byte [edi]
cmp al, 0x2d
je 0x40501a
cmp al, 0x2e
je 0x40501a
cmp al, 0x5f
je 0x40501a
cmp al, 0x7e
je 0x40501a
cmp byte [edi], 0x5d
jne 0x40509d
mov byte [edi], 0
inc edi
push edi
pop eax
push ecx
push ecx
push 0x3a
push eax
call fcn.0041db30
add esp, 0x10
or eax, eax
je 0x4050ca
mov byte [eax], 0
inc eax
push edx
push 0xa
push 0
push eax
call fcn.0041dc00
add esp, 0x10
mov dword [ebx + 0xb0], eax
jmp 0x4050fe
mov edx, dword [ebp - 0x24]
nop
push 5
nop
pop esi
cmp byte [edx], 0x2f
je 0x405139
push eax
push eax
push 0x2f
push edx
call fcn.0041db30
add esp, 0x10
or eax, eax
je 0x4050eb
mov byte [eax], 0
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 0x124]
or eax, eax
je 0x4050fe
mov dword [ebx + 0xb0], eax
sub esp, 0xc
push dword [ebp - 0x24]
call dword [0x41e014]
add esp, 0x10
cmp eax, 1
mov dword [ebx + 0xa0], eax
sbb esi, esi
mov dword [ebx + 0xa8], eax
and esi, 0x1b
jmp 0x405139
mov eax, dword [ebp - 0x20]
mov byte [ebx + 0x1c5], 1
inc eax
jne 0x404f67
jmp 0x404f6c
lea esp, [ebp - 0xc]
push esi
pop eax
pop ebx
pop esi
pop edi
pop ebp
ret