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

Disassembly:
sub esp, 0x18
push ebx
push ebp
mov ebp, dword [esp + 0x28]
push esi
push edi
xor edi, edi
mov byte [esp + 0x12], 0
mov eax, dword [ebp + 0x540]
xor esi, esi
mov dword [esp + 0x18], edi
test byte [eax + 0x40], 3
je 0x46f79a
cmp byte [ebp + 0x50d], 0
je 0x46f776
cmp byte [ebp + 0x500], 0
jne 0x46f79a
mov ebx, dword [esp + 0x2c]
push dword [ebx + 0x78]
call fcn.00465f20
add esp, 4
test al, al
je 0x46f79e
cmp dword [ebx + 0x844], 3
mov eax, 2
cmovge esi, eax
jmp 0x46f79e
mov ebx, dword [esp + 0x2c]
test esi, esi
setne al
test byte [ebx + 0xd70], 0x28
mov byte [esp + 0x30], al
je 0x46f7c0
mov eax, dword [ebp + 0x540]
test byte [eax + 0x40], 3
je 0x46f7c0
mov al, 1
jmp 0x46f7c2
xor al, al
cmp byte [ebp + 0x509], 0
mov byte [esp + 0x13], al
je 0x46f7eb
test byte [ebx + 0xd80], 0x28
je 0x46f7eb
mov eax, dword [ebp + 0x540]
test byte [eax + 0x40], 3
je 0x46f7eb
mov byte [esp + 0x11], 1
jmp 0x46f7f1
xor al, al
mov byte [esp + 0x11], al
mov eax, dword [esp + 0x38]
mov byte [eax], 0
mov eax, dword [esp + 0x3c]
mov byte [eax], 0
lea eax, [esp + 0x20]
push eax
push dword [ebx + 0xcd0]
push ebp
call fcn.0046d740
mov edi, eax
add esp, 0xc
mov dword [esp + 0x24], edi
test edi, edi
je 0x470015
cmp dword [edi], 2
mov eax, str.serially
mov ecx, str.can_multiplex
cmovne ecx, eax
push ecx
push edi
push dword [esp + 0x28]
push str.Found_bundle_for_host__s:__p___s__n
push ebx
call fcn.004752b0
add esp, 0x14
test esi, esi
je 0x46f8d9
mov eax, dword [edi]
test eax, eax
jne 0x46f896
cmp byte [ebx + 0xb25], al
je 0x46f880
push str.Server_doesnt_support_multiplex_yet__wait_n
push ebx
call fcn.004752b0
mov eax, dword [esp + 0x44]
push ebx
mov byte [eax], 1
call fcn.0046dc80
add esp, 0xc
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
push str.Server_doesnt_support_multiplex__yet__n
push ebx
call fcn.004752b0
add esp, 8
xor al, al
mov byte [esp + 0x30], al
mov eax, dword [edi]
cmp eax, 2
jne 0x46f8be
push dword [ebx + 0x78]
call fcn.00465f20
add esp, 4
test al, al
jne 0x46f8be
push str.Could_multiplex__but_not_asked_to__n
push ebx
call fcn.004752b0
add esp, 8
xor al, al
mov byte [esp + 0x30], al
cmp dword [edi], 0xffffffff
jne 0x46f8d9
push str.Can_not_multiplex__even_if_we_wanted_to__n
push ebx
call fcn.004752b0
add esp, 8
xor cl, cl
mov byte [esp + 0x30], cl
jmp 0x46f8dd
mov cl, byte [esp + 0x30]
mov esi, dword [edi + 8]
test esi, esi
je 0x470015
mov edi, dword [esi]
xor eax, eax
mov esi, dword [esi + 8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], esi
cmp byte [edi + 0x51e], al
jne 0x46ffaf
cmp byte [edi + 0x500], al
jne 0x46ffaf
mov edx, dword [esp + 0x24]
cmp dword [edx], 2
jne 0x46f922
mov eax, dword [edi + 0x5d4]
mov dword [esp + 0x1c], eax
test cl, cl
jne 0x46f976
test eax, eax
jne 0x46ffaf
cmp byte [edi + 0x2c4], al
jne 0x46f94f
push dword [edi + 0x2b0]
push str.Connection__ld_is_still_name_resolving__cant_reuse_n
push ebx
call fcn.004752b0
add esp, 0xc
jmp 0x46ffab
cmp dword [edi + 0x420], 0xffffffff
jne 0x46f976
push dword [edi + 0x2b0]
mov byte [esp + 0x16], 1
push str.Connection__ld_isnt_open_enough__cant_reuse_n
push ebx
call fcn.004752b0
add esp, 0xc
jmp 0x46ffab
mov ecx, dword [ebp + 0x7dc]
mov eax, dword [edi + 0x7dc]
test ecx, ecx
je 0x46f9cb
test eax, eax
je 0x46ffab
nop
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x46f9b0
test dl, dl
je 0x46f9ac
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x46f9b0
add ecx, 2
add eax, 2
test dl, dl
jne 0x46f990
xor eax, eax
jmp 0x46f9b5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x46ffab
mov al, byte [ebp + 0x7e0]
cmp al, byte [edi + 0x7e0]
jmp 0x46f9cd
test eax, eax
jne 0x46ffab
mov ecx, dword [edi + 0x540]
mov edx, dword [ebp + 0x540]
mov eax, dword [ecx + 0x44]
xor eax, dword [edx + 0x44]
test al, 1
je 0x46fa0a
push dword [ecx + 0x40]
call fcn.00472ab0
add esp, 4
cmp eax, dword [edx + 0x40]
jne 0x46ffab
cmp byte [edi + 0x7e1], 0
je 0x46ffab
mov al, byte [ebp + 0x506]
cmp al, byte [edi + 0x506]
jne 0x46ffab
mov al, byte [ebp + 0x507]
cmp al, byte [edi + 0x507]
jne 0x46ffab
test al, al
je 0x46fb2e
mov eax, dword [ebp + 0x338]
cmp eax, dword [edi + 0x338]
jne 0x46ffab
mov eax, dword [ebp + 0x334]
cmp eax, dword [edi + 0x334]
jne 0x46ffab
push dword [edi + 0x32c]
push dword [ebp + 0x32c]
call fcn.00479670
add esp, 8
test eax, eax
je 0x46ffab
mov edx, dword [ebp + 0x33c]
xor ecx, ecx
mov esi, dword [edi + 0x33c]
test edx, edx
sete cl
xor eax, eax
test esi, esi
sete al
cmp ecx, eax
jne 0x46ffa7
test edx, edx
je 0x46facd
test esi, esi
je 0x46facd
mov al, byte [edx]
cmp al, byte [esi]
jne 0x46fac0
test al, al
je 0x46fabc
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x46fac0
add edx, 2
add esi, 2
test al, al
jne 0x46faa0
xor eax, eax
jmp 0x46fac5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x46ffa7
mov edx, dword [ebp + 0x340]
xor ecx, ecx
mov esi, dword [edi + 0x340]
test edx, edx
sete cl
xor eax, eax
test esi, esi
sete al
cmp ecx, eax
jne 0x46ffa7
test edx, edx
je 0x46fb2a
test esi, esi
je 0x46fb2a
mov al, byte [edx]
cmp al, byte [esi]
jne 0x46fb17
test al, al
je 0x46fb13
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x46fb17
add edx, 2
add esi, 2
test al, al
jne 0x46faf7
xor eax, eax
jmp 0x46fb1c
sbb eax, eax
or eax, 1
mov esi, dword [esp + 0x14]
test eax, eax
jne 0x46ffab
jmp 0x46fb2e
mov esi, dword [esp + 0x14]
mov al, byte [ebp + 0x503]
cmp al, byte [edi + 0x503]
jne 0x46ffab
mov al, byte [ebp + 0x504]
cmp al, byte [edi + 0x504]
jne 0x46ffab
cmp byte [ebp + 0x506], 0
je 0x46fc18
mov eax, dword [ebp + 0x358]
cmp eax, dword [edi + 0x358]
jne 0x46ffab
mov eax, dword [ebp + 0x354]
cmp eax, dword [edi + 0x354]
jne 0x46ffab
push dword [edi + 0x34c]
push dword [ebp + 0x34c]
call fcn.00479670
add esp, 8
test eax, eax
je 0x46ffab
mov al, byte [ebp + 0x50f]
cmp al, byte [edi + 0x50f]
jne 0x46ffab
cmp dword [ebp + 0x358], 2
jne 0x46fc18
mov eax, dword [ebp + 0x540]
test byte [eax + 0x44], 1
je 0x46fbed
lea eax, [edi + 0x4d0]
push eax
lea eax, [ebp + 0x4d0]
push eax
call fcn.0046eb40
add esp, 8
test al, al
je 0x46ffab
cmp dword [edi + 0x480], 2
jmp 0x46fc12
lea eax, [edi + 0x4a4]
push eax
lea eax, [ebp + 0x4a4]
push eax
call fcn.0046eb40
add esp, 8
test al, al
je 0x46ffab
cmp dword [edi + 0x460], 2
jne 0x46ffab
mov cl, byte [esp + 0x30]
mov eax, dword [edi]
test cl, cl
jne 0x46fc2c
test eax, eax
jne 0x46ffaf
jmp 0x46fc3f
test eax, eax
je 0x46fc3f
mov ecx, dword [ebp]
mov eax, dword [eax + 0x78]
cmp eax, dword [ecx + 0x78]
jne 0x46ffab
mov ecx, dword [ebp + 0x7c4]
test ecx, ecx
jne 0x46fc52
cmp word [ebp + 0x7c8], cx
je 0x46fcbd
mov ax, word [edi + 0x7c8]
cmp ax, word [ebp + 0x7c8]
jne 0x46ffab
mov eax, dword [edi + 0x7cc]
cmp eax, dword [ebp + 0x7cc]
jne 0x46ffab
test ecx, ecx
je 0x46fcbd
mov eax, dword [edi + 0x7c4]
test eax, eax
je 0x46ffab
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x46fcb0
test dl, dl
je 0x46fcac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x46fcb0
add eax, 2
add ecx, 2
test dl, dl
jne 0x46fc90
xor eax, eax
jmp 0x46fcb5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x46ffab
mov esi, dword [ebp + 0x540]
mov ebx, dword [esi + 0x44]
test bl, bl
js 0x46fd3d
mov ecx, dword [edi + 0x3d8]
mov eax, dword [ebp + 0x3d8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x46fcf6
test dl, dl
je 0x46fcf2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x46fcf6
add eax, 2
add ecx, 2
test dl, dl
jne 0x46fcd6
xor eax, eax
jmp 0x46fcfb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x46ffa3
mov ecx, dword [edi + 0x3dc]
mov eax, dword [ebp + 0x3dc]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x46fd30
test dl, dl
je 0x46fd2c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x46fd30
add eax, 2
add ecx, 2
test dl, dl
jne 0x46fd10
xor eax, eax
jmp 0x46fd35
sbb eax, eax
or eax, 1
test eax, eax
jne 0x46ffa3
cmp byte [ebp + 0x506], 0
je 0x46fd58
test bl, 1
jne 0x46fd58
cmp byte [ebp + 0x50f], 0
je 0x46fe46
mov eax, dword [edi + 0x540]
push dword [eax]
push dword [esi]
call fcn.004796a0
add esp, 8
test eax, eax
jne 0x46fd9b
mov eax, dword [edi + 0x540]
push dword [eax + 0x40]
call fcn.00472ab0
mov ecx, dword [ebp + 0x540]
add esp, 4
cmp eax, dword [ecx + 0x40]
jne 0x46ffa3
cmp byte [edi + 0x7e1], 0
je 0x46ffa3
cmp byte [ebp + 0x503], 0
je 0x46fdc0
push dword [edi + 0x31c]
push dword [ebp + 0x31c]
call fcn.004796a0
add esp, 8
test eax, eax
je 0x46ffa3
cmp byte [ebp + 0x504], 0
je 0x46fddb
mov eax, dword [ebp + 0x36c]
cmp eax, dword [edi + 0x36c]
jne 0x46ffa3
push dword [edi + 0x304]
push dword [ebp + 0x304]
call fcn.004796a0
add esp, 8
test eax, eax
je 0x46ffa3
mov eax, dword [ebp + 0x368]
cmp eax, dword [edi + 0x368]
jne 0x46ffa3
mov eax, dword [ebp + 0x540]
test byte [eax + 0x44], 1
je 0x46fe46
lea eax, [edi + 0x4a4]
push eax
lea eax, [ebp + 0x4a4]
push eax
call fcn.0046eb40
add esp, 8
test al, al
je 0x46ffa3
cmp dword [edi + 0x460], 2
je 0x46fe46
mov byte [esp + 0x12], 1
jmp 0x46ffa3
mov bh, byte [esp + 0x13]
test bh, bh
je 0x46fee0
mov ecx, dword [edi + 0x3d8]
mov eax, dword [ebp + 0x3d8]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x46fe80
test dl, dl
je 0x46fe7c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x46fe80
add eax, 2
add ecx, 2
test dl, dl
jne 0x46fe60
xor eax, eax
jmp 0x46fe85
sbb eax, eax
or eax, 1
test eax, eax
jne 0x46febe
mov ecx, dword [edi + 0x3dc]
mov eax, dword [ebp + 0x3dc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x46feb5
test dl, dl
je 0x46feb1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x46feb5
add eax, 2
add ecx, 2
test dl, dl
jne 0x46fe95
xor eax, eax
jmp 0x46feba
sbb eax, eax
or eax, 1
test eax, eax
je 0x46feed
cmp dword [edi + 0x5e4], 0
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
mov cl, byte [esp + 0x30]
jne 0x46ffaf
mov dword [esp + 0x18], edi
jmp 0x46ffaf
cmp dword [edi + 0x5e4], 0
jne 0x46ffa3
mov al, byte [esp + 0x11]
test al, al
je 0x46ffb9
mov eax, dword [edi + 0x35c]
test eax, eax
je 0x46ffa3
mov edx, dword [edi + 0x360]
test edx, edx
je 0x46ffa3
mov ecx, dword [ebp + 0x35c]
nop dword [eax + eax]
mov bl, byte [ecx]
cmp bl, byte [eax]
jne 0x46ff40
test bl, bl
je 0x46ff3c
mov bl, byte [ecx + 1]
cmp bl, byte [eax + 1]
jne 0x46ff40
add ecx, 2
add eax, 2
test bl, bl
jne 0x46ff20
xor eax, eax
jmp 0x46ff45
sbb eax, eax
or eax, 1
test eax, eax
jne 0x46ffa3
mov eax, dword [ebp + 0x360]
nop
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x46ff70
test cl, cl
je 0x46ff6c
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x46ff70
add eax, 2
add edx, 2
test cl, cl
jne 0x46ff50
xor eax, eax
jmp 0x46ff75
sbb eax, eax
or eax, 1
test eax, eax
jne 0x46ffa3
mov al, byte [esp + 0x11]
test bh, bh
jne 0x46ff85
test al, al
je 0x46ffc4
mov dword [esp + 0x18], edi
test bh, bh
je 0x46ff96
cmp dword [edi + 0x5e4], 0
jne 0x46ffe7
test al, al
je 0x46ffa3
cmp dword [edi + 0x5e8], 0
jne 0x46ffe7
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
mov cl, byte [esp + 0x30]
test esi, esi
jne 0x46f8e8
jmp 0x46fff2
cmp dword [edi + 0x5e8], 0
jne 0x46ffa3
jmp 0x46ff7d
mov al, byte [esp + 0x30]
mov ebx, dword [esp + 0x2c]
test al, al
je 0x46fff6
cmp dword [esp + 0x1c], 0
je 0x46fff6
push str.Multiplexed_connection_found__n
push ebx
call fcn.004752b0
add esp, 8
jmp 0x46fff6
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x2c]
mov byte [eax], 1
mov edi, dword [esp + 0x18]
test edi, edi
je 0x470015
push ebx
mov dword [edi], ebx
call fcn.0046dc80
mov eax, dword [esp + 0x38]
add esp, 4
mov dword [eax], edi
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
push ebx
call fcn.0046dc80
add esp, 4
cmp byte [esp + 0x12], 0
je 0x470043
cmp byte [ebx + 0xb25], 0
je 0x470043
push str.Found_pending_candidate_for_reuse_and_CURLOPT_PIPEWAIT_is_set_n
push ebx
call fcn.004752b0
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