Function at 0x471950
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 + 0x548]
xor esi, esi
mov dword [esp + 0x18], edi
test byte [eax + 0x40], 3
je 0x4719aa
cmp byte [ebp + 0x515], 0
je 0x471986
cmp byte [ebp + 0x508], 0
jne 0x4719aa
mov ebx, dword [esp + 0x2c]
push dword [ebx + 0x78]
call fcn.00468640
add esp, 4
test al, al
je 0x4719ae
cmp dword [ebx + 0x844], 3
mov eax, 2
cmovge esi, eax
jmp 0x4719ae
mov ebx, dword [esp + 0x2c]
test esi, esi
setne al
test byte [ebx + 0xd70], 0x28
mov byte [esp + 0x30], al
je 0x4719d0
mov eax, dword [ebp + 0x548]
test byte [eax + 0x40], 3
je 0x4719d0
mov al, 1
jmp 0x4719d2
xor al, al
cmp byte [ebp + 0x511], 0
mov byte [esp + 0x13], al
je 0x4719fb
test byte [ebx + 0xd80], 0x28
je 0x4719fb
mov eax, dword [ebp + 0x548]
test byte [eax + 0x40], 3
je 0x4719fb
mov byte [esp + 0x11], 1
jmp 0x471a01
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.0046faf0
mov edi, eax
add esp, 0xc
mov dword [esp + 0x24], edi
test edi, edi
je 0x472225
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.004769a0
add esp, 0x14
test esi, esi
je 0x471ae9
mov eax, dword [edi]
test eax, eax
jne 0x471aa6
cmp byte [ebx + 0xb25], al
je 0x471a90
push str.Server_doesnt_support_multiplex_yet__wait_n
push ebx
call fcn.004769a0
mov eax, dword [esp + 0x44]
push ebx
mov byte [eax], 1
call fcn.00470030
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.004769a0
add esp, 8
xor al, al
mov byte [esp + 0x30], al
mov eax, dword [edi]
cmp eax, 2
jne 0x471ace
push dword [ebx + 0x78]
call fcn.00468640
add esp, 4
test al, al
jne 0x471ace
push str.Could_multiplex__but_not_asked_to__n
push ebx
call fcn.004769a0
add esp, 8
xor al, al
mov byte [esp + 0x30], al
cmp dword [edi], 0xffffffff
jne 0x471ae9
push str.Can_not_multiplex__even_if_we_wanted_to__n
push ebx
call fcn.004769a0
add esp, 8
xor cl, cl
mov byte [esp + 0x30], cl
jmp 0x471aed
mov cl, byte [esp + 0x30]
mov esi, dword [edi + 8]
test esi, esi
je 0x472225
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 + 0x526], al
jne 0x4721bf
cmp byte [edi + 0x508], al
jne 0x4721bf
mov edx, dword [esp + 0x24]
cmp dword [edx], 2
jne 0x471b32
mov eax, dword [edi + 0x5dc]
mov dword [esp + 0x1c], eax
test cl, cl
jne 0x471b86
test eax, eax
jne 0x4721bf
cmp byte [edi + 0x2c4], al
jne 0x471b5f
push dword [edi + 0x2b0]
push str.Connection__ld_is_still_name_resolving__cant_reuse_n
push ebx
call fcn.004769a0
add esp, 0xc
jmp 0x4721bb
cmp dword [edi + 0x420], 0xffffffff
jne 0x471b86
push dword [edi + 0x2b0]
mov byte [esp + 0x16], 1
push str.Connection__ld_isnt_open_enough__cant_reuse_n
push ebx
call fcn.004769a0
add esp, 0xc
jmp 0x4721bb
mov ecx, dword [ebp + 0x7e8]
mov eax, dword [edi + 0x7e8]
test ecx, ecx
je 0x471bdb
test eax, eax
je 0x4721bb
nop
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x471bc0
test dl, dl
je 0x471bbc
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x471bc0
add ecx, 2
add eax, 2
test dl, dl
jne 0x471ba0
xor eax, eax
jmp 0x471bc5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4721bb
mov al, byte [ebp + 0x7ec]
cmp al, byte [edi + 0x7ec]
jmp 0x471bdd
test eax, eax
jne 0x4721bb
mov ecx, dword [edi + 0x548]
mov edx, dword [ebp + 0x548]
mov eax, dword [ecx + 0x44]
xor eax, dword [edx + 0x44]
test al, 1
je 0x471c1a
push dword [ecx + 0x40]
call fcn.00474a70
add esp, 4
cmp eax, dword [edx + 0x40]
jne 0x4721bb
cmp byte [edi + 0x7ed], 0
je 0x4721bb
mov al, byte [ebp + 0x50e]
cmp al, byte [edi + 0x50e]
jne 0x4721bb
mov al, byte [ebp + 0x50f]
cmp al, byte [edi + 0x50f]
jne 0x4721bb
test al, al
je 0x471d3e
mov eax, dword [ebp + 0x338]
cmp eax, dword [edi + 0x338]
jne 0x4721bb
mov eax, dword [ebp + 0x334]
cmp eax, dword [edi + 0x334]
jne 0x4721bb
push dword [edi + 0x32c]
push dword [ebp + 0x32c]
call fcn.0047ad20
add esp, 8
test eax, eax
je 0x4721bb
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 0x4721b7
test edx, edx
je 0x471cdd
test esi, esi
je 0x471cdd
mov al, byte [edx]
cmp al, byte [esi]
jne 0x471cd0
test al, al
je 0x471ccc
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x471cd0
add edx, 2
add esi, 2
test al, al
jne 0x471cb0
xor eax, eax
jmp 0x471cd5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4721b7
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 0x4721b7
test edx, edx
je 0x471d3a
test esi, esi
je 0x471d3a
mov al, byte [edx]
cmp al, byte [esi]
jne 0x471d27
test al, al
je 0x471d23
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x471d27
add edx, 2
add esi, 2
test al, al
jne 0x471d07
xor eax, eax
jmp 0x471d2c
sbb eax, eax
or eax, 1
mov esi, dword [esp + 0x14]
test eax, eax
jne 0x4721bb
jmp 0x471d3e
mov esi, dword [esp + 0x14]
mov al, byte [ebp + 0x50b]
cmp al, byte [edi + 0x50b]
jne 0x4721bb
mov al, byte [ebp + 0x50c]
cmp al, byte [edi + 0x50c]
jne 0x4721bb
cmp byte [ebp + 0x50e], 0
je 0x471e28
mov eax, dword [ebp + 0x358]
cmp eax, dword [edi + 0x358]
jne 0x4721bb
mov eax, dword [ebp + 0x354]
cmp eax, dword [edi + 0x354]
jne 0x4721bb
push dword [edi + 0x34c]
push dword [ebp + 0x34c]
call fcn.0047ad20
add esp, 8
test eax, eax
je 0x4721bb
mov al, byte [ebp + 0x517]
cmp al, byte [edi + 0x517]
jne 0x4721bb
cmp dword [ebp + 0x358], 2
jne 0x471e28
mov eax, dword [ebp + 0x548]
test byte [eax + 0x44], 1
je 0x471dfd
lea eax, [edi + 0x4d8]
push eax
lea eax, [ebp + 0x4d8]
push eax
call fcn.00470eb0
add esp, 8
test al, al
je 0x4721bb
cmp dword [edi + 0x488], 2
jmp 0x471e22
lea eax, [edi + 0x4ac]
push eax
lea eax, [ebp + 0x4ac]
push eax
call fcn.00470eb0
add esp, 8
test al, al
je 0x4721bb
cmp dword [edi + 0x468], 2
jne 0x4721bb
mov cl, byte [esp + 0x30]
mov eax, dword [edi]
test cl, cl
jne 0x471e3c
test eax, eax
jne 0x4721bf
jmp 0x471e4f
test eax, eax
je 0x471e4f
mov ecx, dword [ebp]
mov eax, dword [eax + 0x78]
cmp eax, dword [ecx + 0x78]
jne 0x4721bb
mov ecx, dword [ebp + 0x7cc]
test ecx, ecx
jne 0x471e62
cmp word [ebp + 0x7d0], cx
je 0x471ecd
mov ax, word [edi + 0x7d0]
cmp ax, word [ebp + 0x7d0]
jne 0x4721bb
mov eax, dword [edi + 0x7d4]
cmp eax, dword [ebp + 0x7d4]
jne 0x4721bb
test ecx, ecx
je 0x471ecd
mov eax, dword [edi + 0x7cc]
test eax, eax
je 0x4721bb
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x471ec0
test dl, dl
je 0x471ebc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x471ec0
add eax, 2
add ecx, 2
test dl, dl
jne 0x471ea0
xor eax, eax
jmp 0x471ec5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4721bb
mov esi, dword [ebp + 0x548]
mov ebx, dword [esi + 0x44]
test bl, bl
js 0x471f4d
mov ecx, dword [edi + 0x3d8]
mov eax, dword [ebp + 0x3d8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x471f06
test dl, dl
je 0x471f02
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x471f06
add eax, 2
add ecx, 2
test dl, dl
jne 0x471ee6
xor eax, eax
jmp 0x471f0b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4721b3
mov ecx, dword [edi + 0x3dc]
mov eax, dword [ebp + 0x3dc]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x471f40
test dl, dl
je 0x471f3c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x471f40
add eax, 2
add ecx, 2
test dl, dl
jne 0x471f20
xor eax, eax
jmp 0x471f45
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4721b3
cmp byte [ebp + 0x50e], 0
je 0x471f68
test bl, 1
jne 0x471f68
cmp byte [ebp + 0x517], 0
je 0x472056
mov eax, dword [edi + 0x548]
push dword [eax]
push dword [esi]
call fcn.0047ad50
add esp, 8
test eax, eax
jne 0x471fab
mov eax, dword [edi + 0x548]
push dword [eax + 0x40]
call fcn.00474a70
mov ecx, dword [ebp + 0x548]
add esp, 4
cmp eax, dword [ecx + 0x40]
jne 0x4721b3
cmp byte [edi + 0x7ed], 0
je 0x4721b3
cmp byte [ebp + 0x50b], 0
je 0x471fd0
push dword [edi + 0x31c]
push dword [ebp + 0x31c]
call fcn.0047ad50
add esp, 8
test eax, eax
je 0x4721b3
cmp byte [ebp + 0x50c], 0
je 0x471feb
mov eax, dword [ebp + 0x36c]
cmp eax, dword [edi + 0x36c]
jne 0x4721b3
push dword [edi + 0x304]
push dword [ebp + 0x304]
call fcn.0047ad50
add esp, 8
test eax, eax
je 0x4721b3
mov eax, dword [ebp + 0x368]
cmp eax, dword [edi + 0x368]
jne 0x4721b3
mov eax, dword [ebp + 0x548]
test byte [eax + 0x44], 1
je 0x472056
lea eax, [edi + 0x4ac]
push eax
lea eax, [ebp + 0x4ac]
push eax
call fcn.00470eb0
add esp, 8
test al, al
je 0x4721b3
cmp dword [edi + 0x468], 2
je 0x472056
mov byte [esp + 0x12], 1
jmp 0x4721b3
mov bh, byte [esp + 0x13]
test bh, bh
je 0x4720f0
mov ecx, dword [edi + 0x3d8]
mov eax, dword [ebp + 0x3d8]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x472090
test dl, dl
je 0x47208c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x472090
add eax, 2
add ecx, 2
test dl, dl
jne 0x472070
xor eax, eax
jmp 0x472095
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4720ce
mov ecx, dword [edi + 0x3dc]
mov eax, dword [ebp + 0x3dc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4720c5
test dl, dl
je 0x4720c1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4720c5
add eax, 2
add ecx, 2
test dl, dl
jne 0x4720a5
xor eax, eax
jmp 0x4720ca
sbb eax, eax
or eax, 1
test eax, eax
je 0x4720fd
cmp dword [edi + 0x5ec], 0
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
mov cl, byte [esp + 0x30]
jne 0x4721bf
mov dword [esp + 0x18], edi
jmp 0x4721bf
cmp dword [edi + 0x5ec], 0
jne 0x4721b3
mov al, byte [esp + 0x11]
test al, al
je 0x4721c9
mov eax, dword [edi + 0x35c]
test eax, eax
je 0x4721b3
mov edx, dword [edi + 0x360]
test edx, edx
je 0x4721b3
mov ecx, dword [ebp + 0x35c]
nop dword [eax + eax]
mov bl, byte [ecx]
cmp bl, byte [eax]
jne 0x472150
test bl, bl
je 0x47214c
mov bl, byte [ecx + 1]
cmp bl, byte [eax + 1]
jne 0x472150
add ecx, 2
add eax, 2
test bl, bl
jne 0x472130
xor eax, eax
jmp 0x472155
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4721b3
mov eax, dword [ebp + 0x360]
nop
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x472180
test cl, cl
je 0x47217c
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x472180
add eax, 2
add edx, 2
test cl, cl
jne 0x472160
xor eax, eax
jmp 0x472185
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4721b3
mov al, byte [esp + 0x11]
test bh, bh
jne 0x472195
test al, al
je 0x4721d4
mov dword [esp + 0x18], edi
test bh, bh
je 0x4721a6
cmp dword [edi + 0x5ec], 0
jne 0x4721f7
test al, al
je 0x4721b3
cmp dword [edi + 0x5f0], 0
jne 0x4721f7
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
mov cl, byte [esp + 0x30]
test esi, esi
jne 0x471af8
jmp 0x472202
cmp dword [edi + 0x5f0], 0
jne 0x4721b3
jmp 0x47218d
mov al, byte [esp + 0x30]
mov ebx, dword [esp + 0x2c]
test al, al
je 0x472206
cmp dword [esp + 0x1c], 0
je 0x472206
push str.Multiplexed_connection_found__n
push ebx
call fcn.004769a0
add esp, 8
jmp 0x472206
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x2c]
mov byte [eax], 1
mov edi, dword [esp + 0x18]
test edi, edi
je 0x472225
push ebx
mov dword [edi], ebx
call fcn.00470030
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.00470030
add esp, 4
cmp byte [esp + 0x12], 0
je 0x472253
cmp byte [ebx + 0xb25], 0
je 0x472253
push str.Found_pending_candidate_for_reuse_and_CURLOPT_PIPEWAIT_is_set_n
push ebx
call fcn.004769a0
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