Function at 0x10041500
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x3c
mov eax, dword [0x100892c0]
xor eax, esp
mov dword [esp + 0x38], eax
push ebx
mov ebx, dword [esp + 0x4c]
push ebp
push esi
mov esi, dword [esp + 0x4c]
push edi
mov edi, dword [esp + 0x54]
mov dword [esp + 0x1c], edi
push dword [esi + 0x78]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x1c], 0
mov byte [esp + 0x16], 0
mov byte [esp + 0x17], 0
call fcn.10036590
push dword [esi + 0x78]
mov dword [esp + 0x1c], eax
call fcn.100365b0
mov byte [ebx], 0
add esp, 8
mov dword [edi], 0
cmp dword [esi + 0xa90], 0
mov dword [esp + 0x20], eax
jne 0x1004157f
mov edi, 3
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.10067186
add esp, 0x3c
ret
push esi
call fcn.10040d60
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x100415a8
mov edi, 0x1b
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.10067186
add esp, 0x3c
ret
push ebx
push esi
mov dword [edi], ebx
call fcn.100432b0
mov edi, eax
add esp, 8
test edi, edi
jne 0x10041cd9
mov eax, dword [esi + 0xa04]
test eax, eax
je 0x100415dc
push eax
call dword [0x10089210]
add esp, 4
mov dword [ebx + 0x17c], eax
test eax, eax
je 0x1004158e
mov eax, dword [esi + 0xa10]
test eax, eax
je 0x100415fa
push eax
call dword [0x10089210]
add esp, 4
mov dword [ebx + 0x180], eax
test eax, eax
je 0x1004158e
push ebx
call fcn.10042160
mov edi, eax
add esp, 4
test edi, edi
jne 0x10041cd9
mov eax, dword [ebx + 0x2c4]
test byte [eax + 0x44], 1
je 0x1004162e
mov eax, dword [ebx + 0x29c]
test al, 0x40
je 0x1004162e
or eax, 0x8000
mov dword [ebx + 0x29c], eax
mov eax, dword [esi + 0x5b0]
test eax, eax
je 0x1004167b
test byte [esi + 0xf94], 0x10
je 0x1004167b
movzx eax, ax
push eax
push 0x10080b04
mov dword [ebx + 0x100], eax
lea eax, [esp + 0x40]
push 0x10
push eax
call fcn.10047ce0
push 0
lea eax, [esp + 0x4c]
push eax
push 6
push dword [esi + 0xf64]
call fcn.10059f40
add esp, 0x20
test eax, eax
jne 0x1004158e
lea eax, [ebx + 0x178]
push eax
lea ecx, [ebx + 0x174]
push ecx
lea ebp, [ebx + 0x170]
push ebp
push ebx
push esi
call fcn.10042970
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x10041cd9
mov eax, dword [ebx + 0x2c0]
mov ecx, str.anonymous
mov dword [esp + 0x38], str.ftp_example.com
test byte [eax + 0x44], 0x20
je 0x100416c9
test dword [ebx + 0x29c], 0x100
je 0x100416d2
mov ecx, 0x100763b8
mov dword [esp + 0x38], ecx
cmp dword [ebp], edi
jne 0x100416ec
push ecx
call dword [0x10089210]
add esp, 4
mov dword [ebp], eax
test eax, eax
je 0x1004158e
mov eax, dword [ebx + 0x174]
test eax, eax
jne 0x10041710
push dword [esp + 0x38]
call dword [0x10089210]
add esp, 4
mov dword [ebx + 0x174], eax
test eax, eax
jne 0x10041710
lea edi, [eax + 0x1b]
cmp dword [ebp], 0
je 0x10041738
test eax, eax
jne 0x10041738
push 0x100763b8
call dword [0x10089210]
add esp, 4
mov dword [ebx + 0x174], eax
test eax, eax
mov ecx, 0x1b
cmove edi, ecx
test edi, edi
jne 0x10041cd9
push dword [esi + 0x818]
push ebx
push esi
call fcn.10042d80
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x10041cd9
lea eax, [ebx + 0x94]
push eax
push ebx
call fcn.10042930
mov edi, eax
add esp, 8
test edi, edi
jne 0x10041cd9
test byte [ebx + 0x29c], 8
lea ebp, [ebx + 0x29c]
je 0x1004179d
lea eax, [ebx + 0xac]
push eax
push ebx
call fcn.10042930
mov edi, eax
add esp, 8
test edi, edi
jne 0x10041cd9
test byte [ebp], 0x40
je 0x100417bd
lea eax, [ebx + 0xdc]
push eax
push ebx
call fcn.10042930
mov edi, eax
add esp, 8
test edi, edi
jne 0x10041cd9
test byte [ebp], 0x80
je 0x100417dd
lea eax, [ebx + 0xbc]
push eax
push ebx
call fcn.10042930
mov edi, eax
add esp, 8
test edi, edi
jne 0x10041cd9
test byte [ebp], 8
je 0x100417ff
push dword [ebx + 0x9c]
push dword [ebx + 0xb4]
call fcn.10049050
add esp, 8
test eax, eax
je 0x100417ff
and dword [ebp], 0xfffffff7
mov eax, dword [ebp]
mov edx, eax
mov ecx, eax
test al, 0x10
je 0x10041820
mov eax, dword [ebx + 0x104]
cmp eax, dword [ebx + 0x100]
jne 0x10041820
and edx, 0xffffffef
mov dword [ebp], edx
mov ecx, edx
test dl, 0x18
je 0x10041835
test dl, 0x40
je 0x10041835
mov ecx, edx
or ecx, 0x8000
mov dword [ebp], ecx
mov eax, dword [ebx + 0x2c0]
mov edx, dword [eax + 4]
test edx, edx
je 0x1004185b
push ebx
call edx
mov edi, eax
add esp, 4
test edi, edi
jne 0x10041cd9
mov eax, dword [ebx + 0x2c0]
mov ecx, dword [ebp]
cmp dword [ebx + 0xfc], 0
jge 0x1004186d
mov eax, dword [eax + 0x3c]
mov dword [ebx + 0xfc], eax
mov dword [ebx + 0x1d4], 0x10044970
mov dword [ebx + 0x1dc], 0x10044ac0
mov dword [ebx + 0x1d8], 0x10044970
mov dword [ebx + 0x1e0], 0x10044ac0
mov eax, dword [esi + 0xa8c]
shl eax, 0x11
xor eax, ecx
and eax, 0x2000000
xor eax, ecx
mov dword [ebp], eax
mov eax, dword [esi + 0x988]
mov dword [esi + 0x838], eax
mov eax, dword [esi + 0x98c]
mov dword [esi + 0x88c], eax
mov eax, dword [esi + 0x990]
mov dword [esi + 0x83c], eax
mov eax, dword [esi + 0x994]
mov dword [esi + 0x890], eax
mov eax, dword [esi + 0x9b4]
mov dword [esi + 0x844], eax
mov dword [esi + 0x898], eax
mov eax, dword [esi + 0x9b0]
mov dword [esi + 0x848], eax
mov dword [esi + 0x89c], eax
mov eax, dword [esi + 0x9a0]
mov dword [esi + 0x84c], eax
mov eax, dword [esi + 0x9a4]
mov dword [esi + 0x8a0], eax
mov eax, dword [esi + 0x9a8]
mov dword [esi + 0x850], eax
mov eax, dword [esi + 0x9ac]
mov dword [esi + 0x8a4], eax
mov eax, dword [esi + 0x9bc]
mov dword [esi + 0x85c], eax
mov eax, dword [esi + 0x9c0]
mov dword [esi + 0x8b0], eax
mov eax, dword [esi + 0x9c4]
mov dword [esi + 0x860], eax
mov eax, dword [esi + 0x9c8]
mov edx, dword [esi + 0x920]
mov ecx, dword [esi + 0x924]
mov dword [esi + 0x8b4], eax
mov eax, dword [esi + 0x928]
mov dword [esi + 0x870], eax
mov eax, dword [esi + 0x92c]
mov dword [esi + 0x8c4], eax
mov eax, dword [esi + 0x954]
mov dword [esi + 0x874], eax
mov eax, dword [esi + 0x958]
mov dword [esi + 0x8c8], eax
mov eax, dword [esi + 0x964]
mov dword [esi + 0x878], eax
mov eax, dword [esi + 0x968]
mov dword [esi + 0x8cc], eax
mov eax, dword [esi + 0x95c]
mov dword [esi + 0x87c], eax
mov eax, dword [esi + 0x960]
mov dword [esi + 0x8d0], eax
lea eax, [ebx + 0x248]
push eax
lea eax, [esi + 0x830]
mov dword [esi + 0x86c], edx
push eax
mov dword [esi + 0x8c0], ecx
mov dword [esi + 0x840], edx
mov dword [esi + 0x894], ecx
call fcn.1003e090
add esp, 8
test al, al
je 0x1004158e
lea eax, [ebx + 0x270]
push eax
lea eax, [esi + 0x884]
push eax
call fcn.1003e090
add esp, 8
test al, al
je 0x1004158e
lea eax, [esp + 0x38]
push eax
call fcn.1004ca90
mov edx, dword [esi + 0xc30]
mov edi, eax
sub esp, 0xc
mov ecx, esp
sub esp, 0x10
mov eax, esp
movups xmm0, xmmword [edi]
movups xmmword [esp + 0x48], xmm0
movups xmm0, xmmword [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edi]
movups xmmword [eax], xmm0
call fcn.1004cb40
add esp, 0x20
test edx, edx
jl 0x10041ac8
jg 0x10041a64
cmp eax, 0x3e8
jb 0x10041ac8
push 0x100410a0
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], esi
push eax
push dword [esi + 0xc30]
mov dword [esp + 0x48], 0
push esi
call fcn.1003d920
add esp, 0x10
test al, al
je 0x10041ab9
nop dword [eax]
push 1
push dword [esp + 0x40]
push esi
call fcn.10040350
push 0x100410a0
lea eax, [esp + 0x48]
push eax
push dword [esi + 0xc30]
push esi
call fcn.1003d920
add esp, 0x1c
test al, al
jne 0x10041a90
mov eax, dword [esi + 0xc30]
movups xmm0, xmmword [esp + 0x28]
movups xmmword [eax + 0x20], xmm0
test dword [esi + 0xa88], 0x10000000
je 0x10041ae1
test byte [esi + 0xf94], 2
je 0x10041b83
test byte [esi + 0xa8c], 1
jne 0x10041b83
lea eax, [esp + 0x13]
push eax
lea eax, [esp + 0x16]
push eax
lea eax, [esp + 0x20]
push eax
push ebx
push esi
call fcn.1003f6b0
add esp, 0x14
test al, al
je 0x10041b83
cmp byte [esp + 0x12], 0
mov edi, dword [esp + 0x18]
jne 0x10041c21
push edi
push esi
call fcn.10040d00
add esp, 8
test eax, eax
je 0x10041c21
mov eax, dword [edi + 0x354]
test eax, eax
je 0x10041c21
push eax
push dword [edi + 0x48]
push str.Found_connection__ld__with__zu_requests_on_it_n
push esi
call fcn.100447a0
push edi
call fcn.1003d590
add esp, 0x14
cmp eax, dword [esp + 0x14]
jae 0x10041c21
push esi
call fcn.1003dd00
add esp, 4
cmp eax, dword [esp + 0x20]
jae 0x10041c21
push str.We_can_reuse__but_we_want_a_new_connection_anyway_n
push esi
call fcn.100447a0
push edi
call fcn.1003db30
add esp, 0xc
mov eax, dword [ebx + 0x2c0]
test dword [eax + 0x44], 0x100
je 0x10041bba
mov eax, dword [esi + 0xa8c]
test eax, 0x400
je 0x10041bac
or dword [ebp], 0x8000000
mov eax, dword [esi + 0xa8c]
test eax, 0x200
je 0x10041bba
or dword [ebp], 0x4000000
cmp byte [esp + 0x13], 0
jne 0x10041cb6
lea eax, [esp + 0x18]
push eax
push dword [esi + 0xc30]
push ebx
call fcn.1003d870
mov ecx, dword [esp + 0x20]
add esp, 0xc
test ecx, ecx
je 0x10041cee
test eax, eax
je 0x10041cee
cmp dword [eax + 4], ecx
jb 0x10041cee
push eax
push esi
call fcn.1003d690
push esi
mov edi, eax
call fcn.1003dd40
add esp, 0xc
test edi, edi
je 0x10041ca0
push 0
push edi
push esi
call fcn.10040350
add esp, 0xc
jmp 0x10041cf7
push edi
push ebx
call fcn.10043660
push dword [ebx + 0x244]
call dword [0x10089208]
push ebx
call dword [0x10089208]
mov eax, dword [esp + 0x2c]
add esp, 0x10
mov ebx, edi
mov dword [eax], edi
cmp dword [edi + 0xc4], 0
je 0x10041c57
mov eax, dword [edi + 0xc8]
jmp 0x10041c6e
cmp dword [edi + 0xe4], 0
je 0x10041c68
mov eax, dword [edi + 0xe8]
jmp 0x10041c6e
mov eax, dword [edi + 0xa0]
test byte [edi + 0x29c], 0x20
lea ebp, [edi + 0x29c]
push eax
mov ecx, str.host
mov eax, str.proxy
cmove eax, ecx
push eax
push dword [edi + 0x48]
push str.Re_using_existing_connection____ld__with__s__s_n
push esi
call fcn.100447a0
add esp, 0x14
jmp 0x10041d9c
push dword [esp + 0x14]
push dword [esp + 0x1c]
push str.No_more_connections_allowed_to_host__s:__zu_n
push esi
call fcn.100447a0
add esp, 0x10
push str.No_connections_available._n
push esi
call fcn.100447a0
push ebx
call fcn.100411b0
mov eax, dword [esp + 0x28]
add esp, 0xc
mov edi, 0x59
mov dword [eax], 0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.10067186
add esp, 0x3c
ret
push esi
call fcn.1003dd40
add esp, 4
mov edi, dword [esp + 0x20]
test edi, edi
je 0x10041d29
push esi
call fcn.1003dd00
add esp, 4
cmp eax, edi
jb 0x10041d29
push esi
call fcn.1003d740
add esp, 4
test eax, eax
je 0x10041de8
push 0
push eax
push esi
call fcn.10040350
add esp, 0xc
push ebx
push dword [esi + 0xc30]
call fcn.1003d390
mov edi, eax
add esp, 8
test edi, edi
jne 0x10041cd9
test byte [esi + 0xcd4], 0x28
je 0x10041d6b
test byte [esi + 0xcdc], 1
je 0x10041d6b
push str.NTLM_picked_AND_auth_done_set__clear_picked__n
push esi
call fcn.100447a0
add esp, 8
mov dword [esi + 0xcd4], edi
and dword [esi + 0xcdc], 0xfffffffe
test byte [esi + 0xce4], 0x28
je 0x10041d9c
test byte [esi + 0xcec], 1
je 0x10041d9c
push str.NTLM_proxy_picked_AND_auth_done_set__clear_picked__n
push esi
call fcn.100447a0
add esp, 8
mov dword [esi + 0xce4], 0
and dword [esi + 0xcec], 0xfffffffe
and dword [ebp], 0xffffefff
mov edx, dword [esi + 0xf94]
mov ecx, edx
test dl, dl
jns 0x10041dc4
mov eax, dword [ebx + 0x2c0]
test dword [eax + 0x44], 0x1000
jne 0x10041dc4
and ecx, 0xffffff7f
and ecx, 0xfffff6ff
test dword [esi + 0xa88], 0x800000
mov dword [esi + 0xf94], ecx
je 0x10041dfb
mov dword [esi + 0x828], 6
jmp 0x10041e0e
push str.No_connections_available_in_cache_n
push esi
call fcn.100447a0
add esp, 8
jmp 0x10041cb6
cmp dword [esi + 0x828], 6
jne 0x10041e0e
mov dword [esi + 0x828], 1
lea eax, [esp + 0x28]
push eax
call fcn.1004ca90
push esi
movups xmm0, xmmword [eax]
mov dword [esi + 0x98], 0
mov dword [esi + 0x9c], 0
movups xmmword [esi + 0xb8], xmm0
movups xmm0, xmmword [esi + 0xb8]
movups xmmword [esi + 0xc8], xmm0
mov eax, dword [esi + 0xc54]
mov dword [esi + 0x134], eax
mov eax, dword [esi + 0xc4c]
mov dword [esi + 0xe0], eax
mov eax, dword [esi + 0x588]
and eax, 0xfffffff7
or eax, 1
mov dword [esi + 0x588], eax
call fcn.10054380
push 0
push 0
push esi
call fcn.100531b0
push 0
push 0
push esi
call fcn.10053130
mov ecx, dword [esi + 0x678]
add esp, 0x20
mov edx, dword [esi + 0x67c]
mov eax, ecx
or eax, edx
mov dword [esi + 0xf30], ecx
mov dword [esi + 0xf34], edx
jne 0x10041ec0
cmp dword [esi + 0x97c], eax
jne 0x10041ec0
and dword [esi + 0xf94], 0xfffffdff
jmp 0x10041f4b
test dword [esi + 0xf94], 0x400
je 0x10041ee7
push dword [esi + 0xf28]
call dword [0x10089208]
mov ecx, dword [esi + 0xf30]
add esp, 4
mov edx, dword [esi + 0xf34]
mov eax, ecx
or eax, edx
je 0x10041efe
push edx
push ecx
push str._I64d_
call fcn.10047c30
add esp, 0xc
jmp 0x10041f0d
push dword [esi + 0x97c]
call dword [0x10089210]
add esp, 4
mov ecx, eax
mov dword [esi + 0xf28], ecx
neg ecx
mov eax, dword [esi + 0xf94]
sbb ecx, ecx
and eax, 0xfffffbff
and ecx, 0x400
or ecx, eax
cmp dword [esi + 0xf28], 0
mov dword [esi + 0xf94], ecx
je 0x1004158e
or ecx, 0x200
mov dword [esi + 0xf94], ecx
mov eax, dword [esi + 0x5d0]
xor edi, edi
push 1
mov dword [ebx + 0x358], eax
mov eax, dword [esi + 0x620]
push edi
push esi
mov dword [ebx + 0x35c], eax
call fcn.10045bb0
mov dword [esp + 0x24], eax
add esp, 0xc
mov eax, dword [ebp]
mov dword [esp + 0x20], edx
test al, 2
je 0x10041f8c
mov eax, dword [esp + 0x24]
mov byte [eax], 0
jmp 0x100420ea
test al, 0x20
jne 0x10042050
mov ecx, eax
and ecx, 8
mov dword [esp + 0x1c], ecx
test al, 0x10
je 0x10041fa9
mov eax, dword [ebx + 0x104]
jmp 0x10041faf
mov eax, dword [ebx + 0x100]
mov dword [ebx + 0xfc], eax
test ecx, ecx
mov edx, 0x9c
mov eax, 0xb4
cmove eax, edx
push dword [eax + ebx]
call dword [0x10089210]
add esp, 4
mov dword [ebx + 0xa4], eax
test eax, eax
jne 0x10041fe2
lea edi, [eax + 0x1b]
jmp 0x100420ea
push dword [esp + 0x20]
lea ecx, [esp + 0x18]
push dword [esp + 0x1c]
push ecx
push dword [ebx + 0xfc]
push eax
push ebx
call fcn.1004dde0
add esp, 0x18
cmp eax, 1
jne 0x10042010
mov eax, dword [esp + 0x24]
mov byte [eax], 1
jmp 0x100420e3
cmp eax, 0xfffffffe
jne 0x1004201d
lea edi, [eax + 0x1e]
jmp 0x100420e3
cmp dword [esp + 0x14], edi
jne 0x100420e3
cmp dword [esp + 0x1c], edi
mov ecx, 0xa0
mov eax, 0xb8
cmove eax, ecx
push dword [eax + ebx]
push str.Couldnt_resolve_host__s
push esi
call fcn.100446b0
mov edi, 6
jmp 0x100420e0
and eax, 0x80
mov ecx, 0xe4
mov dword [esp + 0x1c], eax
mov eax, 0xc4
cmove eax, ecx
push dword [eax + ebx]
call dword [0x10089210]
add esp, 4
mov dword [ebx + 0xa4], eax
test eax, eax
jne 0x10042081
lea edi, [eax + 0x1b]
jmp 0x100420ea
push dword [esp + 0x20]
lea ecx, [esp + 0x18]
push dword [esp + 0x1c]
push ecx
push dword [ebx + 0xfc]
push eax
push ebx
call fcn.1004dde0
add esp, 0x18
cmp eax, 1
jne 0x100420ac
mov eax, dword [esp + 0x24]
mov byte [eax], 1
jmp 0x100420e3
cmp eax, 0xfffffffe
jne 0x100420b6
lea edi, [eax + 0x1e]
jmp 0x100420e3
cmp dword [esp + 0x14], edi
jne 0x100420e3
cmp dword [esp + 0x1c], edi
mov ecx, 0xe8
mov eax, 0xc8
cmove eax, ecx
push dword [eax + ebx]
push str.Couldnt_resolve_proxy__s
push esi
call fcn.100446b0
mov edi, 5
add esp, 0xc
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x4c], eax
lea eax, [ebx + 0x94]
push eax
call fcn.10043960
mov eax, dword [ebp]
add esp, 4
test al, 0x40
je 0x10042112
lea eax, [ebx + 0xdc]
push eax
call fcn.10043960
mov eax, dword [ebp]
add esp, 4
test al, al
jns 0x10042128
lea eax, [ebx + 0xbc]
push eax
call fcn.10043960
mov eax, dword [ebp]
add esp, 4
test al, 8
je 0x10041cd9
lea eax, [ebx + 0xac]
push eax
call fcn.10043960
mov ecx, dword [esp + 0x4c]
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10067186
add esp, 0x3c
ret