Function at 0x477660
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 + 0x2a0]
xor esi, esi
mov dword [esp + 0x14], edi
test byte [eax + 0x44], 3
je 0x4776ba
cmp byte [ebp + 0x267], 0
je 0x477696
cmp byte [ebp + 0x25d], 0
jne 0x4776ba
mov ebx, dword [esp + 0x2c]
push dword [ebx + 0x70]
call fcn.0046f590
add esp, 4
test al, al
je 0x4776be
cmp byte [ebx + 0xc34], 3
mov eax, 2
cmovae esi, eax
jmp 0x4776be
mov ebx, dword [esp + 0x2c]
test esi, esi
setne byte [esp + 0x30]
test byte [ebx + 0x9a0], 0x28
je 0x4776de
mov eax, dword [ebp + 0x2a0]
test byte [eax + 0x44], 3
je 0x4776de
mov al, 1
jmp 0x4776e0
xor al, al
cmp byte [ebp + 0x25a], 0
mov byte [esp + 0x13], al
je 0x477709
test byte [ebx + 0x9b0], 0x28
je 0x477709
mov eax, dword [ebp + 0x2a0]
test byte [eax + 0x44], 3
je 0x477709
mov byte [esp + 0x11], 1
jmp 0x47770f
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 + 0x24]
push eax
push dword [ebx + 0x8d8]
push ebp
push ebx
call fcn.004755d0
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
je 0x477f1c
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_
push ebx
call fcn.0047c430
add esp, 0x14
test esi, esi
mov esi, dword [esp + 0x18]
je 0x477800
cmp dword [esi], edi
jne 0x4777c1
cmp byte [ebx + 0x731], 0
je 0x4777ae
push str.Server_doesnt_support_multiplex_yet__wait
push ebx
call fcn.0047c430
mov eax, dword [esp + 0x44]
add esp, 8
mov byte [eax], 1
cmp dword [ebx + 0x78], edi
je 0x477fae
push 5
push ebx
call fcn.004811d0
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_
push ebx
call fcn.0047c430
add esp, 8
mov byte [esp + 0x30], 0
cmp dword [esi], 2
jne 0x4777e8
push dword [ebx + 0x70]
call fcn.0046f590
add esp, 4
test al, al
jne 0x4777e8
push str.Could_multiplex__but_not_asked_to_
push ebx
call fcn.0047c430
add esp, 8
mov byte [esp + 0x30], 0
cmp dword [esi], 0xffffffff
jne 0x477800
push str.Can_not_multiplex__even_if_we_wanted_to_
push ebx
call fcn.0047c430
add esp, 8
mov byte [esp + 0x30], 0
mov esi, dword [esi + 8]
mov dword [esp + 0x1c], esi
test esi, esi
je 0x477f1c
nop
mov eax, dword [esp + 0x1c]
xor esi, esi
mov dword [esp + 0x20], esi
mov edi, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x1c], eax
cmp byte [edi + 0x275], 0
jne 0x477d8d
cmp byte [edi + 0x25d], 0
jne 0x477d8d
push ebx
push edi
call fcn.0047a710
add esp, 8
test al, al
je 0x47785c
push 1
push edi
push ebx
call fcn.004785c0
add esp, 0xc
jmp 0x477d8d
mov al, byte [ebx + 0x4f8]
test al, al
je 0x477872
cmp al, byte [edi + 0x100]
jne 0x477d8d
mov eax, dword [esp + 0x18]
cmp dword [eax], 2
jne 0x477885
mov esi, dword [edi + 0x300]
mov dword [esp + 0x20], esi
cmp byte [esp + 0x30], 0
jne 0x4778d7
test esi, esi
jne 0x477d8d
cmp byte [edi + 0xd2], 0
jne 0x4778b3
push dword [edi + 0x40]
push str.Connection__ld_is_still_name_resolving__cant_reuse
push ebx
call fcn.0047c430
add esp, 0xc
jmp 0x477d8d
cmp dword [edi + 0x148], 0xffffffff
jne 0x4778d7
push dword [edi + 0x40]
mov byte [esp + 0x16], 1
push str.Connection__ld_isnt_open_enough__cant_reuse
push ebx
call fcn.0047c430
add esp, 0xc
jmp 0x477d8d
mov ecx, dword [ebp + 0x4e8]
mov eax, dword [edi + 0x4e8]
test ecx, ecx
je 0x47792b
test eax, eax
je 0x477d8d
nop
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x477910
test dl, dl
je 0x47790c
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x477910
add ecx, 2
add eax, 2
test dl, dl
jne 0x4778f0
xor eax, eax
jmp 0x477915
sbb eax, eax
or eax, 1
test eax, eax
jne 0x477d8d
mov al, byte [ebp + 0x277]
cmp al, byte [edi + 0x277]
jmp 0x47792d
test eax, eax
jne 0x477d8d
mov edx, dword [ebp + 0x2a0]
mov ecx, dword [edi + 0x2a0]
mov eax, dword [edx + 0x4c]
xor eax, dword [ecx + 0x4c]
test al, 1
je 0x477962
mov eax, dword [ecx + 0x48]
cmp eax, dword [edx + 0x44]
jne 0x477d8d
cmp byte [edi + 0x278], 0
je 0x477d8d
mov al, byte [ebp + 0x258]
cmp al, byte [edi + 0x258]
jne 0x477d8d
mov al, byte [ebp + 0x259]
cmp al, byte [edi + 0x259]
jne 0x477d8d
test al, al
je 0x477a7d
mov eax, dword [ebp + 0x98]
cmp eax, dword [edi + 0x98]
jne 0x477d8d
mov eax, dword [ebp + 0x94]
cmp eax, dword [edi + 0x94]
jne 0x477d8d
push dword [edi + 0x8c]
push dword [ebp + 0x8c]
call fcn.00480a30
add esp, 8
test eax, eax
je 0x477d8d
mov esi, dword [edi + 0x9c]
xor ecx, ecx
mov edx, dword [ebp + 0x9c]
test esi, esi
sete cl
xor eax, eax
test edx, edx
sete al
cmp eax, ecx
jne 0x477d8d
test edx, edx
je 0x477a25
test esi, esi
je 0x477a25
mov al, byte [edx]
cmp al, byte [esi]
jne 0x477a18
test al, al
je 0x477a14
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x477a18
add edx, 2
add esi, 2
test al, al
jne 0x4779f8
xor eax, eax
jmp 0x477a1d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x477d8d
mov esi, dword [edi + 0xa0]
xor ecx, ecx
mov edx, dword [ebp + 0xa0]
test esi, esi
sete cl
xor eax, eax
test edx, edx
sete al
cmp eax, ecx
jne 0x477d8d
test edx, edx
je 0x477a7d
test esi, esi
je 0x477a7d
nop
mov al, byte [edx]
cmp al, byte [esi]
jne 0x477a70
test al, al
je 0x477a6c
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x477a70
add edx, 2
add esi, 2
test al, al
jne 0x477a50
xor eax, eax
jmp 0x477a75
sbb eax, eax
or eax, 1
test eax, eax
jne 0x477d8d
mov al, byte [ebp + 0x260]
cmp al, byte [edi + 0x260]
jne 0x477d8d
mov al, byte [ebp + 0x261]
cmp al, byte [edi + 0x261]
jne 0x477d8d
cmp byte [ebp + 0x258], 0
je 0x477b67
mov eax, dword [ebp + 0xb8]
cmp eax, dword [edi + 0xb8]
jne 0x477d8d
mov eax, dword [ebp + 0xb4]
cmp eax, dword [edi + 0xb4]
jne 0x477d8d
push dword [edi + 0xac]
push dword [ebp + 0xac]
call fcn.00480a30
add esp, 8
test eax, eax
je 0x477d8d
mov al, byte [ebp + 0x25b]
cmp al, byte [edi + 0x25b]
jne 0x477d8d
cmp dword [ebp + 0xb8], 2
jne 0x477b67
mov eax, dword [ebp + 0x2a0]
test byte [eax + 0x4c], 1
je 0x477b3c
lea eax, [edi + 0x214]
push eax
lea eax, [ebp + 0x214]
push eax
call fcn.00476970
add esp, 8
test al, al
je 0x477d8d
cmp dword [edi + 0x1b0], 2
jmp 0x477b61
lea eax, [edi + 0x1d4]
push eax
lea eax, [ebp + 0x1d4]
push eax
call fcn.00476970
add esp, 8
test al, al
je 0x477d8d
cmp dword [edi + 0x190], 2
jne 0x477d8d
cmp byte [esp + 0x30], 0
jne 0x477b77
cmp dword [edi + 0x300], 0
jmp 0x477b8e
cmp dword [edi + 0x300], 0
je 0x477b94
mov eax, dword [edi + 0x2f4]
mov eax, dword [eax]
mov eax, dword [eax + 0x70]
cmp eax, dword [ebx + 0x70]
jne 0x477d8d
mov ecx, dword [ebp + 0x4ec]
test ecx, ecx
jne 0x477ba7
cmp word [ebp + 0x504], cx
je 0x477c0d
mov ax, word [edi + 0x504]
cmp ax, word [ebp + 0x504]
jne 0x477d8d
mov eax, dword [edi + 0x4f0]
cmp eax, dword [ebp + 0x4f0]
jne 0x477d8d
test ecx, ecx
je 0x477c0d
mov eax, dword [edi + 0x4ec]
test eax, eax
je 0x477d8d
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x477c00
test dl, dl
je 0x477bfc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x477c00
add eax, 2
add ecx, 2
test dl, dl
jne 0x477be0
xor eax, eax
jmp 0x477c05
sbb eax, eax
or eax, 1
test eax, eax
jne 0x477d8d
mov esi, dword [ebp + 0x2a0]
mov ebx, dword [esi + 0x4c]
test bl, bl
js 0x477c8d
mov ecx, dword [edi + 0x104]
mov eax, dword [ebp + 0x104]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x477c46
test dl, dl
je 0x477c42
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x477c46
add eax, 2
add ecx, 2
test dl, dl
jne 0x477c26
xor eax, eax
jmp 0x477c4b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x477d89
mov ecx, dword [edi + 0x108]
mov eax, dword [ebp + 0x108]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x477c80
test dl, dl
je 0x477c7c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x477c80
add eax, 2
add ecx, 2
test dl, dl
jne 0x477c60
xor eax, eax
jmp 0x477c85
sbb eax, eax
or eax, 1
test eax, eax
jne 0x477d89
test byte [esi + 0x44], 3
je 0x477cad
cmp byte [edi + 0x114], 0x14
jb 0x477cad
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0xc34], 3
jb 0x477f4f
test bl, 1
jne 0x477cc8
cmp byte [ebp + 0x258], 0
je 0x477cc8
cmp byte [ebp + 0x25b], 0
je 0x477d9d
mov eax, dword [edi + 0x2a0]
push dword [eax]
push dword [esi]
call fcn.00480a60
add esp, 8
test eax, eax
jne 0x477d03
mov eax, dword [edi + 0x2a0]
mov ecx, dword [ebp + 0x2a0]
mov eax, dword [eax + 0x48]
cmp eax, dword [ecx + 0x44]
jne 0x477d89
cmp byte [edi + 0x278], 0
je 0x477d89
cmp byte [ebp + 0x260], 0
je 0x477d1e
push dword [edi + 0x7c]
push dword [ebp + 0x7c]
call fcn.00480a60
add esp, 8
test eax, eax
je 0x477d89
cmp byte [ebp + 0x261], 0
je 0x477d35
mov eax, dword [ebp + 0xcc]
cmp eax, dword [edi + 0xcc]
jne 0x477d89
push dword [edi + 0x64]
push dword [ebp + 0x64]
call fcn.00480a60
add esp, 8
test eax, eax
je 0x477d89
mov eax, dword [ebp + 0xc8]
cmp eax, dword [edi + 0xc8]
jne 0x477d89
mov eax, dword [ebp + 0x2a0]
test byte [eax + 0x4c], 1
je 0x477d9d
lea eax, [edi + 0x1d4]
push eax
lea eax, [ebp + 0x1d4]
push eax
call fcn.00476970
add esp, 8
test al, al
je 0x477d89
cmp dword [edi + 0x190], 2
je 0x477d9d
mov byte [esp + 0x12], 1
mov ebx, dword [esp + 0x2c]
cmp dword [esp + 0x1c], 0
jne 0x477810
jmp 0x477f18
mov bh, byte [esp + 0x13]
test bh, bh
je 0x477e33
mov ecx, dword [edi + 0x104]
mov eax, dword [ebp + 0x104]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x477dd5
test dl, dl
je 0x477dd1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x477dd5
add eax, 2
add ecx, 2
test dl, dl
jne 0x477db5
xor eax, eax
jmp 0x477dda
sbb eax, eax
or eax, 1
test eax, eax
jne 0x477e19
mov ecx, dword [edi + 0x108]
mov eax, dword [ebp + 0x108]
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x477e10
test dl, dl
je 0x477e0c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x477e10
add eax, 2
add ecx, 2
test dl, dl
jne 0x477df0
xor eax, eax
jmp 0x477e15
sbb eax, eax
or eax, 1
test eax, eax
je 0x477e40
cmp dword [edi + 0x310], 0
mov ebx, dword [esp + 0x2c]
jne 0x477d8d
mov dword [esp + 0x14], edi
jmp 0x477d8d
cmp dword [edi + 0x310], 0
jne 0x477d89
mov al, byte [esp + 0x11]
test al, al
je 0x477ed6
mov eax, dword [edi + 0xbc]
test eax, eax
je 0x477d89
mov edx, dword [edi + 0xc0]
test edx, edx
je 0x477d89
mov ecx, dword [ebp + 0xbc]
nop
mov bl, byte [ecx]
cmp bl, byte [eax]
jne 0x477e90
test bl, bl
je 0x477e8c
mov bl, byte [ecx + 1]
cmp bl, byte [eax + 1]
jne 0x477e90
add ecx, 2
add eax, 2
test bl, bl
jne 0x477e70
xor eax, eax
jmp 0x477e95
sbb eax, eax
or eax, 1
test eax, eax
jne 0x477d89
mov eax, dword [ebp + 0xc0]
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x477ec3
test cl, cl
je 0x477ebf
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x477ec3
add eax, 2
add edx, 2
test cl, cl
jne 0x477ea3
xor eax, eax
jmp 0x477ec8
sbb eax, eax
or eax, 1
test eax, eax
jne 0x477d89
mov al, byte [esp + 0x11]
jmp 0x477ee3
cmp dword [edi + 0x314], 0
jne 0x477d89
test bh, bh
jne 0x477eeb
test al, al
je 0x477f56
mov dword [esp + 0x14], edi
test bh, bh
je 0x477efc
cmp dword [edi + 0x310], 0
jne 0x477f11
test al, al
je 0x477d89
cmp dword [edi + 0x314], 0
je 0x477d89
mov eax, dword [esp + 0x38]
mov byte [eax], 1
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x2c]
test edi, edi
je 0x477f78
push edi
push ebx
call fcn.0046f060
add esp, 8
cmp dword [ebx + 0x78], 0
je 0x477f3f
push 5
push ebx
call fcn.004811d0
add esp, 8
mov eax, dword [esp + 0x34]
mov dword [eax], edi
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov ebx, eax
jmp 0x477d8d
cmp byte [esp + 0x30], 0
mov ebx, dword [esp + 0x2c]
je 0x477f20
cmp dword [esp + 0x20], 0
je 0x477f20
push str.Multiplexed_connection_found_
push ebx
call fcn.0047c430
add esp, 8
jmp 0x477f20
cmp dword [ebx + 0x78], 0
je 0x477f89
push 5
push ebx
call fcn.004811d0
add esp, 8
cmp byte [esp + 0x12], 0
je 0x477fae
cmp byte [ebx + 0x731], 0
je 0x477fae
push str.Found_pending_candidate_for_reuse_and_CURLOPT_PIPEWAIT_is_set
push ebx
call fcn.0047c430
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