Function at 0x4037da
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
xor ebx, ebx
push str.accept
mov esi, dword [ebp + 0xc]
push esi
mov dword [ebp - 0xc], ebx
mov dword [ebp - 4], ebx
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403848
mov edx, dword [ebp + 8]
mov dword [ebp - 0xc], 1
mov edi, dword [edx]
test edi, edi
je 0x40395d
mov eax, dword [edi + 0x34]
inc eax
mov dword [edi + 0x34], eax
shl eax, 3
push eax
push dword [edi + 0x30]
call dword [sym.imp.MSVCRT20.dll_realloc]
add esp, 8
mov dword [edi + 0x30], eax
mov ecx, dword [edi + 0x34]
lea eax, [eax + ecx*8 - 8]
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov ecx, dword [edi + 0x34]
mov edx, dword [edi + 0x30]
mov dword [edx + ecx*8 - 8], 2
push str.reject
push esi
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x4038aa
mov edx, dword [ebp + 8]
mov dword [ebp - 0xc], 1
mov edi, dword [edx]
test edi, edi
je 0x403967
mov eax, dword [edi + 0x34]
inc eax
mov dword [edi + 0x34], eax
shl eax, 3
push eax
push dword [edi + 0x30]
call dword [sym.imp.MSVCRT20.dll_realloc]
add esp, 8
mov dword [edi + 0x30], eax
mov ecx, dword [edi + 0x34]
lea eax, [eax + ecx*8 - 8]
mov dword [eax], 0
mov dword [eax + 4], 0
mov ecx, dword [edi + 0x34]
mov edx, dword [edi + 0x30]
mov dword [edx + ecx*8 - 8], 3
push str.filter
push esi
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403f3a
mov dword [ebp - 0xc], 1
push 0x38
call dword [sym.imp.MSVCRT20.dll_malloc]
add esp, 4
mov esi, eax
xor ecx, ecx
mov dword [esi], ecx
mov dword [esi + 4], ecx
mov dword [esi + 8], ecx
mov eax, dword [esi + 0x2c]
and al, 0xfe
mov dword [esi + 0x2c], eax
and al, 0xfd
mov dword [esi + 0x2c], eax
and al, 0xf7
mov dword [esi + 0x2c], eax
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], ecx
mov eax, dword [esi + 0x2c]
and al, 0xef
mov dword [esi + 0x2c], eax
and al, 0xdf
mov dword [esi + 0x2c], eax
and al, 0x7f
mov dword [esi + 0x2c], eax
and al, 0xfb
mov dword [esi + 0x2c], eax
and al, 0xbf
mov dword [esi + 0x2c], eax
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], ecx
mov dword [esi + 0x28], ecx
mov eax, dword [esi + 0x2c]
and ah, 0xfe
mov dword [esi + 0x2c], eax
and ah, 0xfd
mov dword [esi + 0x2c], eax
and ah, 0xfb
mov dword [esi + 0x2c], eax
and ah, 0xf7
mov edx, dword [ebp + 8]
mov dword [esi + 0x2c], eax
and ah, 0xef
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
cmp dword [edx], ecx
jne 0x403971
mov ecx, dword [edx + 8]
mov dword [ebp - 8], edx
mov dword [ecx + 4], esi
jmp 0x4039d9
push str.Cant_accept_without_a_filter
jmp 0x403f45
push str.Cant_accept_without_a_filter
jmp 0x403f45
push 0xc
call dword [sym.imp.MSVCRT20.dll_malloc]
add esp, 4
mov edx, dword [ebp + 8]
mov dword [ebp - 8], eax
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 4], edx
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov eax, dword [esi + 0x2c]
mov edx, dword [edx]
mov ecx, dword [edx + 0x2c]
shl ecx, 0x1d
sar ecx, 0x1d
xor ecx, eax
and ecx, 4
xor ecx, eax
mov dword [esi + 0x2c], ecx
mov eax, dword [edx + 4]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x2c]
mov ecx, dword [edx + 0x2c]
shl ecx, 0x19
sar ecx, 0x19
xor ecx, eax
and ecx, 0x40
xor ecx, eax
mov dword [esi + 0x2c], ecx
mov eax, dword [edx + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 8]
mov edi, dword [ebp + 0x10]
mov dword [eax], esi
cmp dword [edi], 0
je 0x403edb
add edi, 4
cmp dword [edi], 0
je 0x403edb
push str.authscheme
push dword [edi - 4]
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403a91
mov ebx, dword [edi]
push str.chap
mov dword [ebp - 4], 1
push ebx
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403a32
mov dword [esi + 0x20], 3
jmp 0x403a8d
push str.cleartext
push ebx
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403a4d
mov dword [esi + 0x20], 2
jmp 0x403a8d
push str.anonymous
push ebx
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403a68
mov dword [esi + 0x20], 0
jmp 0x403a8d
push str.unrecognised_authentication_type
push str.PARSE_ERROR:__s_n
call dword [sym.imp.MSVCRT20.dll_printf]
add esp, 8
push 1
call dword [sym.imp.MSVCRT20.dll_exit]
mov dword [esi + 0x20], 0xffffffff
add esp, 4
or byte [esi + 0x2d], 4
push str.authsrc
push dword [edi - 4]
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403b2c
mov ebx, dword [edi]
push str.anonymous
mov dword [ebp - 4], 1
push ebx
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403acd
mov dword [esi + 0x24], 0
jmp 0x403b28
push str.local
push ebx
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403ae8
mov dword [esi + 0x24], 1
jmp 0x403b28
push str.config
push ebx
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403b03
mov dword [esi + 0x24], 2
jmp 0x403b28
push str.unrecognised_authentication_source
push str.PARSE_ERROR:__s_n
call dword [sym.imp.MSVCRT20.dll_printf]
add esp, 8
push 1
call dword [sym.imp.MSVCRT20.dll_exit]
mov dword [esi + 0x24], 0xffffffff
add esp, 4
or byte [esi + 0x2d], 8
push str.dest_addrtype
push dword [edi - 4]
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403bd9
test byte [esi + 0x2c], 0x40
je 0x403b68
push str.Cannot_test_dest_addrtype_because_test_already_made
push str.PARSE_ERROR:__s_n
call dword [sym.imp.MSVCRT20.dll_printf]
add esp, 8
push 1
call dword [sym.imp.MSVCRT20.dll_exit]
add esp, 4
mov ebx, dword [edi]
push str.ipv4
mov dword [ebp - 4], 1
push ebx
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403b8c
mov dword [esi + 0x10], 2
jmp 0x403bcc
push 0x41e228
push ebx
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403ba7
mov dword [esi + 0x10], 2
jmp 0x403bcc
push str.unrecognised_address_type
push str.PARSE_ERROR:__s_n
call dword [sym.imp.MSVCRT20.dll_printf]
add esp, 8
push 1
call dword [sym.imp.MSVCRT20.dll_exit]
mov dword [esi + 0x10], 0xffffffff
add esp, 4
mov eax, dword [esi + 0x2c]
or al, 0x20
mov dword [esi + 0x2c], eax
or al, 0x40
mov dword [esi + 0x2c], eax
push str.dest_addr
push dword [edi - 4]
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403c2c
mov dword [ebp - 4], 1
test byte [esi + 0x2c], 0x40
jne 0x403c18
push str.dest_addrtype_must_preceed_dest_addr
push str.PARSE_ERROR:__s_n
call dword [sym.imp.MSVCRT20.dll_printf]
add esp, 8
push 1
call dword [sym.imp.MSVCRT20.dll_exit]
add esp, 4
push dword [edi]
push dword [esi + 0x10]
call fcn.0040327f
add esp, 8
mov dword [esi + 0x14], eax
or byte [esi + 0x2c], 0x80
push str.dest_port
push dword [edi - 4]
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403c59
push dword [edi]
mov dword [ebp - 4], 1
call dword [sym.imp.MSVCRT20.dll_atoi]
add esp, 4
mov dword [esi + 0xc], eax
or byte [esi + 0x2c], 0x10
push str.socksop
push dword [edi - 4]
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403d0f
mov ebx, dword [edi]
push str.connect
mov dword [ebp - 4], 1
push ebx
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403c95
mov dword [esi + 0x28], 1
jmp 0x403d0b
push str.bind
push ebx
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403cb0
mov dword [esi + 0x28], 2
jmp 0x403d0b
push 0x41e344
push ebx
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403ccb
mov dword [esi + 0x28], 3
jmp 0x403d0b
push str.ident
push ebx
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403ce6
mov dword [esi + 0x28], 0x88
jmp 0x403d0b
push str.unrecognised_SOCKS_operation
push str.PARSE_ERROR:__s_n
call dword [sym.imp.MSVCRT20.dll_printf]
add esp, 8
push 1
call dword [sym.imp.MSVCRT20.dll_exit]
mov dword [esi + 0x28], 0xffffffff
add esp, 4
or byte [esi + 0x2d], 0x10
push str.source_addrtype
push dword [edi - 4]
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403dbc
test byte [esi + 0x2c], 4
je 0x403d4b
push str.Cannot_test_source_addrtype_because_test_already_made
push str.PARSE_ERROR:__s_n
call dword [sym.imp.MSVCRT20.dll_printf]
add esp, 8
push 1
call dword [sym.imp.MSVCRT20.dll_exit]
add esp, 4
mov ebx, dword [edi]
push str.ipv4
mov dword [ebp - 4], 1
push ebx
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403d6f
mov dword [esi + 4], 2
jmp 0x403daf
push 0x41e228
push ebx
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403d8a
mov dword [esi + 4], 2
jmp 0x403daf
push str.unrecognised_address_type
push str.PARSE_ERROR:__s_n
call dword [sym.imp.MSVCRT20.dll_printf]
add esp, 8
push 1
call dword [sym.imp.MSVCRT20.dll_exit]
mov dword [esi + 4], 0xffffffff
add esp, 4
mov eax, dword [esi + 0x2c]
or al, 2
mov dword [esi + 0x2c], eax
or al, 4
mov dword [esi + 0x2c], eax
push str.source_addr
push dword [edi - 4]
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403e0f
mov dword [ebp - 4], 1
test byte [esi + 0x2c], 4
jne 0x403dfb
push str.source_addrtype_must_preceed_source_addr
push str.PARSE_ERROR:__s_n
call dword [sym.imp.MSVCRT20.dll_printf]
add esp, 8
push 1
call dword [sym.imp.MSVCRT20.dll_exit]
add esp, 4
push dword [edi]
push dword [esi + 4]
call fcn.0040327f
add esp, 8
mov dword [esi + 8], eax
or byte [esi + 0x2c], 8
push str.source_port
push dword [edi - 4]
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403e3b
push dword [edi]
mov dword [ebp - 4], 1
call dword [sym.imp.MSVCRT20.dll_atoi]
add esp, 4
mov dword [esi], eax
or byte [esi + 0x2c], 1
push str.user
push dword [edi - 4]
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403e7d
push dword [edi]
mov dword [ebp - 4], 1
call sub.MSVCRT20.dll_strlen
add esp, 4
inc eax
push eax
call dword [sym.imp.MSVCRT20.dll_malloc]
add esp, 4
mov dword [esi + 0x1c], eax
push dword [edi]
push eax
call sub.MSVCRT20.dll_strcpy
or byte [esi + 0x2d], 2
add esp, 8
push str.version
push dword [edi - 4]
call sub.MSVCRT20.dll_strcmp
add esp, 8
test eax, eax
jne 0x403eaa
push dword [edi]
mov dword [ebp - 4], 1
call dword [sym.imp.MSVCRT20.dll_atoi]
add esp, 4
mov dword [esi + 0x18], eax
or byte [esi + 0x2d], 1
cmp dword [ebp - 4], 0
jne 0x403ece
push str.attribute_not_recognised
push str.PARSE_ERROR:__s_n
call dword [sym.imp.MSVCRT20.dll_printf]
add esp, 8
push 1
call dword [sym.imp.MSVCRT20.dll_exit]
add esp, 4
add edi, 8
cmp dword [edi - 4], 0
jne 0x4039ed
push dword [ebp - 8]
push dword [0x41b050]
call fcn.00407934
add esp, 8
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp + 8]
je 0x403f3a
mov edx, dword [ebp + 8]
mov edi, dword [edx]
mov eax, dword [edi + 0x34]
inc eax
mov dword [edi + 0x34], eax
shl eax, 3
push eax
push dword [edi + 0x30]
call dword [sym.imp.MSVCRT20.dll_realloc]
add esp, 8
mov dword [edi + 0x30], eax
mov edx, dword [edi + 0x34]
lea eax, [eax + edx*8 - 8]
mov dword [eax], 0
mov dword [eax + 4], 0
mov edx, dword [edi + 0x34]
mov ecx, dword [edi + 0x30]
lea eax, [ecx + edx*8 - 8]
mov dword [eax], 1
mov dword [eax + 4], esi
cmp dword [ebp - 0xc], 0
jne 0x403f5e
push str.tag_not_recognised
push str.PARSE_ERROR:__s_n
call dword [sym.imp.MSVCRT20.dll_printf]
add esp, 8
push 1
call dword [sym.imp.MSVCRT20.dll_exit]
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret