Function at 0x477e20
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 0x477e7a
cmp byte [ebp + 0x50d], 0
je 0x477e56
cmp byte [ebp + 0x500], 0
jne 0x477e7a
mov ebx, dword [esp + 0x2c]
push dword [ebx + 0x78]
call fcn.0046e720
add esp, 4
test al, al
je 0x477e7e
cmp dword [ebx + 0x844], 3
mov eax, 2
cmovge esi, eax
jmp 0x477e7e
mov ebx, dword [esp + 0x2c]
test esi, esi
setne al
test byte [ebx + 0xd70], 0x28
mov byte [esp + 0x30], al
je 0x477ea0
mov eax, dword [ebp + 0x540]
test byte [eax + 0x40], 3
je 0x477ea0
mov al, 1
jmp 0x477ea2
xor al, al
cmp byte [ebp + 0x509], 0
mov byte [esp + 0x13], al
je 0x477ecb
test byte [ebx + 0xd80], 0x28
je 0x477ecb
mov eax, dword [ebp + 0x540]
test byte [eax + 0x40], 3
je 0x477ecb
mov byte [esp + 0x11], 1
jmp 0x477ed1
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.00475e30
mov edi, eax
add esp, 0xc
mov dword [esp + 0x24], edi
test edi, edi
je 0x4786f5
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.0047d0c0
add esp, 0x14
test esi, esi
je 0x477fb9
mov eax, dword [edi]
test eax, eax
jne 0x477f76
cmp byte [ebx + 0xb25], al
je 0x477f60
push str.Server_doesnt_support_multiplex_yet__wait_n
push ebx
call fcn.0047d0c0
mov eax, dword [esp + 0x44]
push ebx
mov byte [eax], 1
call fcn.00476370
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.0047d0c0
add esp, 8
xor al, al
mov byte [esp + 0x30], al
mov eax, dword [edi]
cmp eax, 2
jne 0x477f9e
push dword [ebx + 0x78]
call fcn.0046e720
add esp, 4
test al, al
jne 0x477f9e
push str.Could_multiplex__but_not_asked_to__n
push ebx
call fcn.0047d0c0
add esp, 8
xor al, al
mov byte [esp + 0x30], al
cmp dword [edi], 0xffffffff
jne 0x477fb9
push str.Can_not_multiplex__even_if_we_wanted_to__n
push ebx
call fcn.0047d0c0
add esp, 8
xor cl, cl
mov byte [esp + 0x30], cl
jmp 0x477fbd
mov cl, byte [esp + 0x30]
mov esi, dword [edi + 8]
test esi, esi
je 0x4786f5
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 0x47868f
cmp byte [edi + 0x500], al
jne 0x47868f
mov edx, dword [esp + 0x24]
cmp dword [edx], 2
jne 0x478002
mov eax, dword [edi + 0x5d4]
mov dword [esp + 0x1c], eax
test cl, cl
jne 0x478056
test eax, eax
jne 0x47868f
cmp byte [edi + 0x2c4], al
jne 0x47802f
push dword [edi + 0x2b0]
push str.Connection__ld_is_still_name_resolving__cant_reuse_n
push ebx
call fcn.0047d0c0
add esp, 0xc
jmp 0x47868b
cmp dword [edi + 0x420], 0xffffffff
jne 0x478056
push dword [edi + 0x2b0]
mov byte [esp + 0x16], 1
push str.Connection__ld_isnt_open_enough__cant_reuse_n
push ebx
call fcn.0047d0c0
add esp, 0xc
jmp 0x47868b
mov ecx, dword [ebp + 0x7dc]
mov eax, dword [edi + 0x7dc]
test ecx, ecx
je 0x4780ab
test eax, eax
je 0x47868b
nop
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x478090
test dl, dl
je 0x47808c
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x478090
add ecx, 2
add eax, 2
test dl, dl
jne 0x478070
xor eax, eax
jmp 0x478095
sbb eax, eax
or eax, 1
test eax, eax
jne 0x47868b
mov al, byte [ebp + 0x7e0]
cmp al, byte [edi + 0x7e0]
jmp 0x4780ad
test eax, eax
jne 0x47868b
mov ecx, dword [edi + 0x540]
mov edx, dword [ebp + 0x540]
mov eax, dword [ecx + 0x44]
xor eax, dword [edx + 0x44]
test al, 1
je 0x4780ea
push dword [ecx + 0x40]
call fcn.0047b190
add esp, 4
cmp eax, dword [edx + 0x40]
jne 0x47868b
cmp byte [edi + 0x7e1], 0
je 0x47868b
mov al, byte [ebp + 0x506]
cmp al, byte [edi + 0x506]
jne 0x47868b
mov al, byte [ebp + 0x507]
cmp al, byte [edi + 0x507]
jne 0x47868b
test al, al
je 0x47820e
mov eax, dword [ebp + 0x338]
cmp eax, dword [edi + 0x338]
jne 0x47868b
mov eax, dword [ebp + 0x334]
cmp eax, dword [edi + 0x334]
jne 0x47868b
push dword [edi + 0x32c]
push dword [ebp + 0x32c]
call fcn.004813e0
add esp, 8
test eax, eax
je 0x47868b
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 0x478687
test edx, edx
je 0x4781ad
test esi, esi
je 0x4781ad
mov al, byte [edx]
cmp al, byte [esi]
jne 0x4781a0
test al, al
je 0x47819c
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x4781a0
add edx, 2
add esi, 2
test al, al
jne 0x478180
xor eax, eax
jmp 0x4781a5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x478687
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 0x478687
test edx, edx
je 0x47820a
test esi, esi
je 0x47820a
mov al, byte [edx]
cmp al, byte [esi]
jne 0x4781f7
test al, al
je 0x4781f3
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x4781f7
add edx, 2
add esi, 2
test al, al
jne 0x4781d7
xor eax, eax
jmp 0x4781fc
sbb eax, eax
or eax, 1
mov esi, dword [esp + 0x14]
test eax, eax
jne 0x47868b
jmp 0x47820e
mov esi, dword [esp + 0x14]
mov al, byte [ebp + 0x503]
cmp al, byte [edi + 0x503]
jne 0x47868b
mov al, byte [ebp + 0x504]
cmp al, byte [edi + 0x504]
jne 0x47868b
cmp byte [ebp + 0x506], 0
je 0x4782f8
mov eax, dword [ebp + 0x358]
cmp eax, dword [edi + 0x358]
jne 0x47868b
mov eax, dword [ebp + 0x354]
cmp eax, dword [edi + 0x354]
jne 0x47868b
push dword [edi + 0x34c]
push dword [ebp + 0x34c]
call fcn.004813e0
add esp, 8
test eax, eax
je 0x47868b
mov al, byte [ebp + 0x50f]
cmp al, byte [edi + 0x50f]
jne 0x47868b
cmp dword [ebp + 0x358], 2
jne 0x4782f8
mov eax, dword [ebp + 0x540]
test byte [eax + 0x44], 1
je 0x4782cd
lea eax, [edi + 0x4d0]
push eax
lea eax, [ebp + 0x4d0]
push eax
call fcn.00477230
add esp, 8
test al, al
je 0x47868b
cmp dword [edi + 0x480], 2
jmp 0x4782f2
lea eax, [edi + 0x4a4]
push eax
lea eax, [ebp + 0x4a4]
push eax
call fcn.00477230
add esp, 8
test al, al
je 0x47868b
cmp dword [edi + 0x460], 2
jne 0x47868b
mov cl, byte [esp + 0x30]
mov eax, dword [edi]
test cl, cl
jne 0x47830c
test eax, eax
jne 0x47868f
jmp 0x47831f
test eax, eax
je 0x47831f
mov ecx, dword [ebp]
mov eax, dword [eax + 0x78]
cmp eax, dword [ecx + 0x78]
jne 0x47868b
mov ecx, dword [ebp + 0x7c4]
test ecx, ecx
jne 0x478332
cmp word [ebp + 0x7c8], cx
je 0x47839d
mov ax, word [edi + 0x7c8]
cmp ax, word [ebp + 0x7c8]
jne 0x47868b
mov eax, dword [edi + 0x7cc]
cmp eax, dword [ebp + 0x7cc]
jne 0x47868b
test ecx, ecx
je 0x47839d
mov eax, dword [edi + 0x7c4]
test eax, eax
je 0x47868b
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x478390
test dl, dl
je 0x47838c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x478390
add eax, 2
add ecx, 2
test dl, dl
jne 0x478370
xor eax, eax
jmp 0x478395
sbb eax, eax
or eax, 1
test eax, eax
jne 0x47868b
mov esi, dword [ebp + 0x540]
mov ebx, dword [esi + 0x44]
test bl, bl
js 0x47841d
mov ecx, dword [edi + 0x3d8]
mov eax, dword [ebp + 0x3d8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4783d6
test dl, dl
je 0x4783d2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4783d6
add eax, 2
add ecx, 2
test dl, dl
jne 0x4783b6
xor eax, eax
jmp 0x4783db
sbb eax, eax
or eax, 1
test eax, eax
jne 0x478683
mov ecx, dword [edi + 0x3dc]
mov eax, dword [ebp + 0x3dc]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x478410
test dl, dl
je 0x47840c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x478410
add eax, 2
add ecx, 2
test dl, dl
jne 0x4783f0
xor eax, eax
jmp 0x478415
sbb eax, eax
or eax, 1
test eax, eax
jne 0x478683
cmp byte [ebp + 0x506], 0
je 0x478438
test bl, 1
jne 0x478438
cmp byte [ebp + 0x50f], 0
je 0x478526
mov eax, dword [edi + 0x540]
push dword [eax]
push dword [esi]
call fcn.00481410
add esp, 8
test eax, eax
jne 0x47847b
mov eax, dword [edi + 0x540]
push dword [eax + 0x40]
call fcn.0047b190
mov ecx, dword [ebp + 0x540]
add esp, 4
cmp eax, dword [ecx + 0x40]
jne 0x478683
cmp byte [edi + 0x7e1], 0
je 0x478683
cmp byte [ebp + 0x503], 0
je 0x4784a0
push dword [edi + 0x31c]
push dword [ebp + 0x31c]
call fcn.00481410
add esp, 8
test eax, eax
je 0x478683
cmp byte [ebp + 0x504], 0
je 0x4784bb
mov eax, dword [ebp + 0x36c]
cmp eax, dword [edi + 0x36c]
jne 0x478683
push dword [edi + 0x304]
push dword [ebp + 0x304]
call fcn.00481410
add esp, 8
test eax, eax
je 0x478683
mov eax, dword [ebp + 0x368]
cmp eax, dword [edi + 0x368]
jne 0x478683
mov eax, dword [ebp + 0x540]
test byte [eax + 0x44], 1
je 0x478526
lea eax, [edi + 0x4a4]
push eax
lea eax, [ebp + 0x4a4]
push eax
call fcn.00477230
add esp, 8
test al, al
je 0x478683
cmp dword [edi + 0x460], 2
je 0x478526
mov byte [esp + 0x12], 1
jmp 0x478683
mov bh, byte [esp + 0x13]
test bh, bh
je 0x4785c0
mov ecx, dword [edi + 0x3d8]
mov eax, dword [ebp + 0x3d8]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x478560
test dl, dl
je 0x47855c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x478560
add eax, 2
add ecx, 2
test dl, dl
jne 0x478540
xor eax, eax
jmp 0x478565
sbb eax, eax
or eax, 1
test eax, eax
jne 0x47859e
mov ecx, dword [edi + 0x3dc]
mov eax, dword [ebp + 0x3dc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x478595
test dl, dl
je 0x478591
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x478595
add eax, 2
add ecx, 2
test dl, dl
jne 0x478575
xor eax, eax
jmp 0x47859a
sbb eax, eax
or eax, 1
test eax, eax
je 0x4785cd
cmp dword [edi + 0x5e4], 0
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
mov cl, byte [esp + 0x30]
jne 0x47868f
mov dword [esp + 0x18], edi
jmp 0x47868f
cmp dword [edi + 0x5e4], 0
jne 0x478683
mov al, byte [esp + 0x11]
test al, al
je 0x478699
mov eax, dword [edi + 0x35c]
test eax, eax
je 0x478683
mov edx, dword [edi + 0x360]
test edx, edx
je 0x478683
mov ecx, dword [ebp + 0x35c]
nop dword [eax + eax]
mov bl, byte [ecx]
cmp bl, byte [eax]
jne 0x478620
test bl, bl
je 0x47861c
mov bl, byte [ecx + 1]
cmp bl, byte [eax + 1]
jne 0x478620
add ecx, 2
add eax, 2
test bl, bl
jne 0x478600
xor eax, eax
jmp 0x478625
sbb eax, eax
or eax, 1
test eax, eax
jne 0x478683
mov eax, dword [ebp + 0x360]
nop
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x478650
test cl, cl
je 0x47864c
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x478650
add eax, 2
add edx, 2
test cl, cl
jne 0x478630
xor eax, eax
jmp 0x478655
sbb eax, eax
or eax, 1
test eax, eax
jne 0x478683
mov al, byte [esp + 0x11]
test bh, bh
jne 0x478665
test al, al
je 0x4786a4
mov dword [esp + 0x18], edi
test bh, bh
je 0x478676
cmp dword [edi + 0x5e4], 0
jne 0x4786c7
test al, al
je 0x478683
cmp dword [edi + 0x5e8], 0
jne 0x4786c7
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
mov cl, byte [esp + 0x30]
test esi, esi
jne 0x477fc8
jmp 0x4786d2
cmp dword [edi + 0x5e8], 0
jne 0x478683
jmp 0x47865d
mov al, byte [esp + 0x30]
mov ebx, dword [esp + 0x2c]
test al, al
je 0x4786d6
cmp dword [esp + 0x1c], 0
je 0x4786d6
push str.Multiplexed_connection_found__n
push ebx
call fcn.0047d0c0
add esp, 8
jmp 0x4786d6
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x2c]
mov byte [eax], 1
mov edi, dword [esp + 0x18]
test edi, edi
je 0x4786f5
push ebx
mov dword [edi], ebx
call fcn.00476370
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.00476370
add esp, 4
cmp byte [esp + 0x12], 0
je 0x478723
cmp byte [ebx + 0xb25], 0
je 0x478723
push str.Found_pending_candidate_for_reuse_and_CURLOPT_PIPEWAIT_is_set_n
push ebx
call fcn.0047d0c0
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