Function at 0x4864b0
Capabilities:
Connect socket
Encode data using xor
Get socket status
Resolve dns
Set socket configuration

Disassembly:
mov eax, 0x4ad9fb
call fcn.004ace8c
sub esp, 0x584
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x10], esp
xor eax, eax
mov dword [ebp - 0x14], edi
push eax
xor ecx, ecx
mov dword [ebp - 4], eax
or dword [edi + 0x120], 0xffffffff
inc ecx
push ecx
push 2
mov dword [ebp - 0x118], eax
pop eax
push eax
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0x11c], 0xb4
call dword [sym.imp.WS2_32.dll_socket]
mov dword [edi + 0x120], eax
cmp eax, 0xffffffff
je 0x487859
cmp word [ebp + 0xc], 0
je 0x486522
push dword [ebp + 0xc]
call dword [sym.imp.WS2_32.dll_htons]
movzx eax, ax
xor esi, esi
jmp 0x486545
xor esi, esi
push esi
push str.mail
call dword [sym.imp.WS2_32.dll_getservbyname]
test eax, eax
jne 0x486541
push 0x19
call dword [sym.imp.WS2_32.dll_htons]
movzx eax, ax
jmp 0x486545
movzx eax, word [eax + 8]
push 2
pop ecx
push dword [ebp + 8]
mov word [ebp - 0x12c], cx
mov word [ebp - 0x12a], ax
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [ebp - 0x128], eax
cmp eax, 0xffffffff
jne 0x486592
push dword [ebp + 8]
call dword [sym.imp.WS2_32.dll_gethostbyname]
mov ecx, eax
test ecx, ecx
je 0x4865d2
movsx eax, word [ecx + 0xa]
push eax
mov eax, dword [ecx + 0xc]
push dword [eax]
lea eax, [ebp - 0x128]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [ebp - 0xd8]
push eax
push 0x8004667e
push dword [edi + 0x120]
call dword [sym.imp.WS2_32.dll_ioctlsocket]
mov ecx, dword [edi + 0x120]
cmp eax, 0xffffffff
jne 0x4865f7
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
push 0x6c
lea ecx, [ebp - 0x7c]
call fcn.004854d2
push 0x4e53cc
mov eax, ecx
jmp 0x48786d
push dword [edi + 0x120]
call dword [sym.imp.WS2_32.dll_closesocket]
push 0x69
lea ecx, [ebp - 0xbc]
call fcn.004854d2
push 0x4e53cc
mov eax, ecx
jmp 0x48786d
push 0x10
lea eax, [ebp - 0x12c]
push eax
push ecx
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x48779b
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x48663f
push dword [edi + 0x120]
call dword [sym.imp.WS2_32.dll_closesocket]
push 0x68
lea ecx, [ebp - 0x80]
call fcn.004854d2
push 0x4e53cc
mov eax, ecx
jmp 0x48786d
mov eax, dword [edi + 0x120]
xor ecx, ecx
inc ecx
mov dword [ebp - 0x488], eax
mov dword [ebp - 0x48c], ecx
mov dword [ebp - 0x590], ecx
lea ecx, [ebp - 0x11c]
push ecx
lea ecx, [ebp - 0x590]
mov dword [ebp - 0x58c], eax
push ecx
lea ecx, [ebp - 0x48c]
inc eax
push ecx
push esi
push eax
call dword [sym.imp.WS2_32.dll_select]
mov ecx, eax
cmp ecx, 0xffffffff
jne 0x4866aa
push dword [edi + 0x120]
call dword [sym.imp.WS2_32.dll_closesocket]
push 0x6d
lea ecx, [ebp - 0x84]
call fcn.004854d2
push 0x4e53cc
mov eax, ecx
jmp 0x48786d
mov eax, dword [edi + 0x120]
test ecx, ecx
jne 0x4866d7
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
push 0x193
lea ecx, [ebp - 0x88]
call fcn.004854d2
push 0x4e53cc
mov eax, ecx
jmp 0x48786d
lea ecx, [ebp - 0x48c]
push ecx
push eax
call dword [sym.imp.WS2_32.dll___WSAFDIsSet]
test eax, eax
je 0x4877e6
mov edx, dword [ebp - 0x48c]
mov ecx, esi
test edx, edx
je 0x486732
mov eax, dword [edi + 0x120]
cmp dword [ebp + ecx*4 - 0x488], eax
je 0x486724
inc ecx
cmp ecx, edx
jb 0x4866ff
jmp 0x486732
mov eax, dword [ebp + ecx*4 - 0x484]
mov dword [ebp + ecx*4 - 0x488], eax
inc ecx
mov edx, dword [ebp - 0x48c]
lea eax, [edx - 1]
cmp ecx, eax
jb 0x48670f
dec edx
mov dword [ebp - 0x48c], edx
mov edx, dword [ebp - 0x590]
mov ecx, esi
test edx, edx
je 0x486777
mov eax, dword [edi + 0x120]
cmp dword [ebp + ecx*4 - 0x58c], eax
je 0x486769
inc ecx
cmp ecx, edx
jb 0x486744
jmp 0x486777
mov eax, dword [ebp + ecx*4 - 0x588]
mov dword [ebp + ecx*4 - 0x58c], eax
inc ecx
mov edx, dword [ebp - 0x590]
lea eax, [edx - 1]
cmp ecx, eax
jb 0x486754
dec edx
mov dword [ebp - 0x590], edx
cmp dword [ebp + 0x10], 3
je 0x486787
push dword [ebp + 0x10]
mov ecx, edi
call fcn.004854e4
mov ecx, edi
call fcn.004854dd
cmp eax, 1
je 0x48679f
call fcn.004854dd
push 2
pop ecx
cmp eax, ecx
jne 0x4867bb
mov ecx, edi
call 0x4891ad
mov ecx, edi
call fcn.004854dd
push 2
pop ecx
cmp eax, ecx
jne 0x4867bb
mov ecx, edi
call fcn.004891f4
xor ecx, ecx
call fcn.004854f1
push eax
mov ecx, edi
call fcn.00488e4f
mov ecx, edi
call fcn.00488ae7
mov ecx, edi
call fcn.004854dd
cmp eax, 1
jne 0x4867e9
call 0x488b98
mov ecx, edi
call fcn.00488ae7
cmp byte [ebp + 0x14], 0
je 0x48779b
mov ecx, dword [edi + 0x11c]
mov edx, str.AUTH
call fcn.00485518
cmp al, 1
jne 0x48779b
lea ecx, [edi + 0xc8]
call fcn.00484f23
test eax, eax
jne 0x486836
push 0xcc
lea ecx, [ebp - 0x8c]
call fcn.004854d2
push 0x4e53cc
mov eax, ecx
jmp 0x48786d
lea ecx, [edi + 0xe0]
call fcn.00484f23
test eax, eax
jne 0x486861
push 0xcd
lea ecx, [ebp - 0x90]
call fcn.004854d2
push 0x4e53cc
mov eax, ecx
jmp 0x48786d
mov ecx, dword [edi + 0x11c]
mov edx, str.LOGIN
call fcn.00485518
cmp al, 1
jne 0x486975
push 3
pop ecx
call fcn.004854f1
push str.AUTH_LOGIN_r_n
push 0x2800
push dword [edi + 0x118]
mov esi, eax
call fcn.0048a8a2
add esp, 0xc
mov ecx, edi
push esi
call fcn.00488438
push esi
mov ecx, edi
call fcn.00488e4f
lea ecx, [edi + 0xc8]
call fcn.00484f23
mov edx, eax
call fcn.00489639
push edx
mov edx, eax
lea ecx, [ebp - 0xd4]
call fcn.00484bdd
pop ecx
push 7
pop ecx
mov byte [ebp - 4], 1
call fcn.004854f1
lea ecx, [ebp - 0xd4]
mov esi, eax
call fcn.00489639
push eax
push str._s_r_n
push 0x2800
push dword [edi + 0x118]
call fcn.0048a8a2
add esp, 0x10
mov ecx, edi
push esi
call fcn.00488438
push esi
mov ecx, edi
call fcn.00488e4f
lea ecx, [edi + 0xe0]
call fcn.00484f23
mov edx, eax
call fcn.00489639
push edx
mov edx, eax
lea ecx, [ebp - 0x60]
call fcn.00484bdd
pop ecx
push 2
pop eax
push 8
pop ecx
mov byte [ebp - 4], al
call fcn.004854f1
lea ecx, [ebp - 0x60]
mov esi, eax
call fcn.00489639
push eax
push str._s_r_n
push 0x2800
push dword [edi + 0x118]
call fcn.0048a8a2
add esp, 0x10
mov ecx, edi
push esi
call fcn.00488438
push esi
mov ecx, edi
call fcn.00488e4f
lea ecx, [ebp - 0x60]
jmp 0x48778b
mov ecx, dword [edi + 0x11c]
mov edx, str.PLAIN
call fcn.00485518
cmp al, 1
jne 0x486a62
push 2
pop eax
mov ecx, eax
call fcn.004854f1
lea ecx, [edi + 0xe0]
mov dword [ebp + 0xc], eax
call fcn.00489639
lea ecx, [edi + 0xc8]
mov esi, eax
call fcn.00489639
lea ecx, [edi + 0xc8]
mov edx, eax
call fcn.00489639
push esi
push edx
push eax
push str._s_s_s
push 0x2800
push dword [edi + 0x118]
call fcn.0048a8a2
mov ecx, dword [edi + 0x118]
add esp, 0x18
mov esi, ecx
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4869e5
sub esi, edx
call fcn.004855f5
mov edx, eax
xor eax, eax
mov dword [ebp + 0x14], edx
mov ecx, eax
test esi, esi
je 0x486a0e
cmp byte [edx + ecx], 0x5e
jne 0x486a09
mov byte [edx + ecx], al
inc ecx
cmp ecx, esi
jb 0x486a00
push esi
lea ecx, [ebp - 0x60]
call fcn.00484bdd
pop ecx
push dword [ebp + 0x14]
mov byte [ebp - 4], 3
call dword [sym.imp.mfc140.dll_Ordinal_266]
pop ecx
lea ecx, [ebp - 0x60]
call fcn.00489639
push eax
push str.AUTH_PLAIN__s_r_n
push 0x2800
push dword [edi + 0x118]
call fcn.0048a8a2
mov esi, dword [ebp + 0xc]
add esp, 0x10
mov ecx, edi
push esi
call fcn.00488438
push esi
mov ecx, edi
call fcn.00488e4f
lea ecx, [ebp - 0x60]
jmp 0x487796
mov ecx, dword [edi + 0x11c]
mov edx, str.CRAM_MD5
call fcn.00485518
cmp al, 1
jne 0x486d78
push 4
pop ecx
call fcn.004854f1
push str.AUTH_CRAM_MD5_r_n
push 0x2800
push dword [edi + 0x118]
mov dword [ebp + 0x14], eax
call fcn.0048a8a2
add esp, 0xc
mov ecx, edi
push dword [ebp + 0x14]
call fcn.00488438
push dword [ebp + 0x14]
mov ecx, edi
call fcn.00488e4f
push dword [edi + 0x11c]
lea ecx, [ebp - 0x78]
call fcn.00484f6c
push 0xffffffffffffffff
push 4
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x78]
call fcn.004895b4
push eax
lea ecx, [ebp - 0x78]
call fcn.00489697
lea ecx, [ebp - 0x60]
call fcn.00484f47
lea edx, [ebp - 0x78]
lea ecx, [ebp - 0x34]
call fcn.00484d66
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 5
call fcn.00489639
mov ecx, eax
call fcn.004855f5
lea ecx, [edi + 0xe0]
mov dword [ebp + 0xc], eax
call fcn.00489639
mov ecx, eax
call fcn.004855f5
cmp dword [ebp + 0xc], 0
mov dword [ebp + 0x14], eax
je 0x486d5c
test eax, eax
je 0x486d5c
lea ecx, [edi + 0xe0]
call fcn.00484f23
mov edx, eax
mov dword [ebp + 8], edx
cmp edx, 0x40
jle 0x486b75
lea ecx, [ebp - 0x374]
call fcn.0048ae14
push edx
push dword [ebp + 0x14]
call fcn.0048ae1c
lea ecx, [ebp - 0x374]
call fcn.0048afd9
lea ecx, [ebp - 0x374]
call fcn.0048b0c7
mov dword [ebp + 0x14], eax
mov dword [ebp + 8], 0x10
push 0x40
lea eax, [ebp - 0x208]
push esi
push eax
call sub.VCRUNTIME140.dll_memset
push 0x40
lea eax, [ebp - 0x19c]
push esi
push eax
call sub.VCRUNTIME140.dll_memset
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x208]
push esi
push dword [ebp + 0x14]
push eax
call sub.VCRUNTIME140.dll_memcpy
push esi
push dword [ebp + 0x14]
lea eax, [ebp - 0x19c]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0x30
xor eax, eax
movups xmm0, xmmword [ebp + eax - 0x208]
movaps xmm1, xmmword [str.6666666666666666]
xorps xmm1, xmm0
movups xmm0, xmmword [ebp + eax - 0x19c]
movups xmmword [ebp + eax - 0x208], xmm1
movaps xmm1, xmmword [0x4dfe70]
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x19c], xmm1
add eax, 0x10
cmp eax, 0x40
jl 0x486bbb
lea ecx, [ebp - 0x29c]
call fcn.0048ae14
push 0x40
lea eax, [ebp - 0x208]
push eax
call fcn.0048ae1c
lea ecx, [ebp - 0x34]
call fcn.00484f23
push eax
push dword [ebp + 0xc]
lea ecx, [ebp - 0x29c]
call fcn.0048ae1c
lea ecx, [ebp - 0x29c]
call fcn.0048afd9
lea ecx, [ebp - 0x29c]
call fcn.0048b0c7
mov esi, eax
lea ecx, [ebp - 0x308]
mov dword [ebp + 8], esi
call fcn.0048ae14
push 0x40
lea eax, [ebp - 0x19c]
push eax
call fcn.0048ae1c
push 0x10
push esi
lea ecx, [ebp - 0x308]
call fcn.0048ae1c
lea ecx, [ebp - 0x308]
call fcn.0048afd9
lea ecx, [ebp - 0x308]
call fcn.0048b129
push eax
lea ecx, [ebp - 0x34]
call fcn.00489692
push dword [ebp + 0xc]
mov esi, dword [sym.imp.mfc140.dll_Ordinal_266]
call esi
push dword [ebp + 0x14]
call esi
push dword [ebp + 8]
call esi
add esp, 8
lea edx, [edi + 0xc8]
lea ecx, [ebp - 0xd4]
call fcn.004899d2
pop ecx
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 6
push ecx
mov edx, eax
lea ecx, [ebp - 0x60]
call 0x489a33
pop ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.00489697
lea ecx, [ebp - 0x60]
call fcn.00484f47
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 5
call fcn.00484f47
lea ecx, [ebp - 0x34]
call fcn.00484f23
mov edx, eax
call fcn.00489639
push edx
mov edx, eax
lea ecx, [ebp - 0x60]
call fcn.00484bdd
pop ecx
push eax
lea ecx, [ebp - 0x78]
call fcn.00489697
lea ecx, [ebp - 0x60]
call fcn.00484f47
lea ecx, [ebp - 0x78]
call fcn.00489639
push eax
push str._s_r_n
push 0x2800
push dword [edi + 0x118]
call fcn.0048a8a2
add esp, 0x10
push 8
pop ecx
call fcn.004854f1
mov esi, eax
mov ecx, edi
push esi
call fcn.00488438
push esi
mov ecx, edi
call fcn.00488e4f
lea ecx, [ebp - 0x34]
call fcn.00484f47
lea ecx, [ebp - 0x78]
jmp 0x487796
push 0xce
lea ecx, [ebp - 0x94]
call fcn.004854d2
push 0x4e53cc
mov eax, ecx
jmp 0x48786d
mov ecx, dword [edi + 0x11c]
mov edx, str.DIGEST_MD5
call fcn.00485518
cmp al, 1
jne 0x4877ca
push 6
pop ecx
call fcn.004854f1
push str.AUTH_DIGEST_MD5_r_n
push 0x2800
push dword [edi + 0x118]
mov dword [ebp + 0x14], eax
call fcn.0048a8a2
add esp, 0xc
mov ecx, edi
push dword [ebp + 0x14]
call fcn.00488438
push dword [ebp + 0x14]
mov ecx, edi
call fcn.00488e4f
push dword [edi + 0x11c]
lea ecx, [ebp - 0xd4]
call fcn.00484f6c
push 0xffffffffffffffff
push 4
lea eax, [ebp - 0xf0]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0xd4]
call fcn.004895b4
push eax
lea ecx, [ebp - 0xd4]
call fcn.00489697
lea ecx, [ebp - 0xf0]
call fcn.00484f47
lea edx, [ebp - 0xd4]
lea ecx, [ebp - 0x78]
call fcn.00484d66
push ecx
push str.nonce
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 8
call fcn.004895ff
test eax, eax
jns 0x486e49
push 0xcf
lea ecx, [ebp - 0x98]
call fcn.004854d2
push 0x4e53cc
mov eax, ecx
jmp 0x48786d
push 0xffffffffffffffff
add eax, 7
lea ecx, [ebp - 0x78]
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.004895b4
push ecx
push 0x4dadb0
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 9
call fcn.004895ff
test eax, eax
jns 0x486e93
push 0xcf
lea ecx, [ebp - 0x9c]
call fcn.004854d2
push 0x4e53cc
mov eax, ecx
jmp 0x48786d
push eax
push esi
lea eax, [ebp - 0xf0]
push eax
lea ecx, [ebp - 0x114]
call fcn.004895b4
push eax
lea ecx, [ebp - 0x114]
call fcn.00489697
lea ecx, [ebp - 0xf0]
call fcn.00484f47
lea ecx, [ebp - 0x34]
call fcn.00484f9d
push ecx
push str.realm
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xa
call fcn.004895ff
test eax, eax
js 0x486f58
push 0xffffffffffffffff
add eax, 7
lea ecx, [ebp - 0x78]
push eax
lea eax, [ebp - 0xf0]
push eax
call fcn.004895b4
push eax
lea ecx, [ebp - 0x34]
call fcn.00489697
lea ecx, [ebp - 0xf0]
call fcn.00484f47
push ecx
push 0x4dadb0
lea ecx, [ebp - 0x34]
call fcn.004895ff
test eax, eax
jns 0x486f33
push 0xcf
lea ecx, [ebp - 0xa0]
call fcn.004854d2
push 0x4e53cc
mov eax, ecx
jmp 0x48786d
push eax
push esi
lea eax, [ebp - 0xf0]
push eax
lea ecx, [ebp - 0x34]
call fcn.004895b4
push eax
lea ecx, [ebp - 0x34]
call fcn.00489697
lea ecx, [ebp - 0xf0]
call fcn.00484f47
xor ecx, ecx
call fcn.0048a866
push eax
push 0x4d9f50
lea eax, [ebp - 0x140]
push 0x11
push eax
call fcn.0048a8a2
push 1
push str._08d
lea eax, [ebp - 0xfc]
push 9
push eax
call fcn.0048a8a2
add esp, 0x20
lea ecx, [ebp - 0x60]
push str.auth
call fcn.00484f6c
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 0xb
push eax
lea eax, [ebp - 0x388]
mov dword [ebp - 0xa4], 0x80
push eax
push dword [edi + 0x120]
call dword [sym.imp.WS2_32.dll_getpeername]
test eax, eax
jne 0x486fe0
push 0xd0
lea ecx, [ebp - 0xa8]
call fcn.004854d2
push 0x4e53cc
mov eax, ecx
jmp 0x48786d
push dword [ebp - 0x384]
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
lea ecx, [ebp - 0x158]
call fcn.00484f6c
lea eax, [ebp - 0x158]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [ebp - 0xf0]
call fcn.00489a5e
pop ecx
push eax
lea ecx, [ebp - 0x158]
call fcn.00489697
lea ecx, [ebp - 0xf0]
call fcn.00484f47
lea ecx, [ebp - 0x34]
call fcn.00489639
mov ecx, eax
call fcn.004855f5
lea ecx, [edi + 0xc8]
mov dword [ebp + 8], eax
call fcn.00489639
mov ecx, eax
call fcn.004855f5
lea esi, [edi + 0xe0]
mov dword [ebp - 0x38], eax
mov ecx, esi
call fcn.00489639
mov ecx, eax
call fcn.004855f5
lea ecx, [ebp - 0x114]
mov dword [ebp + 0x10], eax
call fcn.00489639
mov ecx, eax
call fcn.004855f5
lea ecx, [ebp - 0x140]
mov dword [ebp + 0x14], eax
call fcn.004855f5
lea ecx, [ebp - 0x158]
mov dword [ebp + 0xc], eax
call fcn.00489639
mov ecx, eax
call fcn.004855f5
lea ecx, [ebp - 0xfc]
mov dword [ebp - 0x18], eax
call fcn.004855f5
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x1c], eax
call fcn.00489639
mov ecx, eax
call fcn.004855f5
cmp dword [ebp + 8], 0
mov dword [ebp - 0x3c], eax
je 0x4877ae
mov edx, dword [ebp - 0x38]
test edx, edx
je 0x4877ae
cmp dword [ebp + 0x10], 0
je 0x4877ae
cmp dword [ebp + 0x14], 0
je 0x4877ae
cmp dword [ebp + 0xc], 0
je 0x4877ae
cmp dword [ebp - 0x18], 0
je 0x4877ae
cmp dword [ebp - 0x1c], 0
je 0x4877ae
test eax, eax
je 0x4877ae
lea ecx, [ebp - 0x230]
call fcn.0048ae14
lea ecx, [edi + 0xc8]
call fcn.00484f23
push eax
push edx
lea ecx, [ebp - 0x230]
call fcn.0048ae1c
push 1
push 0x4dadd4
lea ecx, [ebp - 0x230]
call fcn.0048ae1c
lea ecx, [ebp - 0x34]
call fcn.00484f23
push eax
push dword [ebp + 8]
lea ecx, [ebp - 0x230]
call fcn.0048ae1c
push 1
push 0x4dadd4
lea ecx, [ebp - 0x230]
call fcn.0048ae1c
mov ecx, esi
call fcn.00484f23
push eax
push dword [ebp + 0x10]
lea ecx, [ebp - 0x230]
call fcn.0048ae1c
lea ecx, [ebp - 0x230]
call fcn.0048afd9
lea ecx, [ebp - 0x230]
call fcn.0048b0c7
lea ecx, [ebp - 0x29c]
mov esi, eax
call fcn.0048ae14
push 0x10
push esi
call fcn.0048ae1c
push 1
push 0x4dadd4
lea ecx, [ebp - 0x29c]
call fcn.0048ae1c
lea ecx, [ebp - 0x114]
call fcn.00484f23
push eax
push dword [ebp + 0x14]
lea ecx, [ebp - 0x29c]
call fcn.0048ae1c
push 1
push 0x4dadd4
lea ecx, [ebp - 0x29c]
call fcn.0048ae1c
lea ecx, [ebp - 0x140]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4871f1
sub ecx, edx
push ecx
push dword [ebp + 0xc]
lea ecx, [ebp - 0x29c]
call fcn.0048ae1c
lea ecx, [ebp - 0x29c]
call fcn.0048afd9
lea ecx, [ebp - 0x29c]
call fcn.0048b129
lea ecx, [ebp - 0x308]
mov dword [ebp - 0x44], eax
call fcn.0048ae14
push 0xd
push str.AUTHENTICATE:
call fcn.0048ae1c
lea ecx, [ebp - 0x158]
call fcn.00484f23
push eax
push dword [ebp - 0x18]
lea ecx, [ebp - 0x308]
call fcn.0048ae1c
lea ecx, [ebp - 0x308]
call fcn.0048afd9
lea ecx, [ebp - 0x308]
call fcn.0048b129
push esi
mov dword [ebp - 0x48], eax
call dword [sym.imp.mfc140.dll_Ordinal_266]
pop ecx
mov ecx, dword [ebp - 0x44]
call fcn.004855f5
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x40], eax
call fcn.004855f5
lea ecx, [ebp - 0x1c4]
mov esi, eax
call fcn.0048ae14
push 0x20
push dword [ebp - 0x40]
call fcn.0048ae1c
push 1
push 0x4dadd4
lea ecx, [ebp - 0x1c4]
call fcn.0048ae1c
lea ecx, [ebp - 0x114]
call fcn.00484f23
push eax
push dword [ebp + 0x14]
lea ecx, [ebp - 0x1c4]
call fcn.0048ae1c
push 1
push 0x4dadd4
lea ecx, [ebp - 0x1c4]
call fcn.0048ae1c
lea ecx, [ebp - 0xfc]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4872e5
sub ecx, edx
push ecx
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x1c4]
call fcn.0048ae1c
push 1
push 0x4dadd4
lea ecx, [ebp - 0x1c4]
call fcn.0048ae1c
lea ecx, [ebp - 0x140]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x487318
sub ecx, edx
push ecx
push dword [ebp + 0xc]
lea ecx, [ebp - 0x1c4]
call fcn.0048ae1c
push 1
push 0x4dadd4
lea ecx, [ebp - 0x1c4]
call fcn.0048ae1c
lea ecx, [ebp - 0x60]
call fcn.00484f23
push eax
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x1c4]
call fcn.0048ae1c
push 1
push 0x4dadd4
lea ecx, [ebp - 0x1c4]
call fcn.0048ae1c
push 0x20
push esi
lea ecx, [ebp - 0x1c4]
call fcn.0048ae1c
lea ecx, [ebp - 0x1c4]
call fcn.0048afd9
lea ecx, [ebp - 0x1c4]
call fcn.0048b129
push eax
lea ecx, [ebp - 0x78]
call fcn.00489692
push dword [ebp + 8]
call dword [sym.imp.mfc140.dll_Ordinal_266]
push dword [ebp - 0x38]
call dword [sym.imp.mfc140.dll_Ordinal_266]
push dword [ebp + 0x10]
call dword [sym.imp.mfc140.dll_Ordinal_266]
push dword [ebp + 0x14]
call dword [sym.imp.mfc140.dll_Ordinal_266]
push dword [ebp + 0xc]
call dword [sym.imp.mfc140.dll_Ordinal_266]
push dword [ebp - 0x18]
call dword [sym.imp.mfc140.dll_Ordinal_266]
push dword [ebp - 0x1c]
call dword [sym.imp.mfc140.dll_Ordinal_266]
push dword [ebp - 0x3c]
call dword [sym.imp.mfc140.dll_Ordinal_266]
push dword [ebp - 0x40]
call dword [sym.imp.mfc140.dll_Ordinal_266]
push esi
mov esi, dword [sym.imp.mfc140.dll_Ordinal_266]
call esi
push dword [ebp - 0x44]
call esi
push dword [ebp - 0x48]
call esi
mov ecx, dword [edi + 0x11c]
add esp, 0x30
mov edx, str.charset
call fcn.0048a859
lea ecx, [edi + 0xc8]
call fcn.00489639
push eax
push str.charsetutf_8_username__s_
mov esi, 0x2800
push esi
push dword [edi + 0x118]
call fcn.0048a8a2
add esp, 0x10
lea ecx, [ebp - 0x34]
call fcn.0048962d
test al, al
jne 0x487490
call fcn.00489639
push eax
push str._realm__s_
push esi
push dword [edi + 0x11c]
call fcn.0048a8a2
mov edx, dword [edi + 0x11c]
add esp, 0x10
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x487462
mov edi, dword [edi + 0x118]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x487472
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp - 0x14]
mov esi, 0x2800
lea ecx, [ebp - 0x114]
call fcn.00489639
push eax
push str._nonce__s_
push esi
push dword [edi + 0x11c]
call fcn.0048a8a2
mov edx, dword [edi + 0x11c]
add esp, 0x10
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x4874b8
mov edi, dword [edi + 0x118]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4874c8
mov ecx, edx
lea eax, [ebp - 0xfc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x14]
push eax
push str._nc_s
push 0x2800
push dword [ecx + 0x11c]
call fcn.0048a8a2
mov edx, dword [ebp - 0x14]
add esp, 0x10
mov esi, dword [edx + 0x11c]
mov ecx, esi
mov dword [ebp + 0x14], ecx
mov al, byte [esi]
inc esi
test al, al
jne 0x48750e
mov edi, dword [edx + 0x118]
sub esi, ecx
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x48751e
mov ecx, esi
lea eax, [ebp - 0x140]
mov dword [ebp + 0xc], esi
mov esi, dword [ebp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0xc]
push eax
push str._cnonce__s_
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x2800
push dword [edx + 0x11c]
call fcn.0048a8a2
mov edx, dword [ebp - 0x14]
add esp, 0x10
mov esi, dword [edx + 0x11c]
mov ecx, esi
mov dword [ebp + 0x14], ecx
mov al, byte [esi]
inc esi
test al, al
jne 0x487568
mov edi, dword [edx + 0x118]
sub esi, ecx
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x487578
mov ecx, esi
shr ecx, 2
mov dword [ebp + 0xc], esi
mov esi, dword [ebp + 0x14]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0xc]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x158]
call fcn.00489639
push eax
push str._digest_uri__s_
push 0x2800
push dword [edx + 0x11c]
call fcn.0048a8a2
mov edx, dword [ebp - 0x14]
add esp, 0x10
mov esi, dword [edx + 0x11c]
mov ecx, esi
mov dword [ebp + 0x14], ecx
mov al, byte [esi]
inc esi
test al, al
jne 0x4875c7
mov edi, dword [edx + 0x118]
sub esi, ecx
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4875d7
mov ecx, esi
shr ecx, 2
mov dword [ebp + 0xc], esi
mov esi, dword [ebp + 0x14]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0xc]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x78]
call fcn.00489639
push eax
push str._response_s
push 0x2800
push dword [edx + 0x11c]
call fcn.0048a8a2
mov edx, dword [ebp - 0x14]
add esp, 0x10
mov esi, dword [edx + 0x11c]
mov ecx, esi
mov dword [ebp + 0x14], ecx
mov al, byte [esi]
inc esi
test al, al
jne 0x487623
mov edi, dword [edx + 0x118]
sub esi, ecx
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x487633
mov ecx, esi
shr ecx, 2
mov dword [ebp + 0xc], esi
mov esi, dword [ebp + 0x14]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0xc]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x60]
call fcn.00489639
push eax
push str._qop_s
push 0x2800
push dword [edx + 0x11c]
call fcn.0048a8a2
mov ecx, dword [ebp - 0x14]
add esp, 0x10
mov edx, dword [ecx + 0x11c]
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x48767c
mov edi, dword [ecx + 0x118]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x48768c
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp - 0x14]
mov ecx, dword [esi + 0x118]
call fcn.004855f5
mov ecx, dword [esi + 0x118]
mov edi, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4876bb
sub ecx, edx
mov edx, edi
push ecx
lea ecx, [ebp - 0xf0]
call fcn.00484bdd
pop ecx
push eax
lea ecx, [ebp - 0xd4]
call fcn.00489697
lea ecx, [ebp - 0xf0]
call fcn.00484f47
push edi
call dword [sym.imp.mfc140.dll_Ordinal_266]
pop ecx
lea ecx, [ebp - 0xd4]
call fcn.00489639
push eax
push str._s_r_n
push 0x2800
push dword [esi + 0x118]
call fcn.0048a8a2
add esp, 0x10
push 6
pop ecx
call fcn.004854f1
mov edi, eax
mov ecx, esi
push edi
call fcn.00488438
push edi
mov ecx, esi
call fcn.00488e4f
push 0x4dad08
push 0x2800
push dword [esi + 0x118]
call fcn.0048a8a2
add esp, 0xc
push 8
pop ecx
call fcn.004854f1
mov edi, eax
mov ecx, esi
push edi
call fcn.00488438
push edi
mov ecx, esi
call fcn.00488e4f
lea ecx, [ebp - 0x158]
call fcn.00484f47
lea ecx, [ebp - 0x60]
call fcn.00484f47
lea ecx, [ebp - 0x34]
call fcn.00484f47
lea ecx, [ebp - 0x114]
call fcn.00484f47
lea ecx, [ebp - 0x78]
call fcn.00484f47
lea ecx, [ebp - 0xd4]
call fcn.00484f47
mov ecx, dword [ebp - 0xc]
mov al, 1
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0x18
push 0xce
lea ecx, [ebp - 0xac]
call fcn.004854d2
push 0x4e53cc
mov eax, ecx
jmp 0x48786d
push 0x1a1
lea ecx, [ebp - 0xb0]
call fcn.004854d2
push 0x4e53cc
mov eax, ecx
jmp 0x48786d
lea eax, [ebp - 0x590]
push eax
push dword [edi + 0x120]
call dword [sym.imp.WS2_32.dll___WSAFDIsSet]
test eax, eax
je 0x48663f
push dword [edi + 0x120]
call dword [sym.imp.WS2_32.dll_closesocket]
push 0x6d
lea ecx, [ebp - 0xb4]
call fcn.004854d2
push 0x4e53cc
mov eax, ecx
jmp 0x48786d
push 0x6a
lea ecx, [ebp - 0xb8]
call fcn.004854d2
push 0x4e53cc
mov eax, ecx
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
int3