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

Disassembly:
sub esp, 0x18
push ebx
push ebp
mov ebp, dword [esp + 0x28]
xor ebx, ebx
push esi
xor esi, esi
mov dword [esp + 0x10], ebx
push edi
mov eax, dword [ebp + 0x290]
mov byte [esp + 0x13], bl
test byte [eax + 0x44], 3
je 0x40f187
cmp byte [ebp + 0x257], bl
je 0x40f163
cmp byte [ebp + 0x24d], bl
jne 0x40f187
mov edi, dword [esp + 0x2c]
push dword [edi + 0x70]
call fcn.00405250
add esp, 4
test al, al
je 0x40f18b
cmp byte [edi + 0xc2c], 3
mov eax, 2
cmovae esi, eax
jmp 0x40f18b
mov edi, dword [esp + 0x2c]
test esi, esi
setne byte [esp + 0x30]
test byte [edi + 0x998], 0x28
je 0x40f1ac
mov eax, dword [ebp + 0x290]
mov byte [esp + 0x12], 1
test byte [eax + 0x44], 3
jne 0x40f1b0
mov byte [esp + 0x12], bl
cmp byte [ebp + 0x24a], bl
je 0x40f1d4
test byte [edi + 0x9a8], 0x28
je 0x40f1d4
mov eax, dword [ebp + 0x290]
test byte [eax + 0x44], 3
je 0x40f1d4
mov byte [esp + 0x11], 1
jmp 0x40f1da
xor al, al
mov byte [esp + 0x11], al
mov eax, dword [esp + 0x38]
mov byte [eax], bl
mov eax, dword [esp + 0x3c]
mov byte [eax], bl
lea eax, [esp + 0x24]
push eax
push dword [edi + 0x8d0]
push ebp
push edi
call fcn.0040d0f0
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
je 0x40f9e7
cmp dword [eax], 2
mov edx, str.serially
mov ecx, str.can_multiplex
cmovne ecx, edx
push ecx
push eax
push dword [esp + 0x2c]
push str.Found_bundle_for_host__s:__p___s__n
push edi
call fcn.00413f20
add esp, 0x14
test esi, esi
mov esi, dword [esp + 0x18]
je 0x40f2c9
mov eax, dword [esi]
test eax, eax
jne 0x40f28c
cmp byte [edi + 0x725], bl
je 0x40f278
push str.Server_doesnt_support_multiplex_yet__wait_n
push edi
call fcn.00413f20
mov eax, dword [esp + 0x44]
add esp, 8
mov byte [eax], 1
cmp dword [edi + 0x78], ebx
je 0x40fa7f
push 5
push edi
call fcn.00418ad0
add esp, 8
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
push str.Server_doesnt_support_multiplex__yet__n
push edi
call fcn.00413f20
mov eax, dword [esi]
add esp, 8
mov byte [esp + 0x30], bl
cmp eax, 2
jne 0x40f2b2
push dword [edi + 0x70]
call fcn.00405250
add esp, 4
test al, al
jne 0x40f2b2
push str.Could_multiplex__but_not_asked_to__n
push edi
call fcn.00413f20
add esp, 8
mov byte [esp + 0x30], bl
cmp dword [esi], 0xffffffff
jne 0x40f2c9
push str.Can_not_multiplex__even_if_we_wanted_to__n
push edi
call fcn.00413f20
add esp, 8
mov byte [esp + 0x30], bl
mov esi, dword [esi + 8]
mov dword [esp + 0x1c], esi
test esi, esi
je 0x40f9e7
mov eax, dword [esp + 0x1c]
xor ebx, ebx
mov esi, dword [esi]
mov dword [esp + 0x20], ebx
mov eax, dword [eax + 8]
mov dword [esp + 0x1c], eax
cmp byte [esi + 0x265], bl
jne 0x40f36c
cmp byte [esi + 0x24d], bl
jne 0x40f36c
push edi
push esi
call fcn.00412250
add esp, 8
test al, al
je 0x40f323
push 1
push esi
push edi
call fcn.00410070
mov ebx, dword [esp + 0x20]
add esp, 0xc
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
jmp 0x40f2d0
mov al, byte [edi + 0x4f0]
test al, al
je 0x40f335
cmp al, byte [esi + 0x100]
jne 0x40f36c
mov eax, dword [esp + 0x18]
cmp dword [eax], 2
jne 0x40f348
mov ebx, dword [esi + 0x2f0]
mov dword [esp + 0x20], ebx
cmp byte [esp + 0x30], 0
jne 0x40f395
test ebx, ebx
jne 0x40f36c
cmp byte [esi + 0xd2], bl
jne 0x40f37d
push dword [esi + 0x40]
push str.Connection__ld_is_still_name_resolving__cant_reuse_n
push edi
call fcn.00413f20
add esp, 0xc
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
jmp 0x40f2d0
cmp dword [esi + 0x148], 0xffffffff
jne 0x40f395
push dword [esi + 0x40]
mov byte [esp + 0x17], 1
push str.Connection__ld_isnt_open_enough__cant_reuse_n
jmp 0x40f363
mov ecx, dword [ebp + 0x4d8]
mov eax, dword [esi + 0x4d8]
test ecx, ecx
je 0x40f3e7
test eax, eax
je 0x40f36c
nop dword [eax]
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x40f3d0
test dl, dl
je 0x40f3cc
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x40f3d0
add ecx, 2
add eax, 2
test dl, dl
jne 0x40f3b0
xor eax, eax
jmp 0x40f3d5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40f36c
mov al, byte [ebp + 0x267]
cmp al, byte [esi + 0x267]
jmp 0x40f3e9
test eax, eax
jne 0x40f36c
mov edx, dword [ebp + 0x290]
mov ecx, dword [esi + 0x290]
mov eax, dword [edx + 0x4c]
xor eax, dword [ecx + 0x4c]
test al, 1
je 0x40f41a
mov eax, dword [ecx + 0x48]
cmp eax, dword [edx + 0x44]
jne 0x40f36c
cmp byte [esi + 0x268], 0
je 0x40f36c
mov al, byte [ebp + 0x248]
cmp al, byte [esi + 0x248]
jne 0x40f36c
mov al, byte [ebp + 0x249]
cmp al, byte [esi + 0x249]
jne 0x40f36c
test al, al
je 0x40f538
mov eax, dword [ebp + 0x98]
cmp eax, dword [esi + 0x98]
jne 0x40f36c
mov eax, dword [ebp + 0x94]
cmp eax, dword [esi + 0x94]
jne 0x40f36c
push dword [esi + 0x8c]
push dword [ebp + 0x8c]
call fcn.00418330
add esp, 8
test eax, eax
je 0x40f36c
mov edx, dword [ebp + 0x9c]
xor ecx, ecx
mov edi, dword [esi + 0x9c]
test edx, edx
sete cl
xor eax, eax
test edi, edi
sete al
cmp ecx, eax
jne 0x40f36c
test edx, edx
je 0x40f4dd
test edi, edi
je 0x40f4dd
mov al, byte [edx]
cmp al, byte [edi]
jne 0x40f4d0
test al, al
je 0x40f4cc
mov al, byte [edx + 1]
cmp al, byte [edi + 1]
jne 0x40f4d0
add edx, 2
add edi, 2
test al, al
jne 0x40f4b0
xor eax, eax
jmp 0x40f4d5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40f36c
mov edx, dword [ebp + 0xa0]
xor ecx, ecx
mov edi, dword [esi + 0xa0]
test edx, edx
sete cl
xor eax, eax
test edi, edi
sete al
cmp ecx, eax
jne 0x40f36c
test edx, edx
je 0x40f534
test edi, edi
je 0x40f534
mov al, byte [edx]
cmp al, byte [edi]
jne 0x40f527
test al, al
je 0x40f523
mov al, byte [edx + 1]
cmp al, byte [edi + 1]
jne 0x40f527
add edx, 2
add edi, 2
test al, al
jne 0x40f507
xor eax, eax
jmp 0x40f52c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40f36c
mov edi, dword [esp + 0x2c]
mov al, byte [ebp + 0x250]
cmp al, byte [esi + 0x250]
jne 0x40f36c
mov al, byte [ebp + 0x251]
cmp al, byte [esi + 0x251]
jne 0x40f36c
cmp byte [ebp + 0x248], 0
je 0x40f622
mov eax, dword [ebp + 0xb8]
cmp eax, dword [esi + 0xb8]
jne 0x40f36c
mov eax, dword [ebp + 0xb4]
cmp eax, dword [esi + 0xb4]
jne 0x40f36c
push dword [esi + 0xac]
push dword [ebp + 0xac]
call fcn.00418330
add esp, 8
test eax, eax
je 0x40f36c
mov al, byte [ebp + 0x24b]
cmp al, byte [esi + 0x24b]
jne 0x40f36c
cmp dword [ebp + 0xb8], 2
jne 0x40f622
mov eax, dword [ebp + 0x290]
test byte [eax + 0x4c], 1
je 0x40f5f7
lea eax, [esi + 0x20c]
push eax
lea eax, [ebp + 0x20c]
push eax
call fcn.0040e450
add esp, 8
test al, al
je 0x40f36c
cmp dword [esi + 0x1b0], 2
jmp 0x40f61c
lea eax, [esi + 0x1d4]
push eax
lea eax, [ebp + 0x1d4]
push eax
call fcn.0040e450
add esp, 8
test al, al
je 0x40f36c
cmp dword [esi + 0x190], 2
jne 0x40f36c
cmp byte [esp + 0x30], 0
jne 0x40f636
cmp dword [esi + 0x2f0], 0
jne 0x40f36c
cmp dword [esi + 0x2f0], 0
je 0x40f653
mov eax, dword [esi + 0x2e4]
mov eax, dword [eax]
mov eax, dword [eax + 0x70]
cmp eax, dword [edi + 0x70]
jne 0x40f36c
mov ecx, dword [ebp + 0x4dc]
test ecx, ecx
jne 0x40f666
cmp word [ebp + 0x4f4], cx
je 0x40f6cd
mov ax, word [esi + 0x4f4]
cmp ax, word [ebp + 0x4f4]
jne 0x40f36c
mov eax, dword [esi + 0x4e0]
cmp eax, dword [ebp + 0x4e0]
jne 0x40f36c
test ecx, ecx
je 0x40f6cd
mov eax, dword [esi + 0x4dc]
test eax, eax
je 0x40f36c
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40f6c0
test dl, dl
je 0x40f6bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40f6c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x40f6a0
xor eax, eax
jmp 0x40f6c5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40f36c
mov edi, dword [ebp + 0x290]
mov ebx, dword [edi + 0x4c]
test bl, bl
js 0x40f74d
mov ecx, dword [esi + 0x104]
mov eax, dword [ebp + 0x104]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40f706
test dl, dl
je 0x40f702
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40f706
add eax, 2
add ecx, 2
test dl, dl
jne 0x40f6e6
xor eax, eax
jmp 0x40f70b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40f36c
mov ecx, dword [esi + 0x108]
mov eax, dword [ebp + 0x108]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40f740
test dl, dl
je 0x40f73c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40f740
add eax, 2
add ecx, 2
test dl, dl
jne 0x40f720
xor eax, eax
jmp 0x40f745
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40f36c
test byte [edi + 0x44], 3
je 0x40f76d
cmp byte [esi + 0x114], 0x14
jb 0x40f76d
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0xc2c], 3
jb 0x40f36c
test bl, 1
jne 0x40f788
cmp byte [ebp + 0x248], 0
je 0x40f788
cmp byte [ebp + 0x24b], 0
je 0x40f86e
mov eax, dword [esi + 0x290]
push dword [eax]
push dword [edi]
call fcn.00418360
add esp, 8
test eax, eax
jne 0x40f7c3
mov eax, dword [esi + 0x290]
mov ecx, dword [ebp + 0x290]
mov eax, dword [eax + 0x48]
cmp eax, dword [ecx + 0x44]
jne 0x40f36c
cmp byte [esi + 0x268], 0
je 0x40f36c
cmp byte [ebp + 0x250], 0
je 0x40f7e2
push dword [esi + 0x7c]
push dword [ebp + 0x7c]
call fcn.00418360
add esp, 8
test eax, eax
je 0x40f36c
cmp byte [ebp + 0x251], 0
je 0x40f7fd
mov eax, dword [ebp + 0xcc]
cmp eax, dword [esi + 0xcc]
jne 0x40f36c
push dword [esi + 0x64]
push dword [ebp + 0x64]
call fcn.00418360
add esp, 8
test eax, eax
je 0x40f36c
mov eax, dword [ebp + 0xc8]
cmp eax, dword [esi + 0xc8]
jne 0x40f36c
mov eax, dword [ebp + 0x290]
test byte [eax + 0x4c], 1
je 0x40f86e
lea eax, [esi + 0x1d4]
push eax
lea eax, [ebp + 0x1d4]
push eax
call fcn.0040e450
add esp, 8
test al, al
je 0x40f36c
cmp dword [esi + 0x190], 2
je 0x40f86e
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
mov byte [esp + 0x13], 1
jmp 0x40f2d0
cmp byte [esp + 0x12], 0
je 0x40f909
mov ecx, dword [esi + 0x104]
mov eax, dword [ebp + 0x104]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40f8a5
test dl, dl
je 0x40f8a1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40f8a5
add eax, 2
add ecx, 2
test dl, dl
jne 0x40f885
xor eax, eax
jmp 0x40f8aa
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40f8e9
mov ecx, dword [esi + 0x108]
mov eax, dword [ebp + 0x108]
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40f8e0
test dl, dl
je 0x40f8dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40f8e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x40f8c0
xor eax, eax
jmp 0x40f8e5
sbb eax, eax
or eax, 1
test eax, eax
je 0x40f916
cmp dword [esi + 0x300], 0
jne 0x40f36c
mov edi, dword [esp + 0x2c]
mov ebx, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x14], ebx
jmp 0x40f2d0
cmp dword [esi + 0x300], 0
jne 0x40f36c
mov al, byte [esp + 0x11]
test al, al
je 0x40fa16
mov eax, dword [esi + 0xbc]
test eax, eax
je 0x40f36c
mov edx, dword [esi + 0xc0]
test edx, edx
je 0x40f36c
mov ecx, dword [ebp + 0xbc]
mov bl, byte [ecx]
cmp bl, byte [eax]
jne 0x40f964
test bl, bl
je 0x40f960
mov bl, byte [ecx + 1]
cmp bl, byte [eax + 1]
jne 0x40f964
add ecx, 2
add eax, 2
test bl, bl
jne 0x40f944
xor eax, eax
jmp 0x40f969
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40f36c
mov eax, dword [ebp + 0xc0]
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x40f997
test cl, cl
je 0x40f993
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x40f997
add eax, 2
add edx, 2
test cl, cl
jne 0x40f977
xor eax, eax
jmp 0x40f99c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40f36c
mov al, byte [esp + 0x11]
mov cl, byte [esp + 0x12]
test cl, cl
jne 0x40f9b4
test al, al
je 0x40fa25
mov ebx, esi
mov dword [esp + 0x14], ebx
test cl, cl
je 0x40f9c7
cmp dword [esi + 0x300], 0
jne 0x40f9dc
test al, al
je 0x40f370
cmp dword [esi + 0x304], 0
je 0x40f370
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x2c]
mov byte [eax], 1
test ebx, ebx
je 0x40fa49
push ebx
push edi
call fcn.00404d20
add esp, 8
cmp dword [edi + 0x78], 0
je 0x40fa06
push 5
push edi
call fcn.00418ad0
add esp, 8
mov eax, dword [esp + 0x34]
pop edi
pop esi
pop ebp
mov dword [eax], ebx
mov al, 1
pop ebx
add esp, 0x18
ret
cmp dword [esi + 0x304], 0
jne 0x40f36c
jmp 0x40f9a8
cmp byte [esp + 0x30], 0
mov ebx, esi
mov edi, dword [esp + 0x2c]
je 0x40f9e7
cmp dword [esp + 0x20], 0
je 0x40f9e7
push str.Multiplexed_connection_found__n
push edi
call fcn.00413f20
add esp, 8
jmp 0x40f9e7
cmp dword [edi + 0x78], 0
je 0x40fa5a
push 5
push edi
call fcn.00418ad0
add esp, 8
cmp byte [esp + 0x13], 0
je 0x40fa7f
cmp byte [edi + 0x725], 0
je 0x40fa7f
push str.Found_pending_candidate_for_reuse_and_CURLOPT_PIPEWAIT_is_set_n
push edi
call fcn.00413f20
mov eax, dword [esp + 0x44]
add esp, 8
mov byte [eax], 1
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x18
ret