Function at 0x10012500
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 0x10012557
cmp byte [ebp + 0x257], bl
je 0x10012533
cmp byte [ebp + 0x24d], bl
jne 0x10012557
mov edi, dword [esp + 0x2c]
push dword [edi + 0x70]
call fcn.100081e0
add esp, 4
test al, al
je 0x1001255b
cmp byte [edi + 0xc2c], 3
mov eax, 2
cmovae esi, eax
jmp 0x1001255b
mov edi, dword [esp + 0x2c]
test esi, esi
setne byte [esp + 0x30]
test byte [edi + 0x998], 0x28
je 0x1001257c
mov eax, dword [ebp + 0x290]
mov byte [esp + 0x12], 1
test byte [eax + 0x44], 3
jne 0x10012580
mov byte [esp + 0x12], bl
cmp byte [ebp + 0x24a], bl
je 0x100125a4
test byte [edi + 0x9a8], 0x28
je 0x100125a4
mov eax, dword [ebp + 0x290]
test byte [eax + 0x44], 3
je 0x100125a4
mov byte [esp + 0x11], 1
jmp 0x100125aa
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.100104b0
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
je 0x10012db7
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.10017c70
add esp, 0x14
test esi, esi
mov esi, dword [esp + 0x18]
je 0x10012699
mov eax, dword [esi]
test eax, eax
jne 0x1001265c
cmp byte [edi + 0x725], bl
je 0x10012648
push str.Server_doesnt_support_multiplex_yet__wait_n
push edi
call fcn.10017c70
mov eax, dword [esp + 0x44]
add esp, 8
mov byte [eax], 1
cmp dword [edi + 0x78], ebx
je 0x10012e4f
push 5
push edi
call fcn.1001c8c0
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.10017c70
mov eax, dword [esi]
add esp, 8
mov byte [esp + 0x30], bl
cmp eax, 2
jne 0x10012682
push dword [edi + 0x70]
call fcn.100081e0
add esp, 4
test al, al
jne 0x10012682
push str.Could_multiplex__but_not_asked_to__n
push edi
call fcn.10017c70
add esp, 8
mov byte [esp + 0x30], bl
cmp dword [esi], 0xffffffff
jne 0x10012699
push str.Can_not_multiplex__even_if_we_wanted_to__n
push edi
call fcn.10017c70
add esp, 8
mov byte [esp + 0x30], bl
mov esi, dword [esi + 8]
mov dword [esp + 0x1c], esi
test esi, esi
je 0x10012db7
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 0x1001273c
cmp byte [esi + 0x24d], bl
jne 0x1001273c
push edi
push esi
call fcn.10015620
add esp, 8
test al, al
je 0x100126f3
push 1
push esi
push edi
call fcn.10013440
mov ebx, dword [esp + 0x20]
add esp, 0xc
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
jmp 0x100126a0
mov al, byte [edi + 0x4f0]
test al, al
je 0x10012705
cmp al, byte [esi + 0x100]
jne 0x1001273c
mov eax, dword [esp + 0x18]
cmp dword [eax], 2
jne 0x10012718
mov ebx, dword [esi + 0x2f0]
mov dword [esp + 0x20], ebx
cmp byte [esp + 0x30], 0
jne 0x10012765
test ebx, ebx
jne 0x1001273c
cmp byte [esi + 0xd2], bl
jne 0x1001274d
push dword [esi + 0x40]
push str.Connection__ld_is_still_name_resolving__cant_reuse_n
push edi
call fcn.10017c70
add esp, 0xc
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
jmp 0x100126a0
cmp dword [esi + 0x148], 0xffffffff
jne 0x10012765
push dword [esi + 0x40]
mov byte [esp + 0x17], 1
push str.Connection__ld_isnt_open_enough__cant_reuse_n
jmp 0x10012733
mov ecx, dword [ebp + 0x4d8]
mov eax, dword [esi + 0x4d8]
test ecx, ecx
je 0x100127b7
test eax, eax
je 0x1001273c
nop dword [eax]
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x100127a0
test dl, dl
je 0x1001279c
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x100127a0
add ecx, 2
add eax, 2
test dl, dl
jne 0x10012780
xor eax, eax
jmp 0x100127a5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1001273c
mov al, byte [ebp + 0x267]
cmp al, byte [esi + 0x267]
jmp 0x100127b9
test eax, eax
jne 0x1001273c
mov edx, dword [ebp + 0x290]
mov ecx, dword [esi + 0x290]
mov eax, dword [edx + 0x4c]
xor eax, dword [ecx + 0x4c]
test al, 1
je 0x100127ea
mov eax, dword [ecx + 0x48]
cmp eax, dword [edx + 0x44]
jne 0x1001273c
cmp byte [esi + 0x268], 0
je 0x1001273c
mov al, byte [ebp + 0x248]
cmp al, byte [esi + 0x248]
jne 0x1001273c
mov al, byte [ebp + 0x249]
cmp al, byte [esi + 0x249]
jne 0x1001273c
test al, al
je 0x10012908
mov eax, dword [ebp + 0x98]
cmp eax, dword [esi + 0x98]
jne 0x1001273c
mov eax, dword [ebp + 0x94]
cmp eax, dword [esi + 0x94]
jne 0x1001273c
push dword [esi + 0x8c]
push dword [ebp + 0x8c]
call fcn.1001c120
add esp, 8
test eax, eax
je 0x1001273c
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 0x1001273c
test edx, edx
je 0x100128ad
test edi, edi
je 0x100128ad
mov al, byte [edx]
cmp al, byte [edi]
jne 0x100128a0
test al, al
je 0x1001289c
mov al, byte [edx + 1]
cmp al, byte [edi + 1]
jne 0x100128a0
add edx, 2
add edi, 2
test al, al
jne 0x10012880
xor eax, eax
jmp 0x100128a5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1001273c
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 0x1001273c
test edx, edx
je 0x10012904
test edi, edi
je 0x10012904
mov al, byte [edx]
cmp al, byte [edi]
jne 0x100128f7
test al, al
je 0x100128f3
mov al, byte [edx + 1]
cmp al, byte [edi + 1]
jne 0x100128f7
add edx, 2
add edi, 2
test al, al
jne 0x100128d7
xor eax, eax
jmp 0x100128fc
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1001273c
mov edi, dword [esp + 0x2c]
mov al, byte [ebp + 0x250]
cmp al, byte [esi + 0x250]
jne 0x1001273c
mov al, byte [ebp + 0x251]
cmp al, byte [esi + 0x251]
jne 0x1001273c
cmp byte [ebp + 0x248], 0
je 0x100129f2
mov eax, dword [ebp + 0xb8]
cmp eax, dword [esi + 0xb8]
jne 0x1001273c
mov eax, dword [ebp + 0xb4]
cmp eax, dword [esi + 0xb4]
jne 0x1001273c
push dword [esi + 0xac]
push dword [ebp + 0xac]
call fcn.1001c120
add esp, 8
test eax, eax
je 0x1001273c
mov al, byte [ebp + 0x24b]
cmp al, byte [esi + 0x24b]
jne 0x1001273c
cmp dword [ebp + 0xb8], 2
jne 0x100129f2
mov eax, dword [ebp + 0x290]
test byte [eax + 0x4c], 1
je 0x100129c7
lea eax, [esi + 0x20c]
push eax
lea eax, [ebp + 0x20c]
push eax
call fcn.10011810
add esp, 8
test al, al
je 0x1001273c
cmp dword [esi + 0x1b0], 2
jmp 0x100129ec
lea eax, [esi + 0x1d4]
push eax
lea eax, [ebp + 0x1d4]
push eax
call fcn.10011810
add esp, 8
test al, al
je 0x1001273c
cmp dword [esi + 0x190], 2
jne 0x1001273c
cmp byte [esp + 0x30], 0
jne 0x10012a06
cmp dword [esi + 0x2f0], 0
jne 0x1001273c
cmp dword [esi + 0x2f0], 0
je 0x10012a23
mov eax, dword [esi + 0x2e4]
mov eax, dword [eax]
mov eax, dword [eax + 0x70]
cmp eax, dword [edi + 0x70]
jne 0x1001273c
mov ecx, dword [ebp + 0x4dc]
test ecx, ecx
jne 0x10012a36
cmp word [ebp + 0x4f4], cx
je 0x10012a9d
mov ax, word [esi + 0x4f4]
cmp ax, word [ebp + 0x4f4]
jne 0x1001273c
mov eax, dword [esi + 0x4e0]
cmp eax, dword [ebp + 0x4e0]
jne 0x1001273c
test ecx, ecx
je 0x10012a9d
mov eax, dword [esi + 0x4dc]
test eax, eax
je 0x1001273c
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012a90
test dl, dl
je 0x10012a8c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012a90
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012a70
xor eax, eax
jmp 0x10012a95
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1001273c
mov edi, dword [ebp + 0x290]
mov ebx, dword [edi + 0x4c]
test bl, bl
js 0x10012b1d
mov ecx, dword [esi + 0x104]
mov eax, dword [ebp + 0x104]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012ad6
test dl, dl
je 0x10012ad2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012ad6
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012ab6
xor eax, eax
jmp 0x10012adb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1001273c
mov ecx, dword [esi + 0x108]
mov eax, dword [ebp + 0x108]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012b10
test dl, dl
je 0x10012b0c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012b10
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012af0
xor eax, eax
jmp 0x10012b15
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1001273c
test byte [edi + 0x44], 3
je 0x10012b3d
cmp byte [esi + 0x114], 0x14
jb 0x10012b3d
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0xc2c], 3
jb 0x1001273c
test bl, 1
jne 0x10012b58
cmp byte [ebp + 0x248], 0
je 0x10012b58
cmp byte [ebp + 0x24b], 0
je 0x10012c3e
mov eax, dword [esi + 0x290]
push dword [eax]
push dword [edi]
call fcn.1001c150
add esp, 8
test eax, eax
jne 0x10012b93
mov eax, dword [esi + 0x290]
mov ecx, dword [ebp + 0x290]
mov eax, dword [eax + 0x48]
cmp eax, dword [ecx + 0x44]
jne 0x1001273c
cmp byte [esi + 0x268], 0
je 0x1001273c
cmp byte [ebp + 0x250], 0
je 0x10012bb2
push dword [esi + 0x7c]
push dword [ebp + 0x7c]
call fcn.1001c150
add esp, 8
test eax, eax
je 0x1001273c
cmp byte [ebp + 0x251], 0
je 0x10012bcd
mov eax, dword [ebp + 0xcc]
cmp eax, dword [esi + 0xcc]
jne 0x1001273c
push dword [esi + 0x64]
push dword [ebp + 0x64]
call fcn.1001c150
add esp, 8
test eax, eax
je 0x1001273c
mov eax, dword [ebp + 0xc8]
cmp eax, dword [esi + 0xc8]
jne 0x1001273c
mov eax, dword [ebp + 0x290]
test byte [eax + 0x4c], 1
je 0x10012c3e
lea eax, [esi + 0x1d4]
push eax
lea eax, [ebp + 0x1d4]
push eax
call fcn.10011810
add esp, 8
test al, al
je 0x1001273c
cmp dword [esi + 0x190], 2
je 0x10012c3e
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
mov byte [esp + 0x13], 1
jmp 0x100126a0
cmp byte [esp + 0x12], 0
je 0x10012cd9
mov ecx, dword [esi + 0x104]
mov eax, dword [ebp + 0x104]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012c75
test dl, dl
je 0x10012c71
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012c75
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012c55
xor eax, eax
jmp 0x10012c7a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10012cb9
mov ecx, dword [esi + 0x108]
mov eax, dword [ebp + 0x108]
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012cb0
test dl, dl
je 0x10012cac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012cb0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012c90
xor eax, eax
jmp 0x10012cb5
sbb eax, eax
or eax, 1
test eax, eax
je 0x10012ce6
cmp dword [esi + 0x300], 0
jne 0x1001273c
mov edi, dword [esp + 0x2c]
mov ebx, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x14], ebx
jmp 0x100126a0
cmp dword [esi + 0x300], 0
jne 0x1001273c
mov al, byte [esp + 0x11]
test al, al
je 0x10012de6
mov eax, dword [esi + 0xbc]
test eax, eax
je 0x1001273c
mov edx, dword [esi + 0xc0]
test edx, edx
je 0x1001273c
mov ecx, dword [ebp + 0xbc]
mov bl, byte [ecx]
cmp bl, byte [eax]
jne 0x10012d34
test bl, bl
je 0x10012d30
mov bl, byte [ecx + 1]
cmp bl, byte [eax + 1]
jne 0x10012d34
add ecx, 2
add eax, 2
test bl, bl
jne 0x10012d14
xor eax, eax
jmp 0x10012d39
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1001273c
mov eax, dword [ebp + 0xc0]
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x10012d67
test cl, cl
je 0x10012d63
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x10012d67
add eax, 2
add edx, 2
test cl, cl
jne 0x10012d47
xor eax, eax
jmp 0x10012d6c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1001273c
mov al, byte [esp + 0x11]
mov cl, byte [esp + 0x12]
test cl, cl
jne 0x10012d84
test al, al
je 0x10012df5
mov ebx, esi
mov dword [esp + 0x14], ebx
test cl, cl
je 0x10012d97
cmp dword [esi + 0x300], 0
jne 0x10012dac
test al, al
je 0x10012740
cmp dword [esi + 0x304], 0
je 0x10012740
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x2c]
mov byte [eax], 1
test ebx, ebx
je 0x10012e19
push ebx
push edi
call fcn.10007cb0
add esp, 8
cmp dword [edi + 0x78], 0
je 0x10012dd6
push 5
push edi
call fcn.1001c8c0
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 0x1001273c
jmp 0x10012d78
cmp byte [esp + 0x30], 0
mov ebx, esi
mov edi, dword [esp + 0x2c]
je 0x10012db7
cmp dword [esp + 0x20], 0
je 0x10012db7
push str.Multiplexed_connection_found__n
push edi
call fcn.10017c70
add esp, 8
jmp 0x10012db7
cmp dword [edi + 0x78], 0
je 0x10012e2a
push 5
push edi
call fcn.1001c8c0
add esp, 8
cmp byte [esp + 0x13], 0
je 0x10012e4f
cmp byte [edi + 0x725], 0
je 0x10012e4f
push str.Found_pending_candidate_for_reuse_and_CURLOPT_PIPEWAIT_is_set_n
push edi
call fcn.10017c70
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