Function at 0x477cf0
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 0x477d4a
cmp byte [ebp + 0x50d], 0
je 0x477d26
cmp byte [ebp + 0x500], 0
jne 0x477d4a
mov ebx, dword [esp + 0x2c]
push dword [ebx + 0x78]
call fcn.0046e5d0
add esp, 4
test al, al
je 0x477d4e
cmp dword [ebx + 0x844], 3
mov eax, 2
cmovge esi, eax
jmp 0x477d4e
mov ebx, dword [esp + 0x2c]
test esi, esi
setne al
test byte [ebx + 0xd70], 0x28
mov byte [esp + 0x30], al
je 0x477d70
mov eax, dword [ebp + 0x540]
test byte [eax + 0x40], 3
je 0x477d70
mov al, 1
jmp 0x477d72
xor al, al
cmp byte [ebp + 0x509], 0
mov byte [esp + 0x13], al
je 0x477d9b
test byte [ebx + 0xd80], 0x28
je 0x477d9b
mov eax, dword [ebp + 0x540]
test byte [eax + 0x40], 3
je 0x477d9b
mov byte [esp + 0x11], 1
jmp 0x477da1
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.00475cf0
mov edi, eax
add esp, 0xc
mov dword [esp + 0x24], edi
test edi, edi
je 0x4785c5
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.0047cf90
add esp, 0x14
test esi, esi
je 0x477e89
mov eax, dword [edi]
test eax, eax
jne 0x477e46
cmp byte [ebx + 0xb25], al
je 0x477e30
push str.Server_doesnt_support_multiplex_yet__wait_n
push ebx
call fcn.0047cf90
mov eax, dword [esp + 0x44]
push ebx
mov byte [eax], 1
call fcn.00476230
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.0047cf90
add esp, 8
xor al, al
mov byte [esp + 0x30], al
mov eax, dword [edi]
cmp eax, 2
jne 0x477e6e
push dword [ebx + 0x78]
call fcn.0046e5d0
add esp, 4
test al, al
jne 0x477e6e
push str.Could_multiplex__but_not_asked_to__n
push ebx
call fcn.0047cf90
add esp, 8
xor al, al
mov byte [esp + 0x30], al
cmp dword [edi], 0xffffffff
jne 0x477e89
push str.Can_not_multiplex__even_if_we_wanted_to__n
push ebx
call fcn.0047cf90
add esp, 8
xor cl, cl
mov byte [esp + 0x30], cl
jmp 0x477e8d
mov cl, byte [esp + 0x30]
mov esi, dword [edi + 8]
test esi, esi
je 0x4785c5
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 0x47855f
cmp byte [edi + 0x500], al
jne 0x47855f
mov edx, dword [esp + 0x24]
cmp dword [edx], 2
jne 0x477ed2
mov eax, dword [edi + 0x5d4]
mov dword [esp + 0x1c], eax
test cl, cl
jne 0x477f26
test eax, eax
jne 0x47855f
cmp byte [edi + 0x2c4], al
jne 0x477eff
push dword [edi + 0x2b0]
push str.Connection__ld_is_still_name_resolving__cant_reuse_n
push ebx
call fcn.0047cf90
add esp, 0xc
jmp 0x47855b
cmp dword [edi + 0x420], 0xffffffff
jne 0x477f26
push dword [edi + 0x2b0]
mov byte [esp + 0x16], 1
push str.Connection__ld_isnt_open_enough__cant_reuse_n
push ebx
call fcn.0047cf90
add esp, 0xc
jmp 0x47855b
mov ecx, dword [ebp + 0x7dc]
mov eax, dword [edi + 0x7dc]
test ecx, ecx
je 0x477f7b
test eax, eax
je 0x47855b
nop
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x477f60
test dl, dl
je 0x477f5c
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x477f60
add ecx, 2
add eax, 2
test dl, dl
jne 0x477f40
xor eax, eax
jmp 0x477f65
sbb eax, eax
or eax, 1
test eax, eax
jne 0x47855b
mov al, byte [ebp + 0x7e0]
cmp al, byte [edi + 0x7e0]
jmp 0x477f7d
test eax, eax
jne 0x47855b
mov ecx, dword [edi + 0x540]
mov edx, dword [ebp + 0x540]
mov eax, dword [ecx + 0x44]
xor eax, dword [edx + 0x44]
test al, 1
je 0x477fba
push dword [ecx + 0x40]
call fcn.0047b060
add esp, 4
cmp eax, dword [edx + 0x40]
jne 0x47855b
cmp byte [edi + 0x7e1], 0
je 0x47855b
mov al, byte [ebp + 0x506]
cmp al, byte [edi + 0x506]
jne 0x47855b
mov al, byte [ebp + 0x507]
cmp al, byte [edi + 0x507]
jne 0x47855b
test al, al
je 0x4780de
mov eax, dword [ebp + 0x338]
cmp eax, dword [edi + 0x338]
jne 0x47855b
mov eax, dword [ebp + 0x334]
cmp eax, dword [edi + 0x334]
jne 0x47855b
push dword [edi + 0x32c]
push dword [ebp + 0x32c]
call fcn.004812b0
add esp, 8
test eax, eax
je 0x47855b
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 0x478557
test edx, edx
je 0x47807d
test esi, esi
je 0x47807d
mov al, byte [edx]
cmp al, byte [esi]
jne 0x478070
test al, al
je 0x47806c
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x478070
add edx, 2
add esi, 2
test al, al
jne 0x478050
xor eax, eax
jmp 0x478075
sbb eax, eax
or eax, 1
test eax, eax
jne 0x478557
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 0x478557
test edx, edx
je 0x4780da
test esi, esi
je 0x4780da
mov al, byte [edx]
cmp al, byte [esi]
jne 0x4780c7
test al, al
je 0x4780c3
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x4780c7
add edx, 2
add esi, 2
test al, al
jne 0x4780a7
xor eax, eax
jmp 0x4780cc
sbb eax, eax
or eax, 1
mov esi, dword [esp + 0x14]
test eax, eax
jne 0x47855b
jmp 0x4780de
mov esi, dword [esp + 0x14]
mov al, byte [ebp + 0x503]
cmp al, byte [edi + 0x503]
jne 0x47855b
mov al, byte [ebp + 0x504]
cmp al, byte [edi + 0x504]
jne 0x47855b
cmp byte [ebp + 0x506], 0
je 0x4781c8
mov eax, dword [ebp + 0x358]
cmp eax, dword [edi + 0x358]
jne 0x47855b
mov eax, dword [ebp + 0x354]
cmp eax, dword [edi + 0x354]
jne 0x47855b
push dword [edi + 0x34c]
push dword [ebp + 0x34c]
call fcn.004812b0
add esp, 8
test eax, eax
je 0x47855b
mov al, byte [ebp + 0x50f]
cmp al, byte [edi + 0x50f]
jne 0x47855b
cmp dword [ebp + 0x358], 2
jne 0x4781c8
mov eax, dword [ebp + 0x540]
test byte [eax + 0x44], 1
je 0x47819d
lea eax, [edi + 0x4d0]
push eax
lea eax, [ebp + 0x4d0]
push eax
call fcn.00477100
add esp, 8
test al, al
je 0x47855b
cmp dword [edi + 0x480], 2
jmp 0x4781c2
lea eax, [edi + 0x4a4]
push eax
lea eax, [ebp + 0x4a4]
push eax
call fcn.00477100
add esp, 8
test al, al
je 0x47855b
cmp dword [edi + 0x460], 2
jne 0x47855b
mov cl, byte [esp + 0x30]
mov eax, dword [edi]
test cl, cl
jne 0x4781dc
test eax, eax
jne 0x47855f
jmp 0x4781ef
test eax, eax
je 0x4781ef
mov ecx, dword [ebp]
mov eax, dword [eax + 0x78]
cmp eax, dword [ecx + 0x78]
jne 0x47855b
mov ecx, dword [ebp + 0x7c4]
test ecx, ecx
jne 0x478202
cmp word [ebp + 0x7c8], cx
je 0x47826d
mov ax, word [edi + 0x7c8]
cmp ax, word [ebp + 0x7c8]
jne 0x47855b
mov eax, dword [edi + 0x7cc]
cmp eax, dword [ebp + 0x7cc]
jne 0x47855b
test ecx, ecx
je 0x47826d
mov eax, dword [edi + 0x7c4]
test eax, eax
je 0x47855b
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x478260
test dl, dl
je 0x47825c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x478260
add eax, 2
add ecx, 2
test dl, dl
jne 0x478240
xor eax, eax
jmp 0x478265
sbb eax, eax
or eax, 1
test eax, eax
jne 0x47855b
mov esi, dword [ebp + 0x540]
mov ebx, dword [esi + 0x44]
test bl, bl
js 0x4782ed
mov ecx, dword [edi + 0x3d8]
mov eax, dword [ebp + 0x3d8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4782a6
test dl, dl
je 0x4782a2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4782a6
add eax, 2
add ecx, 2
test dl, dl
jne 0x478286
xor eax, eax
jmp 0x4782ab
sbb eax, eax
or eax, 1
test eax, eax
jne 0x478553
mov ecx, dword [edi + 0x3dc]
mov eax, dword [ebp + 0x3dc]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4782e0
test dl, dl
je 0x4782dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4782e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4782c0
xor eax, eax
jmp 0x4782e5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x478553
cmp byte [ebp + 0x506], 0
je 0x478308
test bl, 1
jne 0x478308
cmp byte [ebp + 0x50f], 0
je 0x4783f6
mov eax, dword [edi + 0x540]
push dword [eax]
push dword [esi]
call fcn.004812e0
add esp, 8
test eax, eax
jne 0x47834b
mov eax, dword [edi + 0x540]
push dword [eax + 0x40]
call fcn.0047b060
mov ecx, dword [ebp + 0x540]
add esp, 4
cmp eax, dword [ecx + 0x40]
jne 0x478553
cmp byte [edi + 0x7e1], 0
je 0x478553
cmp byte [ebp + 0x503], 0
je 0x478370
push dword [edi + 0x31c]
push dword [ebp + 0x31c]
call fcn.004812e0
add esp, 8
test eax, eax
je 0x478553
cmp byte [ebp + 0x504], 0
je 0x47838b
mov eax, dword [ebp + 0x36c]
cmp eax, dword [edi + 0x36c]
jne 0x478553
push dword [edi + 0x304]
push dword [ebp + 0x304]
call fcn.004812e0
add esp, 8
test eax, eax
je 0x478553
mov eax, dword [ebp + 0x368]
cmp eax, dword [edi + 0x368]
jne 0x478553
mov eax, dword [ebp + 0x540]
test byte [eax + 0x44], 1
je 0x4783f6
lea eax, [edi + 0x4a4]
push eax
lea eax, [ebp + 0x4a4]
push eax
call fcn.00477100
add esp, 8
test al, al
je 0x478553
cmp dword [edi + 0x460], 2
je 0x4783f6
mov byte [esp + 0x12], 1
jmp 0x478553
mov bh, byte [esp + 0x13]
test bh, bh
je 0x478490
mov ecx, dword [edi + 0x3d8]
mov eax, dword [ebp + 0x3d8]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x478430
test dl, dl
je 0x47842c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x478430
add eax, 2
add ecx, 2
test dl, dl
jne 0x478410
xor eax, eax
jmp 0x478435
sbb eax, eax
or eax, 1
test eax, eax
jne 0x47846e
mov ecx, dword [edi + 0x3dc]
mov eax, dword [ebp + 0x3dc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x478465
test dl, dl
je 0x478461
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x478465
add eax, 2
add ecx, 2
test dl, dl
jne 0x478445
xor eax, eax
jmp 0x47846a
sbb eax, eax
or eax, 1
test eax, eax
je 0x47849d
cmp dword [edi + 0x5e4], 0
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
mov cl, byte [esp + 0x30]
jne 0x47855f
mov dword [esp + 0x18], edi
jmp 0x47855f
cmp dword [edi + 0x5e4], 0
jne 0x478553
mov al, byte [esp + 0x11]
test al, al
je 0x478569
mov eax, dword [edi + 0x35c]
test eax, eax
je 0x478553
mov edx, dword [edi + 0x360]
test edx, edx
je 0x478553
mov ecx, dword [ebp + 0x35c]
nop dword [eax + eax]
mov bl, byte [ecx]
cmp bl, byte [eax]
jne 0x4784f0
test bl, bl
je 0x4784ec
mov bl, byte [ecx + 1]
cmp bl, byte [eax + 1]
jne 0x4784f0
add ecx, 2
add eax, 2
test bl, bl
jne 0x4784d0
xor eax, eax
jmp 0x4784f5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x478553
mov eax, dword [ebp + 0x360]
nop
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x478520
test cl, cl
je 0x47851c
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x478520
add eax, 2
add edx, 2
test cl, cl
jne 0x478500
xor eax, eax
jmp 0x478525
sbb eax, eax
or eax, 1
test eax, eax
jne 0x478553
mov al, byte [esp + 0x11]
test bh, bh
jne 0x478535
test al, al
je 0x478574
mov dword [esp + 0x18], edi
test bh, bh
je 0x478546
cmp dword [edi + 0x5e4], 0
jne 0x478597
test al, al
je 0x478553
cmp dword [edi + 0x5e8], 0
jne 0x478597
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
mov cl, byte [esp + 0x30]
test esi, esi
jne 0x477e98
jmp 0x4785a2
cmp dword [edi + 0x5e8], 0
jne 0x478553
jmp 0x47852d
mov al, byte [esp + 0x30]
mov ebx, dword [esp + 0x2c]
test al, al
je 0x4785a6
cmp dword [esp + 0x1c], 0
je 0x4785a6
push str.Multiplexed_connection_found__n
push ebx
call fcn.0047cf90
add esp, 8
jmp 0x4785a6
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x2c]
mov byte [eax], 1
mov edi, dword [esp + 0x18]
test edi, edi
je 0x4785c5
push ebx
mov dword [edi], ebx
call fcn.00476230
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.00476230
add esp, 4
cmp byte [esp + 0x12], 0
je 0x4785f3
cmp byte [ebx + 0xb25], 0
je 0x4785f3
push str.Found_pending_candidate_for_reuse_and_CURLOPT_PIPEWAIT_is_set_n
push ebx
call fcn.0047cf90
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