Function at 0x422460
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 0x4224ba
cmp byte [ebp + 0x515], 0
je 0x422496
cmp byte [ebp + 0x508], 0
jne 0x4224ba
mov ebx, dword [esp + 0x2c]
push dword [ebx + 0x78]
call fcn.00419100
add esp, 4
test al, al
je 0x4224be
cmp dword [ebx + 0x844], 3
mov eax, 2
cmovge esi, eax
jmp 0x4224be
mov ebx, dword [esp + 0x2c]
test esi, esi
setne al
test byte [ebx + 0xd70], 0x28
mov byte [esp + 0x30], al
je 0x4224e0
mov eax, dword [ebp + 0x548]
test byte [eax + 0x40], 3
je 0x4224e0
mov al, 1
jmp 0x4224e2
xor al, al
cmp byte [ebp + 0x511], 0
mov byte [esp + 0x13], al
je 0x42250b
test byte [ebx + 0xd80], 0x28
je 0x42250b
mov eax, dword [ebp + 0x548]
test byte [eax + 0x40], 3
je 0x42250b
mov byte [esp + 0x11], 1
jmp 0x422511
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.00420600
mov edi, eax
add esp, 0xc
mov dword [esp + 0x24], edi
test edi, edi
je 0x422d35
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.004274b0
add esp, 0x14
test esi, esi
je 0x4225f9
mov eax, dword [edi]
test eax, eax
jne 0x4225b6
cmp byte [ebx + 0xb25], al
je 0x4225a0
push str.Server_doesnt_support_multiplex_yet__wait_n
push ebx
call fcn.004274b0
mov eax, dword [esp + 0x44]
push ebx
mov byte [eax], 1
call fcn.00420b40
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.004274b0
add esp, 8
xor al, al
mov byte [esp + 0x30], al
mov eax, dword [edi]
cmp eax, 2
jne 0x4225de
push dword [ebx + 0x78]
call fcn.00419100
add esp, 4
test al, al
jne 0x4225de
push str.Could_multiplex__but_not_asked_to__n
push ebx
call fcn.004274b0
add esp, 8
xor al, al
mov byte [esp + 0x30], al
cmp dword [edi], 0xffffffff
jne 0x4225f9
push str.Can_not_multiplex__even_if_we_wanted_to__n
push ebx
call fcn.004274b0
add esp, 8
xor cl, cl
mov byte [esp + 0x30], cl
jmp 0x4225fd
mov cl, byte [esp + 0x30]
mov esi, dword [edi + 8]
test esi, esi
je 0x422d35
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 0x422ccf
cmp byte [edi + 0x508], al
jne 0x422ccf
mov edx, dword [esp + 0x24]
cmp dword [edx], 2
jne 0x422642
mov eax, dword [edi + 0x5dc]
mov dword [esp + 0x1c], eax
test cl, cl
jne 0x422696
test eax, eax
jne 0x422ccf
cmp byte [edi + 0x2c4], al
jne 0x42266f
push dword [edi + 0x2b0]
push str.Connection__ld_is_still_name_resolving__cant_reuse_n
push ebx
call fcn.004274b0
add esp, 0xc
jmp 0x422ccb
cmp dword [edi + 0x420], 0xffffffff
jne 0x422696
push dword [edi + 0x2b0]
mov byte [esp + 0x16], 1
push str.Connection__ld_isnt_open_enough__cant_reuse_n
push ebx
call fcn.004274b0
add esp, 0xc
jmp 0x422ccb
mov ecx, dword [ebp + 0x7e8]
mov eax, dword [edi + 0x7e8]
test ecx, ecx
je 0x4226eb
test eax, eax
je 0x422ccb
nop
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x4226d0
test dl, dl
je 0x4226cc
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x4226d0
add ecx, 2
add eax, 2
test dl, dl
jne 0x4226b0
xor eax, eax
jmp 0x4226d5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x422ccb
mov al, byte [ebp + 0x7ec]
cmp al, byte [edi + 0x7ec]
jmp 0x4226ed
test eax, eax
jne 0x422ccb
mov ecx, dword [edi + 0x548]
mov edx, dword [ebp + 0x548]
mov eax, dword [ecx + 0x44]
xor eax, dword [edx + 0x44]
test al, 1
je 0x42272a
push dword [ecx + 0x40]
call fcn.00425580
add esp, 4
cmp eax, dword [edx + 0x40]
jne 0x422ccb
cmp byte [edi + 0x7ed], 0
je 0x422ccb
mov al, byte [ebp + 0x50e]
cmp al, byte [edi + 0x50e]
jne 0x422ccb
mov al, byte [ebp + 0x50f]
cmp al, byte [edi + 0x50f]
jne 0x422ccb
test al, al
je 0x42284e
mov eax, dword [ebp + 0x338]
cmp eax, dword [edi + 0x338]
jne 0x422ccb
mov eax, dword [ebp + 0x334]
cmp eax, dword [edi + 0x334]
jne 0x422ccb
push dword [edi + 0x32c]
push dword [ebp + 0x32c]
call fcn.0042a380
add esp, 8
test eax, eax
je 0x422ccb
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 0x422cc7
test edx, edx
je 0x4227ed
test esi, esi
je 0x4227ed
mov al, byte [edx]
cmp al, byte [esi]
jne 0x4227e0
test al, al
je 0x4227dc
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x4227e0
add edx, 2
add esi, 2
test al, al
jne 0x4227c0
xor eax, eax
jmp 0x4227e5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x422cc7
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 0x422cc7
test edx, edx
je 0x42284a
test esi, esi
je 0x42284a
mov al, byte [edx]
cmp al, byte [esi]
jne 0x422837
test al, al
je 0x422833
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x422837
add edx, 2
add esi, 2
test al, al
jne 0x422817
xor eax, eax
jmp 0x42283c
sbb eax, eax
or eax, 1
mov esi, dword [esp + 0x14]
test eax, eax
jne 0x422ccb
jmp 0x42284e
mov esi, dword [esp + 0x14]
mov al, byte [ebp + 0x50b]
cmp al, byte [edi + 0x50b]
jne 0x422ccb
mov al, byte [ebp + 0x50c]
cmp al, byte [edi + 0x50c]
jne 0x422ccb
cmp byte [ebp + 0x50e], 0
je 0x422938
mov eax, dword [ebp + 0x358]
cmp eax, dword [edi + 0x358]
jne 0x422ccb
mov eax, dword [ebp + 0x354]
cmp eax, dword [edi + 0x354]
jne 0x422ccb
push dword [edi + 0x34c]
push dword [ebp + 0x34c]
call fcn.0042a380
add esp, 8
test eax, eax
je 0x422ccb
mov al, byte [ebp + 0x517]
cmp al, byte [edi + 0x517]
jne 0x422ccb
cmp dword [ebp + 0x358], 2
jne 0x422938
mov eax, dword [ebp + 0x548]
test byte [eax + 0x44], 1
je 0x42290d
lea eax, [edi + 0x4d8]
push eax
lea eax, [ebp + 0x4d8]
push eax
call fcn.004219c0
add esp, 8
test al, al
je 0x422ccb
cmp dword [edi + 0x488], 2
jmp 0x422932
lea eax, [edi + 0x4ac]
push eax
lea eax, [ebp + 0x4ac]
push eax
call fcn.004219c0
add esp, 8
test al, al
je 0x422ccb
cmp dword [edi + 0x468], 2
jne 0x422ccb
mov cl, byte [esp + 0x30]
mov eax, dword [edi]
test cl, cl
jne 0x42294c
test eax, eax
jne 0x422ccf
jmp 0x42295f
test eax, eax
je 0x42295f
mov ecx, dword [ebp]
mov eax, dword [eax + 0x78]
cmp eax, dword [ecx + 0x78]
jne 0x422ccb
mov ecx, dword [ebp + 0x7cc]
test ecx, ecx
jne 0x422972
cmp word [ebp + 0x7d0], cx
je 0x4229dd
mov ax, word [edi + 0x7d0]
cmp ax, word [ebp + 0x7d0]
jne 0x422ccb
mov eax, dword [edi + 0x7d4]
cmp eax, dword [ebp + 0x7d4]
jne 0x422ccb
test ecx, ecx
je 0x4229dd
mov eax, dword [edi + 0x7cc]
test eax, eax
je 0x422ccb
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4229d0
test dl, dl
je 0x4229cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4229d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4229b0
xor eax, eax
jmp 0x4229d5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x422ccb
mov esi, dword [ebp + 0x548]
mov ebx, dword [esi + 0x44]
test bl, bl
js 0x422a5d
mov ecx, dword [edi + 0x3d8]
mov eax, dword [ebp + 0x3d8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x422a16
test dl, dl
je 0x422a12
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x422a16
add eax, 2
add ecx, 2
test dl, dl
jne 0x4229f6
xor eax, eax
jmp 0x422a1b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x422cc3
mov ecx, dword [edi + 0x3dc]
mov eax, dword [ebp + 0x3dc]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x422a50
test dl, dl
je 0x422a4c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x422a50
add eax, 2
add ecx, 2
test dl, dl
jne 0x422a30
xor eax, eax
jmp 0x422a55
sbb eax, eax
or eax, 1
test eax, eax
jne 0x422cc3
cmp byte [ebp + 0x50e], 0
je 0x422a78
test bl, 1
jne 0x422a78
cmp byte [ebp + 0x517], 0
je 0x422b66
mov eax, dword [edi + 0x548]
push dword [eax]
push dword [esi]
call fcn.0042a3b0
add esp, 8
test eax, eax
jne 0x422abb
mov eax, dword [edi + 0x548]
push dword [eax + 0x40]
call fcn.00425580
mov ecx, dword [ebp + 0x548]
add esp, 4
cmp eax, dword [ecx + 0x40]
jne 0x422cc3
cmp byte [edi + 0x7ed], 0
je 0x422cc3
cmp byte [ebp + 0x50b], 0
je 0x422ae0
push dword [edi + 0x31c]
push dword [ebp + 0x31c]
call fcn.0042a3b0
add esp, 8
test eax, eax
je 0x422cc3
cmp byte [ebp + 0x50c], 0
je 0x422afb
mov eax, dword [ebp + 0x36c]
cmp eax, dword [edi + 0x36c]
jne 0x422cc3
push dword [edi + 0x304]
push dword [ebp + 0x304]
call fcn.0042a3b0
add esp, 8
test eax, eax
je 0x422cc3
mov eax, dword [ebp + 0x368]
cmp eax, dword [edi + 0x368]
jne 0x422cc3
mov eax, dword [ebp + 0x548]
test byte [eax + 0x44], 1
je 0x422b66
lea eax, [edi + 0x4ac]
push eax
lea eax, [ebp + 0x4ac]
push eax
call fcn.004219c0
add esp, 8
test al, al
je 0x422cc3
cmp dword [edi + 0x468], 2
je 0x422b66
mov byte [esp + 0x12], 1
jmp 0x422cc3
mov bh, byte [esp + 0x13]
test bh, bh
je 0x422c00
mov ecx, dword [edi + 0x3d8]
mov eax, dword [ebp + 0x3d8]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x422ba0
test dl, dl
je 0x422b9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x422ba0
add eax, 2
add ecx, 2
test dl, dl
jne 0x422b80
xor eax, eax
jmp 0x422ba5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x422bde
mov ecx, dword [edi + 0x3dc]
mov eax, dword [ebp + 0x3dc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x422bd5
test dl, dl
je 0x422bd1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x422bd5
add eax, 2
add ecx, 2
test dl, dl
jne 0x422bb5
xor eax, eax
jmp 0x422bda
sbb eax, eax
or eax, 1
test eax, eax
je 0x422c0d
cmp dword [edi + 0x5ec], 0
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
mov cl, byte [esp + 0x30]
jne 0x422ccf
mov dword [esp + 0x18], edi
jmp 0x422ccf
cmp dword [edi + 0x5ec], 0
jne 0x422cc3
mov al, byte [esp + 0x11]
test al, al
je 0x422cd9
mov eax, dword [edi + 0x35c]
test eax, eax
je 0x422cc3
mov edx, dword [edi + 0x360]
test edx, edx
je 0x422cc3
mov ecx, dword [ebp + 0x35c]
nop dword [eax + eax]
mov bl, byte [ecx]
cmp bl, byte [eax]
jne 0x422c60
test bl, bl
je 0x422c5c
mov bl, byte [ecx + 1]
cmp bl, byte [eax + 1]
jne 0x422c60
add ecx, 2
add eax, 2
test bl, bl
jne 0x422c40
xor eax, eax
jmp 0x422c65
sbb eax, eax
or eax, 1
test eax, eax
jne 0x422cc3
mov eax, dword [ebp + 0x360]
nop
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x422c90
test cl, cl
je 0x422c8c
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x422c90
add eax, 2
add edx, 2
test cl, cl
jne 0x422c70
xor eax, eax
jmp 0x422c95
sbb eax, eax
or eax, 1
test eax, eax
jne 0x422cc3
mov al, byte [esp + 0x11]
test bh, bh
jne 0x422ca5
test al, al
je 0x422ce4
mov dword [esp + 0x18], edi
test bh, bh
je 0x422cb6
cmp dword [edi + 0x5ec], 0
jne 0x422d07
test al, al
je 0x422cc3
cmp dword [edi + 0x5f0], 0
jne 0x422d07
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
mov cl, byte [esp + 0x30]
test esi, esi
jne 0x422608
jmp 0x422d12
cmp dword [edi + 0x5f0], 0
jne 0x422cc3
jmp 0x422c9d
mov al, byte [esp + 0x30]
mov ebx, dword [esp + 0x2c]
test al, al
je 0x422d16
cmp dword [esp + 0x1c], 0
je 0x422d16
push str.Multiplexed_connection_found__n
push ebx
call fcn.004274b0
add esp, 8
jmp 0x422d16
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x2c]
mov byte [eax], 1
mov edi, dword [esp + 0x18]
test edi, edi
je 0x422d35
push ebx
mov dword [edi], ebx
call fcn.00420b40
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.00420b40
add esp, 4
cmp byte [esp + 0x12], 0
je 0x422d63
cmp byte [ebx + 0xb25], 0
je 0x422d63
push str.Found_pending_candidate_for_reuse_and_CURLOPT_PIPEWAIT_is_set_n
push ebx
call fcn.004274b0
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