Function at 0x100ae150
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 0x100ae1aa
cmp byte [ebp + 0x515], 0
je 0x100ae186
cmp byte [ebp + 0x508], 0
jne 0x100ae1aa
mov ebx, dword [esp + 0x2c]
push dword [ebx + 0x78]
call fcn.100a4e50
add esp, 4
test al, al
je 0x100ae1ae
cmp dword [ebx + 0x844], 3
mov eax, 2
cmovge esi, eax
jmp 0x100ae1ae
mov ebx, dword [esp + 0x2c]
test esi, esi
setne al
test byte [ebx + 0xd70], 0x28
mov byte [esp + 0x30], al
je 0x100ae1d0
mov eax, dword [ebp + 0x548]
test byte [eax + 0x40], 3
je 0x100ae1d0
mov al, 1
jmp 0x100ae1d2
xor al, al
cmp byte [ebp + 0x511], 0
mov byte [esp + 0x13], al
je 0x100ae1fb
test byte [ebx + 0xd80], 0x28
je 0x100ae1fb
mov eax, dword [ebp + 0x548]
test byte [eax + 0x40], 3
je 0x100ae1fb
mov byte [esp + 0x11], 1
jmp 0x100ae201
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.100ac2f0
mov edi, eax
add esp, 0xc
mov dword [esp + 0x24], edi
test edi, edi
je 0x100aea25
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.100b3140
add esp, 0x14
test esi, esi
je 0x100ae2e9
mov eax, dword [edi]
test eax, eax
jne 0x100ae2a6
cmp byte [ebx + 0xb25], al
je 0x100ae290
push str.Server_doesnt_support_multiplex_yet__wait_n
push ebx
call fcn.100b3140
mov eax, dword [esp + 0x44]
push ebx
mov byte [eax], 1
call fcn.100ac830
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.100b3140
add esp, 8
xor al, al
mov byte [esp + 0x30], al
mov eax, dword [edi]
cmp eax, 2
jne 0x100ae2ce
push dword [ebx + 0x78]
call fcn.100a4e50
add esp, 4
test al, al
jne 0x100ae2ce
push str.Could_multiplex__but_not_asked_to__n
push ebx
call fcn.100b3140
add esp, 8
xor al, al
mov byte [esp + 0x30], al
cmp dword [edi], 0xffffffff
jne 0x100ae2e9
push str.Can_not_multiplex__even_if_we_wanted_to__n
push ebx
call fcn.100b3140
add esp, 8
xor cl, cl
mov byte [esp + 0x30], cl
jmp 0x100ae2ed
mov cl, byte [esp + 0x30]
mov esi, dword [edi + 8]
test esi, esi
je 0x100aea25
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 0x100ae9bf
cmp byte [edi + 0x508], al
jne 0x100ae9bf
mov edx, dword [esp + 0x24]
cmp dword [edx], 2
jne 0x100ae332
mov eax, dword [edi + 0x5dc]
mov dword [esp + 0x1c], eax
test cl, cl
jne 0x100ae386
test eax, eax
jne 0x100ae9bf
cmp byte [edi + 0x2c4], al
jne 0x100ae35f
push dword [edi + 0x2b0]
push str.Connection__ld_is_still_name_resolving__cant_reuse_n
push ebx
call fcn.100b3140
add esp, 0xc
jmp 0x100ae9bb
cmp dword [edi + 0x420], 0xffffffff
jne 0x100ae386
push dword [edi + 0x2b0]
mov byte [esp + 0x16], 1
push str.Connection__ld_isnt_open_enough__cant_reuse_n
push ebx
call fcn.100b3140
add esp, 0xc
jmp 0x100ae9bb
mov ecx, dword [ebp + 0x7e8]
mov eax, dword [edi + 0x7e8]
test ecx, ecx
je 0x100ae3db
test eax, eax
je 0x100ae9bb
nop
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x100ae3c0
test dl, dl
je 0x100ae3bc
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x100ae3c0
add ecx, 2
add eax, 2
test dl, dl
jne 0x100ae3a0
xor eax, eax
jmp 0x100ae3c5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100ae9bb
mov al, byte [ebp + 0x7ec]
cmp al, byte [edi + 0x7ec]
jmp 0x100ae3dd
test eax, eax
jne 0x100ae9bb
mov ecx, dword [edi + 0x548]
mov edx, dword [ebp + 0x548]
mov eax, dword [ecx + 0x44]
xor eax, dword [edx + 0x44]
test al, 1
je 0x100ae41a
push dword [ecx + 0x40]
call fcn.100b1270
add esp, 4
cmp eax, dword [edx + 0x40]
jne 0x100ae9bb
cmp byte [edi + 0x7ed], 0
je 0x100ae9bb
mov al, byte [ebp + 0x50e]
cmp al, byte [edi + 0x50e]
jne 0x100ae9bb
mov al, byte [ebp + 0x50f]
cmp al, byte [edi + 0x50f]
jne 0x100ae9bb
test al, al
je 0x100ae53e
mov eax, dword [ebp + 0x338]
cmp eax, dword [edi + 0x338]
jne 0x100ae9bb
mov eax, dword [ebp + 0x334]
cmp eax, dword [edi + 0x334]
jne 0x100ae9bb
push dword [edi + 0x32c]
push dword [ebp + 0x32c]
call fcn.100b5fb0
add esp, 8
test eax, eax
je 0x100ae9bb
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 0x100ae9b7
test edx, edx
je 0x100ae4dd
test esi, esi
je 0x100ae4dd
mov al, byte [edx]
cmp al, byte [esi]
jne 0x100ae4d0
test al, al
je 0x100ae4cc
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x100ae4d0
add edx, 2
add esi, 2
test al, al
jne 0x100ae4b0
xor eax, eax
jmp 0x100ae4d5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100ae9b7
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 0x100ae9b7
test edx, edx
je 0x100ae53a
test esi, esi
je 0x100ae53a
mov al, byte [edx]
cmp al, byte [esi]
jne 0x100ae527
test al, al
je 0x100ae523
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x100ae527
add edx, 2
add esi, 2
test al, al
jne 0x100ae507
xor eax, eax
jmp 0x100ae52c
sbb eax, eax
or eax, 1
mov esi, dword [esp + 0x14]
test eax, eax
jne 0x100ae9bb
jmp 0x100ae53e
mov esi, dword [esp + 0x14]
mov al, byte [ebp + 0x50b]
cmp al, byte [edi + 0x50b]
jne 0x100ae9bb
mov al, byte [ebp + 0x50c]
cmp al, byte [edi + 0x50c]
jne 0x100ae9bb
cmp byte [ebp + 0x50e], 0
je 0x100ae628
mov eax, dword [ebp + 0x358]
cmp eax, dword [edi + 0x358]
jne 0x100ae9bb
mov eax, dword [ebp + 0x354]
cmp eax, dword [edi + 0x354]
jne 0x100ae9bb
push dword [edi + 0x34c]
push dword [ebp + 0x34c]
call fcn.100b5fb0
add esp, 8
test eax, eax
je 0x100ae9bb
mov al, byte [ebp + 0x517]
cmp al, byte [edi + 0x517]
jne 0x100ae9bb
cmp dword [ebp + 0x358], 2
jne 0x100ae628
mov eax, dword [ebp + 0x548]
test byte [eax + 0x44], 1
je 0x100ae5fd
lea eax, [edi + 0x4d8]
push eax
lea eax, [ebp + 0x4d8]
push eax
call fcn.100ad6b0
add esp, 8
test al, al
je 0x100ae9bb
cmp dword [edi + 0x488], 2
jmp 0x100ae622
lea eax, [edi + 0x4ac]
push eax
lea eax, [ebp + 0x4ac]
push eax
call fcn.100ad6b0
add esp, 8
test al, al
je 0x100ae9bb
cmp dword [edi + 0x468], 2
jne 0x100ae9bb
mov cl, byte [esp + 0x30]
mov eax, dword [edi]
test cl, cl
jne 0x100ae63c
test eax, eax
jne 0x100ae9bf
jmp 0x100ae64f
test eax, eax
je 0x100ae64f
mov ecx, dword [ebp]
mov eax, dword [eax + 0x78]
cmp eax, dword [ecx + 0x78]
jne 0x100ae9bb
mov ecx, dword [ebp + 0x7cc]
test ecx, ecx
jne 0x100ae662
cmp word [ebp + 0x7d0], cx
je 0x100ae6cd
mov ax, word [edi + 0x7d0]
cmp ax, word [ebp + 0x7d0]
jne 0x100ae9bb
mov eax, dword [edi + 0x7d4]
cmp eax, dword [ebp + 0x7d4]
jne 0x100ae9bb
test ecx, ecx
je 0x100ae6cd
mov eax, dword [edi + 0x7cc]
test eax, eax
je 0x100ae9bb
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100ae6c0
test dl, dl
je 0x100ae6bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100ae6c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100ae6a0
xor eax, eax
jmp 0x100ae6c5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100ae9bb
mov esi, dword [ebp + 0x548]
mov ebx, dword [esi + 0x44]
test bl, bl
js 0x100ae74d
mov ecx, dword [edi + 0x3d8]
mov eax, dword [ebp + 0x3d8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100ae706
test dl, dl
je 0x100ae702
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100ae706
add eax, 2
add ecx, 2
test dl, dl
jne 0x100ae6e6
xor eax, eax
jmp 0x100ae70b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100ae9b3
mov ecx, dword [edi + 0x3dc]
mov eax, dword [ebp + 0x3dc]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100ae740
test dl, dl
je 0x100ae73c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100ae740
add eax, 2
add ecx, 2
test dl, dl
jne 0x100ae720
xor eax, eax
jmp 0x100ae745
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100ae9b3
cmp byte [ebp + 0x50e], 0
je 0x100ae768
test bl, 1
jne 0x100ae768
cmp byte [ebp + 0x517], 0
je 0x100ae856
mov eax, dword [edi + 0x548]
push dword [eax]
push dword [esi]
call fcn.100b5fe0
add esp, 8
test eax, eax
jne 0x100ae7ab
mov eax, dword [edi + 0x548]
push dword [eax + 0x40]
call fcn.100b1270
mov ecx, dword [ebp + 0x548]
add esp, 4
cmp eax, dword [ecx + 0x40]
jne 0x100ae9b3
cmp byte [edi + 0x7ed], 0
je 0x100ae9b3
cmp byte [ebp + 0x50b], 0
je 0x100ae7d0
push dword [edi + 0x31c]
push dword [ebp + 0x31c]
call fcn.100b5fe0
add esp, 8
test eax, eax
je 0x100ae9b3
cmp byte [ebp + 0x50c], 0
je 0x100ae7eb
mov eax, dword [ebp + 0x36c]
cmp eax, dword [edi + 0x36c]
jne 0x100ae9b3
push dword [edi + 0x304]
push dword [ebp + 0x304]
call fcn.100b5fe0
add esp, 8
test eax, eax
je 0x100ae9b3
mov eax, dword [ebp + 0x368]
cmp eax, dword [edi + 0x368]
jne 0x100ae9b3
mov eax, dword [ebp + 0x548]
test byte [eax + 0x44], 1
je 0x100ae856
lea eax, [edi + 0x4ac]
push eax
lea eax, [ebp + 0x4ac]
push eax
call fcn.100ad6b0
add esp, 8
test al, al
je 0x100ae9b3
cmp dword [edi + 0x468], 2
je 0x100ae856
mov byte [esp + 0x12], 1
jmp 0x100ae9b3
mov bh, byte [esp + 0x13]
test bh, bh
je 0x100ae8f0
mov ecx, dword [edi + 0x3d8]
mov eax, dword [ebp + 0x3d8]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100ae890
test dl, dl
je 0x100ae88c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100ae890
add eax, 2
add ecx, 2
test dl, dl
jne 0x100ae870
xor eax, eax
jmp 0x100ae895
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100ae8ce
mov ecx, dword [edi + 0x3dc]
mov eax, dword [ebp + 0x3dc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100ae8c5
test dl, dl
je 0x100ae8c1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100ae8c5
add eax, 2
add ecx, 2
test dl, dl
jne 0x100ae8a5
xor eax, eax
jmp 0x100ae8ca
sbb eax, eax
or eax, 1
test eax, eax
je 0x100ae8fd
cmp dword [edi + 0x5ec], 0
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
mov cl, byte [esp + 0x30]
jne 0x100ae9bf
mov dword [esp + 0x18], edi
jmp 0x100ae9bf
cmp dword [edi + 0x5ec], 0
jne 0x100ae9b3
mov al, byte [esp + 0x11]
test al, al
je 0x100ae9c9
mov eax, dword [edi + 0x35c]
test eax, eax
je 0x100ae9b3
mov edx, dword [edi + 0x360]
test edx, edx
je 0x100ae9b3
mov ecx, dword [ebp + 0x35c]
nop dword [eax + eax]
mov bl, byte [ecx]
cmp bl, byte [eax]
jne 0x100ae950
test bl, bl
je 0x100ae94c
mov bl, byte [ecx + 1]
cmp bl, byte [eax + 1]
jne 0x100ae950
add ecx, 2
add eax, 2
test bl, bl
jne 0x100ae930
xor eax, eax
jmp 0x100ae955
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100ae9b3
mov eax, dword [ebp + 0x360]
nop
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x100ae980
test cl, cl
je 0x100ae97c
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x100ae980
add eax, 2
add edx, 2
test cl, cl
jne 0x100ae960
xor eax, eax
jmp 0x100ae985
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100ae9b3
mov al, byte [esp + 0x11]
test bh, bh
jne 0x100ae995
test al, al
je 0x100ae9d4
mov dword [esp + 0x18], edi
test bh, bh
je 0x100ae9a6
cmp dword [edi + 0x5ec], 0
jne 0x100ae9f7
test al, al
je 0x100ae9b3
cmp dword [edi + 0x5f0], 0
jne 0x100ae9f7
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
mov cl, byte [esp + 0x30]
test esi, esi
jne 0x100ae2f8
jmp 0x100aea02
cmp dword [edi + 0x5f0], 0
jne 0x100ae9b3
jmp 0x100ae98d
mov al, byte [esp + 0x30]
mov ebx, dword [esp + 0x2c]
test al, al
je 0x100aea06
cmp dword [esp + 0x1c], 0
je 0x100aea06
push str.Multiplexed_connection_found__n
push ebx
call fcn.100b3140
add esp, 8
jmp 0x100aea06
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x2c]
mov byte [eax], 1
mov edi, dword [esp + 0x18]
test edi, edi
je 0x100aea25
push ebx
mov dword [edi], ebx
call fcn.100ac830
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.100ac830
add esp, 4
cmp byte [esp + 0x12], 0
je 0x100aea53
cmp byte [ebx + 0xb25], 0
je 0x100aea53
push str.Found_pending_candidate_for_reuse_and_CURLOPT_PIPEWAIT_is_set_n
push ebx
call fcn.100b3140
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