Function at 0x470310
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x2450
call fcn.004b58d0
mov dword [esp + 0x17c], ecx
call 0x47032f
pop eax
mov dword [esp + 0x30], eax
lea eax, [edx + 4]
mov dword [esp + 0x70], eax
lea eax, [edx + 8]
mov dword [esp + 0x7c], eax
lea eax, [edx + 0x3d]
mov dword [esp + 0x58], eax
mov eax, dword [edx]
lea ecx, [edx + 0x98]
mov dword [esp + 0x38], ecx
lea ecx, [edx + 0xc8]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x84], edx
lea ecx, [edx + 0x9c]
mov dword [esp + 0x80], ecx
lea edi, [esp + 0x430]
lea edx, [eax - 3]
lea ecx, [eax - 2]
cmp edx, 2
mov edx, 0
cmovae ecx, edx
test ecx, ecx
jne 0x471c84
cmp eax, 2
je 0x4750bf
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
cmp eax, 3
je 0x4750bf
test eax, eax
jne 0x471656
mov eax, dword [esp + 0x80]
movups xmm0, xmmword [eax + 0x1c]
movups xmmword [esp + 0x1fc], xmm0
movdqu xmm0, xmmword [eax]
movdqu xmm1, xmmword [eax + 0x10]
movdqa xmmword [esp + 0x1f0], xmm1
movdqa xmmword [esp + 0x1e0], xmm0
mov ecx, 0x14
mov esi, dword [esp + 0x54]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x38]
mov dword [eax], 2
mov eax, dword [esp + 0x454]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x474]
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x470fca
mov ebx, dword [ecx + 0xc]
mov ecx, eax
shl ecx, 6
lea eax, [ecx + eax*4]
add eax, ebx
mov dword [esp + 0x14], eax
xor ecx, ecx
cmp dword [ebx + 0x2c], 0x80000000
je 0x470d37
lea ecx, [esp + 0x1e0]
call fcn.0045bdc3
mov edi, eax
test edx, edx
mov dword [esp + 0x18], ebx
je 0x470543
mov al, byte [edi]
cmp al, 0x5b
jne 0x47054a
add edx, edi
mov dword [esp + 4], 0
mov esi, edi
mov dword [esp + 8], edi
test al, al
js 0x47048f
lea ecx, [esi + 1]
movzx eax, al
jmp 0x470506
mov ecx, eax
and cl, 0x1f
movzx ecx, cl
movzx edi, byte [esi + 1]
and edi, 0x3f
cmp al, 0xdf
jbe 0x4704e6
movzx ebx, byte [esi + 2]
shl edi, 6
and ebx, 0x3f
or ebx, edi
cmp al, 0xf0
jb 0x4704f2
lea eax, [esi + 4]
mov dword [esp + 0xc], eax
movzx eax, byte [esi + 3]
and ecx, 7
shl ecx, 0x12
shl ebx, 6
and eax, 0x3f
or eax, ebx
or eax, ecx
cmp eax, 0x110000
je 0x470fae
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0xc]
jmp 0x470506
mov eax, ecx
lea ecx, [esi + 2]
shl eax, 6
or eax, edi
jmp 0x470502
mov eax, ecx
lea ecx, [esi + 3]
shl eax, 0xc
or ebx, eax
mov eax, ebx
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 8]
mov dword [esp + 0xc], ecx
sub ecx, esi
add ecx, dword [esp + 4]
mov dword [esp], ecx
mov ecx, 0xfffffff8
test ecx, ecx
je 0x470551
lea esi, [ecx + 4]
cmp dword [ecx + str.unknown_proxy_scheme], eax
mov ecx, esi
jne 0x470518
mov esi, dword [esp + 0xc]
cmp esi, edx
je 0x47060d
mov al, byte [esi]
mov ecx, dword [esp]
mov dword [esp + 4], ecx
jmp 0x470483
xor eax, eax
jmp 0x47062c
mov eax, edx
jmp 0x47062c
mov edi, dword [esp]
cmp dword [esp + 0xc], edx
je 0x47061d
mov bl, byte [edx - 1]
test bl, bl
js 0x47056d
lea esi, [edx - 1]
movzx ebx, bl
jmp 0x4705d3
movzx eax, byte [edx - 2]
cmp al, 0xc0
jge 0x4705aa
movzx ecx, byte [edx - 3]
cmp cl, 0xbf
jg 0x4705b2
lea esi, [edx - 4]
mov dword [esp + 0xa0], ecx
movzx ecx, byte [edx - 4]
and ecx, 7
shl ecx, 6
and dword [esp + 0xa0], 0x3f
add dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0xa0]
jmp 0x4705b8
lea esi, [edx - 2]
and eax, 0x1f
jmp 0x4705c0
lea esi, [edx - 3]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or eax, ecx
shl eax, 6
and bl, 0x3f
movzx ebx, bl
or ebx, eax
cmp ebx, 0x110000
je 0x470619
mov eax, 0xfffffff8
test eax, eax
je 0x4705fb
lea ecx, [eax + 4]
cmp dword [eax + str.unknown_proxy_scheme], ebx
mov eax, ecx
jne 0x4705d8
mov edx, esi
cmp dword [esp + 0xc], esi
mov ebx, dword [esp + 0x18]
jne 0x47055e
jmp 0x47061d
sub edi, dword [esp + 0xc]
add edi, edx
mov eax, edi
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 8]
jmp 0x470624
mov dword [esp + 4], 0
xor eax, eax
jmp 0x470624
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 8]
mov eax, dword [esp]
mov ecx, dword [esp + 4]
add edi, ecx
sub eax, ecx
lea ecx, [esp + 0x230]
mov edx, edi
mov dword [esp], eax
push eax
call fcn.0040cbb0
add esp, 4
cmp byte [esp + 0x230], 2
jne 0x470718
mov dword [esp + 8], edi
mov eax, dword [ebx + 0x40]
xor edi, edi
test eax, eax
je 0x470d29
mov ecx, dword [ebx + 0x3c]
mov dword [esp + 0xc], ecx
shl eax, 2
lea eax, [eax + eax*2]
mov dword [esp + 4], eax
mov ecx, dword [esp]
mov eax, dword [esp + 0xc]
mov esi, dword [eax + edi + 4]
mov ebx, dword [eax + edi + 8]
cmp ecx, ebx
jne 0x47069a
push ecx
push dword [esp + 0xc]
push esi
call fcn.004b6b8a
mov ecx, dword [esp + 0xc]
add esp, 0xc
test eax, eax
je 0x470711
test ebx, ebx
je 0x4706c3
cmp byte [esi], 0x2e
jne 0x4706c3
lea eax, [ebx - 1]
cmp eax, ecx
jne 0x4706c3
lea eax, [esi + 1]
push ecx
push dword [esp + 0xc]
push eax
call fcn.004b6b8a
mov ecx, dword [esp + 0xc]
add esp, 0xc
test eax, eax
je 0x470711
mov eax, ecx
sub eax, ebx
jb 0x4706e0
add eax, dword [esp + 8]
push ebx
push eax
push esi
call fcn.004b6b8a
mov ecx, dword [esp + 0xc]
add esp, 0xc
test eax, eax
je 0x4706f8
cmp ebx, 1
jne 0x4706ea
cmp byte [esi], 0x2a
je 0x470711
add edi, 0xc
cmp dword [esp + 4], edi
jne 0x470674
jmp 0x470d31
test ebx, ebx
je 0x470701
cmp byte [esi], 0x2e
je 0x470711
not ebx
add ebx, ecx
jae 0x4706ea
mov eax, dword [esp + 8]
cmp byte [eax + ebx], 0x2e
jne 0x4706ea
mov cl, 1
jmp 0x470d33
mov al, byte [esp + 0x240]
mov byte [esp + 0x260], al
movdqu xmm0, xmmword [esp + 0x230]
movdqa xmmword [esp + 0x250], xmm0
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x470d29
mov esi, dword [ebx + 0x30]
lea eax, [eax + eax*8]
lea edi, [esi + eax*2]
mov al, byte [esp + 0x250]
mov byte [esp], al
mov eax, dword [esp + 0x251]
mov dword [esp + 0x78], eax
mov dword [esp + 0x34], edi
cmp byte [esi], 2
jne 0x4707a2
mov al, byte [esp]
cmp al, byte [esi + 1]
jne 0x470d1e
cmp byte [esp], 0
je 0x470d15
movdqu xmm0, xmmword [esp + 0x251]
movdqu xmm1, xmmword [esi + 2]
pxor xmm1, xmm0
ptest xmm1, xmm1
jne 0x470d1e
jmp 0x470d2d
movzx eax, word [esi + 0x10]
mov word [esp + 0x150], ax
movups xmm0, xmmword [esi]
movaps xmmword [esp + 0x140], xmm0
mov al, byte [esp + 0x240]
lea ecx, [esp + 0x152]
mov byte [ecx + 0x10], al
movdqu xmm0, xmmword [esp + 0x230]
movdqu xmmword [ecx], xmm0
cmp byte [esp + 0x140], 0
mov al, byte [esp + 0x152]
je 0x470c7f
test al, al
je 0x470d1e
mov dword [esp + 0x24], esi
mov eax, dword [esp + 0x14d]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x149]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x141]
mov dword [esp + 0xa0], eax
mov al, byte [esp + 0x151]
mov ah, 0x80
mov byte [esp + 0x40], al
sub ah, al
mov byte [esp + 4], ah
mov cl, ah
and cl, 0x78
mov edx, dword [esp + 0x145]
mov dword [esp + 0x1c], edx
pcmpeqd xmm0, xmm0
movdqu xmmword [esp + 0x640], xmm0
pxor xmm0, xmm0
movdqu xmmword [esp + 0x630], xmm0
mov al, ah
and al, 7
shr cl, 3
neg cl
movsx edi, cl
mov esi, dword [esp + edi + 0x648]
mov edx, dword [esp + edi + 0x64c]
mov ecx, eax
shld edx, esi, cl
shl esi, cl
mov dword [esp + 8], esi
not cl
mov esi, dword [esp + edi + 0x644]
mov ebx, esi
shr ebx, 1
shr ebx, cl
mov edi, dword [esp + edi + 0x640]
mov dword [esp + 0xc], edi
mov ecx, eax
shl edi, cl
mov eax, dword [esp + 0xc]
shld esi, eax, cl
or ebx, dword [esp + 8]
xor ecx, ecx
cmp byte [esp + 4], 0
cmovs ebx, ecx
cmovs edx, ecx
cmovs esi, ecx
cmovs edi, ecx
bswap edx
bswap ebx
bswap edi
bswap esi
and ebx, dword [esp + 0x1c]
and edx, dword [esp + 0xa0]
and esi, dword [esp + 0x10]
and edi, dword [esp + 0xf0]
mov dword [esp + 8], edi
mov eax, ebx
shr eax, 0x10
mov dword [esp + 0x20], eax
mov eax, edx
shr eax, 0x10
mov dword [esp + 4], eax
shr edi, 0x10
mov eax, esi
shr esi, 0x10
mov dword [esp + 0xc], esi
rol dx, 8
mov esi, dword [esp + 4]
rol si, 8
mov dword [esp + 4], esi
rol bx, 8
mov esi, dword [esp + 0x20]
rol si, 8
rol ax, 8
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xc]
rol ax, 8
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
rol ax, 8
mov dword [esp + 8], eax
rol di, 8
mov word [esp + 0xb0], dx
movzx eax, word [esp + 0x153]
rol ax, 8
mov word [esp + 0x20], ax
mov eax, dword [esp + 4]
mov word [esp + 0xb2], ax
movzx eax, word [esp + 0x155]
rol ax, 8
mov word [esp + 4], ax
mov word [esp + 0xb4], bx
movzx eax, word [esp + 0x157]
rol ax, 8
mov word [esp + 0x2c], ax
mov word [esp + 0xb6], si
movzx eax, word [esp + 0x159]
rol ax, 8
mov word [esp + 0x28], ax
mov edx, dword [esp + 0x3c]
mov word [esp + 0xb8], dx
movzx ebx, word [esp + 0x15b]
rol bx, 8
mov edx, dword [esp + 0xc]
mov word [esp + 0xba], dx
movzx esi, word [esp + 0x15d]
rol si, 8
mov edx, dword [esp + 8]
mov word [esp + 0xbc], dx
movzx edx, word [esp + 0x15f]
rol dx, 8
mov word [esp + 0xbe], di
movzx edi, word [esp + 0x161]
rol di, 8
movzx eax, word [esp + 0x20]
mov word [esp + 0xe0], ax
movzx eax, word [esp + 4]
mov word [esp + 0xe2], ax
movzx eax, word [esp + 0x2c]
mov word [esp + 0xe4], ax
movzx eax, word [esp + 0x28]
mov word [esp + 0xe6], ax
mov word [esp + 8], bx
mov word [esp + 0xe8], bx
mov ebx, edx
mov word [esp + 0xc], si
mov word [esp + 0xea], si
mov esi, 0xff
mov word [esp + 0xec], dx
mov word [esp + 0x90], di
mov word [esp + 0xee], di
mov word [esp + 0x3c], dx
cmp ecx, 8
je 0x470aad
movzx edx, word [esp + ecx*2 + 0xb0]
xor eax, eax
cmp dx, word [esp + ecx*2 + 0xe0]
lea ecx, [ecx + 1]
setne al
cmovb eax, esi
test al, al
je 0x470a73
inc al
cmp al, 1
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x34]
ja 0x470d1e
mov al, byte [esp + 0x40]
mov ecx, eax
and cl, 0x78
pxor xmm0, xmm0
movdqu xmmword [esp + 0x620], xmm0
pcmpeqd xmm0, xmm0
movdqu xmmword [esp + 0x610], xmm0
and al, 7
shr cl, 3
movzx ebx, cl
mov ecx, dword [esp + ebx + 0x614]
mov dword [esp + 0x8c], ecx
mov edx, ecx
mov ecx, eax
shr edx, cl
mov dword [esp + 0x88], edx
not cl
mov edi, dword [esp + ebx + 0x618]
lea esi, [edi + edi]
shl esi, cl
mov edx, dword [esp + ebx + 0x61c]
mov ecx, eax
shrd edi, edx, cl
mov ebx, dword [esp + ebx + 0x610]
shr edx, cl
mov eax, dword [esp + 0x8c]
shrd ebx, eax, cl
or esi, dword [esp + 0x88]
xor ecx, ecx
cmp byte [esp + 0x40], 0
cmovs edi, ecx
cmovs esi, ecx
cmovs ebx, ecx
cmovs edx, ecx
bswap edi
or edi, dword [esp + 0x1c]
bswap esi
or esi, dword [esp + 0x10]
bswap ebx
or ebx, dword [esp + 0xf0]
bswap edx
or edx, dword [esp + 0xa0]
movzx eax, word [esp + 0x20]
mov word [esp + 0xb0], ax
movzx eax, word [esp + 4]
mov word [esp + 0xb2], ax
movzx eax, word [esp + 0x2c]
mov word [esp + 0xb4], ax
movzx eax, word [esp + 0x28]
mov word [esp + 0xb6], ax
movzx eax, word [esp + 8]
mov word [esp + 0xb8], ax
movzx eax, word [esp + 0xc]
mov word [esp + 0xba], ax
movzx eax, word [esp + 0x3c]
mov word [esp + 0xbc], ax
movzx eax, word [esp + 0x90]
mov word [esp + 0xbe], ax
mov eax, edx
rol dx, 8
mov word [esp + 0xe0], dx
shr eax, 0x10
rol ax, 8
mov word [esp + 0xe2], ax
mov eax, edi
rol di, 8
mov word [esp + 0xe4], di
mov edi, dword [esp + 0x34]
shr eax, 0x10
rol ax, 8
mov word [esp + 0xe6], ax
mov eax, esi
rol si, 8
mov word [esp + 0xe8], si
shr eax, 0x10
rol ax, 8
mov word [esp + 0xea], ax
mov eax, ebx
rol bx, 8
mov word [esp + 0xec], bx
mov ebx, dword [esp + 0x18]
mov esi, 0xff
shr eax, 0x10
rol ax, 8
mov word [esp + 0xee], ax
cmp ecx, 8
je 0x470d2d
movzx edx, word [esp + ecx*2 + 0xb0]
xor eax, eax
cmp dx, word [esp + ecx*2 + 0xe0]
lea ecx, [ecx + 1]
setne al
cmovb eax, esi
test al, al
je 0x470c44
inc al
cmp al, 2
mov esi, dword [esp + 0x24]
jae 0x470d1e
jmp 0x470d2d
test al, al
jne 0x470d1e
mov edx, dword [esp + 0x141]
mov al, byte [esp + 0x145]
mov byte [esp + 8], al
movzx eax, al
mov edi, 0x20
mov ecx, eax
neg ecx
mov dword [esp + 0x24], esi
xor esi, esi
dec esi
shl esi, cl
sub edi, eax
cmp edi, 0x20
mov ecx, 0
cmovae esi, ecx
mov ecx, dword [esp + 0x153]
bswap edx
and esi, edx
bswap ecx
mov edi, ebx
xor ebx, ebx
cmp esi, ecx
mov esi, dword [esp + 0x24]
seta bl
sbb ebx, 0
test ebx, ebx
mov ebx, edi
mov edi, dword [esp + 0x34]
jg 0x470d1e
xor esi, esi
dec esi
mov ecx, eax
shr esi, cl
cmp byte [esp + 8], 0x20
mov eax, 0
cmovae esi, eax
mov eax, dword [esp + 0x153]
bswap eax
or esi, edx
xor ecx, ecx
cmp eax, esi
mov esi, dword [esp + 0x24]
seta cl
sbb ecx, 0
test ecx, ecx
jg 0x470d1e
jmp 0x470d2d
mov eax, dword [esp + 0x78]
cmp eax, dword [esi + 2]
je 0x470d2d
add esi, 0x12
cmp esi, edi
jne 0x470765
xor ecx, ecx
jmp 0x470d37
mov cl, 1
jmp 0x470d37
xor ecx, ecx
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx]
mov eax, dword [eax*4 + 0x47547c]
add eax, dword [esp + 0x30]
jmp eax
mov dword [esp], 0
mov edi, dword [esp + 4]
mov dword [esp + 4], 0
mov ebx, dword [esp + 0x18]
jmp 0x470554
mov esi, dword [esp + 0x444]
lock inc dword [esi]
jle 0x47507c
mov eax, dword [esp + 0x448]
lock inc dword [eax]
jle 0x47507c
mov ecx, dword [esp + 0x44c]
cmp dword [esp + 0x430], 0
mov dword [esp], eax
mov dword [esp + 8], ecx
je 0x47101c
push dword [esp + 0x434]
call dword [sym.imp.crypt32.dll_CertDuplicateCertificateContext]
mov dword [esp + 0x3c], eax
xor eax, eax
inc eax
mov dword [esp + 0xc], eax
jmp 0x471024
mov dword [esp + 0xc], 0
push dword [esp + 0x438]
call dword [sym.imp.crypt32.dll_CertDuplicateStore]
mov dl, byte [esp + 0x440]
mov cl, byte [esp + 0x441]
mov bl, byte [esp + 0x43c]
mov bh, byte [esp + 0x43d]
mov ch, byte [esp + 0x43e]
mov dh, byte [esp + 0x43f]
mov edi, dword [esp + 0x474]
lock inc dword [edi]
jle 0x47507c
mov byte [esp + 0x34], bl
mov byte [esp + 0x28], dh
mov byte [esp + 0x2c], ch
mov dword [esp + 0x1c], eax
mov byte [esp + 0x14], cl
mov byte [esp + 0x18], dl
mov dword [esp + 4], esi
mov al, byte [esp + 0x478]
mov byte [esp + 0xa0], al
mov eax, dword [esp + 0x458]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x40], eax
mov al, byte [esp + 0x479]
mov byte [esp + 0xf0], al
mov al, byte [esp + 0x47a]
mov byte [esp + 0x10], al
mov bl, 2
cmp byte [esp + 0x470], 2
je 0x47110c
mov eax, dword [esp + 0x460]
push dword [esp + 0x468]
push dword [esp + 0x468]
lea ecx, [esp + 0x474]
push ecx
lea ecx, [esp + 0x14c]
push ecx
call dword [eax]
add esp, 0x10
mov bl, byte [esp + 0x470]
movups xmm0, xmmword [esp + 0x140]
lea eax, [esp + 0x294]
movups xmmword [eax], xmm0
movups xmm0, xmmword [esp + 0x1fc]
lea eax, [esp + 0x11b8]
movups xmmword [eax + 0x1c], xmm0
movaps xmm0, xmmword [esp + 0x1e0]
movdqa xmm1, xmmword [esp + 0x1f0]
movdqu xmmword [eax + 0x10], xmm1
movups xmmword [eax], xmm0
mov al, byte [0x530b2c]
xor ecx, ecx
mov edx, 0x310
call fcn.0049cbc0
test eax, eax
je 0x475092
mov esi, eax
mov eax, dword [esp + 0xc]
mov dword [esi], eax
mov eax, dword [esp + 0x3c]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + 8], eax
mov al, byte [esp + 0x34]
mov byte [esi + 0xc], al
mov byte [esi + 0xd], bh
mov al, byte [esp + 0x2c]
mov byte [esi + 0xe], al
mov al, byte [esp + 0x28]
mov byte [esi + 0xf], al
mov al, byte [esp + 0x18]
mov byte [esi + 0x10], al
mov al, byte [esp + 0x14]
mov byte [esi + 0x11], al
mov eax, dword [esp + 4]
mov dword [esi + 0x14], eax
mov eax, dword [esp]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 8]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x24]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x40]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x20]
mov dword [esi + 0x28], eax
movdqu xmm0, xmmword [esp + 0x290]
movdqu xmmword [esi + 0x2c], xmm0
mov eax, dword [esp + 0x2a0]
mov dword [esi + 0x3c], eax
mov byte [esi + 0x40], bl
mov dword [esi + 0x44], edi
mov al, byte [esp + 0xa0]
mov byte [esi + 0x48], al
mov al, byte [esp + 0xf0]
mov byte [esi + 0x49], al
mov al, byte [esp + 0x10]
mov byte [esi + 0x4a], al
lea eax, [esi + 0x50]
push 0x84
lea ecx, [esp + 0x1164]
push ecx
push eax
call fcn.004b64b0
add esp, 0xc
mov word [esi + 0x150], 0
mov eax, dword [esp + 0xd0]
mov dword [esi + 0x15c], eax
mov eax, dword [esp + 0xd4]
mov dword [esi + 0x158], eax
mov eax, dword [esp + 0x74]
mov dword [esi + 0x160], eax
mov eax, esi
add eax, 0x168
mov edi, 0x4f54fc
jmp 0x471614
mov byte [eax], 0
mov ecx, dword [esp + 0x38]
call fcn.0046b0b9
mov ebx, dword [esp + 0x84]
mov dword [ebx + 0x98], 1
mov dword [ebx + 0x9c], esi
mov dword [ebx + 0xa0], edi
lea edi, [esp + 0x430]
mov ecx, edi
call fcn.0046b109
mov eax, dword [ebx + 0x98]
jmp 0x4703ab
cmp eax, 1
jne 0x47507e
mov ecx, dword [esp + 0x84]
mov eax, dword [ecx + 0xa0]
push dword [ebp + 8]
push dword [ecx + 0x9c]
lea ecx, [esp + 0x220]
push ecx
call dword [eax + 0xc]
add esp, 0xc
mov bl, byte [esp + 0x221]
cmp bl, 3
je 0x4745d4
mov eax, dword [esp + 0x38]
cmp dword [eax], 3
je 0x4750e7
mov esi, dword [esp + 0x218]
mov edi, dword [esp + 0x21c]
mov bh, byte [esp + 0x220]
movzx eax, word [esp + 0x222]
mov word [esp + 0xa0], ax
mov ecx, dword [esp + 0x38]
call fcn.0045f3aa
mov eax, dword [esp + 0x38]
mov dword [eax], 3
mov byte [esp + 8], bl
cmp bl, 2
jne 0x47170d
mov byte [esp + 4], bh
mov ecx, 7
call fcn.00426cc9
mov ebx, eax
cmp dword [eax], 0
je 0x4716ff
push ebx
call fcn.00427ed0
add esp, 4
mov dword [ebx], esi
mov dword [esp], ebx
mov dword [ebx + 4], edi
mov bh, byte [esp + 4]
jmp 0x471710
mov dword [esp], esi
mov eax, dword [esp + 0x84]
mov esi, dword [eax]
cmp esi, 2
lea eax, [esp + 0x1bf0]
je 0x4750ef
mov dword [esp + 0xc], edi
push 0x94
push dword [esp + 0x74]
push eax
call fcn.004b64b0
add esp, 0xc
mov eax, dword [esp + 0x38]
cmp dword [eax], 3
je 0x471751
mov ecx, dword [esp + 0x38]
call fcn.0045f3aa
mov eax, dword [esp + 0x84]
mov dword [eax], 2
mov dword [esp + 0x1160], esi
push 0x94
lea edi, [esp + 0x1bf4]
push edi
lea eax, [esp + 0x116c]
push eax
call fcn.004b64b0
add esp, 0xc
mov bl, byte [esp + 8]
cmp bl, 2
jne 0x47179e
lea ecx, [esp + 0x1160]
call fcn.004603db
mov bl, 5
jmp 0x471b1f
mov dword [esp + 0x680], esi
push 0x94
push edi
lea eax, [esp + 0x68c]
push eax
call fcn.004b64b0
add esp, 0xc
mov esi, dword [esp]
push esi
lea edi, [esp + 0x434]
push edi
mov eax, dword [esp + 0x14]
call dword [eax + 0x28]
add esp, 8
mov byte [esp + 0x43d], bh
test bl, bl
je 0x4718a0
push esi
lea eax, [esp + 0x1e4]
push eax
mov eax, dword [esp + 0x14]
call dword [eax + 0x3c]
add esp, 8
cmp dword [esp + 0x1e0], 0x80000001
je 0x4718a0
mov esi, dword [esp + 0x430]
test esi, esi
je 0x47185a
mov edi, dword [esp + 0x434]
mov al, byte [0x530b2c]
xor ecx, ecx
mov edx, 0x14
call fcn.0049cbc0
test eax, eax
je 0x47511f
mov ecx, dword [esp + 0x1e8]
mov dword [eax + 8], ecx
movsd xmm0, qword [esp + 0x1e0]
movsd qword [eax], xmm0
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], edi
mov ecx, 0x4f5f74
lea edi, [esp + 0x430]
jmp 0x47188f
mov al, byte [0x530b2c]
xor ecx, ecx
mov edx, 0xc
call fcn.0049cbc0
test eax, eax
je 0x47515b
mov ecx, dword [esp + 0x1e8]
mov dword [eax + 8], ecx
movsd xmm0, qword [esp + 0x1e0]
movsd qword [eax], xmm0
mov ecx, 0x4f5a44
mov esi, dword [esp]
mov dword [esp + 0x430], eax
mov dword [esp + 0x434], ecx
movups xmm0, xmmword [esp + 0x430]
movaps xmmword [esp + 0x140], xmm0
mov cl, byte [esp + 0x14c]
mov al, byte [esp + 0x710]
mov edx, ecx
or dl, al
jne 0x471964
lea eax, [esp + 0x700]
movups xmm0, xmmword [eax - 0x10]
movups xmm1, xmmword [eax - 4]
movups xmmword [esp + 0x43c], xmm1
movaps xmmword [esp + 0x430], xmm0
lea ecx, [esp + 0x1e0]
lea edx, [esp + 0x70c]
push 1
push edi
call fcn.0044e9e3
add esp, 8
mov ecx, edi
call fcn.0046042d
cmp byte [esp + 0x1e0], 3
jne 0x47199c
mov ecx, 4
call fcn.00426cc9
mov edi, eax
mov ecx, eax
mov edx, str.ALPN_upgraded_to_HTTP_2main.rs_srcclientclient.rsgwO
push 0x17
call fcn.00426d31
add esp, 4
lea ecx, [esp + 0x140]
call fcn.00469208
push esi
mov esi, dword [esp + 0x10]
call dword [esi]
add esp, 4
cmp dword [esi + 4], 0
je 0x471c19
cmp dword [esi + 8], 9
jae 0x471c04
mov eax, dword [esp]
jmp 0x471c0a
lea edx, [esp + 0x700]
movups xmm0, xmmword [edx - 0x10]
movups xmm1, xmmword [edx - 4]
movups xmmword [esp + 0x19c], xmm1
movaps xmmword [esp + 0x190], xmm0
test cl, cl
je 0x4719bc
test al, al
jne 0x4719bc
mov byte [esp + 4], bh
mov dword [esp], esi
mov dword [esp + 0x18], 0
jmp 0x4719d1
movups xmm0, xmmword [esp + 0x1e0]
movups xmm1, xmmword [esp + 0x1ec]
movups xmmword [esp + 0x19c], xmm1
movaps xmmword [esp + 0x190], xmm0
mov byte [esp + 4], bh
mov dword [esp], esi
mov byte [esp + 0x6e0], 1
mov al, 1
mov dword [esp + 0x18], eax
mov ecx, 0x1a
mov ebx, edi
lea esi, [esp + 0x680]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x6e8]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x6ec]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x70c]
mov dword [esp + 0x14], eax
movaps xmm0, xmmword [esp + 0x140]
lea eax, [esp + 0x46c]
movups xmmword [eax + 0x2c], xmm0
mov al, byte [0x530b2c]
xor ecx, ecx
mov edx, 0x2f0
call fcn.0049cbc0
test eax, eax
je 0x475110
mov edx, eax
mov ecx, 0x1e
mov edi, eax
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xf0]
mov dword [edx + 0x78], eax
mov eax, dword [esp + 0x10]
mov dword [edx + 0x7c], eax
mov eax, dword [esp]
mov dword [edx + 0x80], eax
mov eax, dword [esp + 0xc]
mov dword [edx + 0x84], eax
mov al, byte [esp + 4]
mov byte [edx + 0x88], al
mov al, byte [esp + 8]
mov byte [edx + 0x89], al
movzx eax, word [esp + 0xa0]
mov word [edx + 0x8a], ax
movaps xmm0, xmmword [esp + 0x190]
movups xmmword [edx + 0x8c], xmm0
movups xmm0, xmmword [esp + 0x19c]
movups xmmword [edx + 0x98], xmm0
mov eax, dword [esp + 0x14]
mov dword [edx + 0xa8], eax
mov eax, dword [esp + 0x18]
mov byte [edx + 0xac], al
mov byte [edx + 0xad], 0
mov bl, 4
movups xmm0, xmmword [esp + 0x680]
movups xmm1, xmmword [esp + 0x690]
movaps xmmword [esp + 0x430], xmm0
movaps xmmword [esp + 0x440], xmm1
movups xmm0, xmmword [esp + 0x6a0]
movaps xmmword [esp + 0x450], xmm0
mov eax, dword [esp + 0x6b0]
mov dword [esp + 0x460], eax
movzx eax, word [esp + 0x1e0]
mov word [esp + 0x190], ax
mov al, byte [esp + 0x1e2]
mov byte [esp + 0x192], al
mov dword [esp], edx
movaps xmm0, xmmword [esp + 0x430]
movdqa xmm1, xmmword [esp + 0x440]
movaps xmmword [esp + 0x390], xmm0
movdqa xmmword [esp + 0x3a0], xmm1
movdqa xmm0, xmmword [esp + 0x450]
movdqa xmmword [esp + 0x3b0], xmm0
mov eax, dword [esp + 0x460]
mov dword [esp + 0x3c0], eax
movzx eax, word [esp + 0x190]
mov word [esp + 0x1d8], ax
mov al, byte [esp + 0x192]
mov byte [esp + 0x1da], al
mov esi, dword [esp + 0x84]
mov ecx, esi
call 0x475490
cmp bl, 5
lea edi, [esp + 0x430]
je 0x471cfb
mov dword [esi], 3
mov eax, dword [esp]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x3c0]
mov ecx, dword [esp + 0x7c]
mov dword [ecx + 0x30], eax
movaps xmm0, xmmword [esp + 0x3b0]
movups xmmword [ecx + 0x20], xmm0
movdqa xmm0, xmmword [esp + 0x390]
movdqa xmm1, xmmword [esp + 0x3a0]
movdqu xmmword [ecx + 0x10], xmm1
movdqu xmmword [ecx], xmm0
mov byte [esi + 0x3c], bl
mov al, byte [esp + 0x1da]
mov ecx, dword [esp + 0x58]
mov byte [ecx + 2], al
movzx eax, word [esp + 0x1d8]
mov word [ecx], ax
mov eax, 3
jmp 0x47037a
mov eax, dword [esp]
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x530ac8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x70c]
test eax, eax
mov edx, edi
je 0x471c39
lock dec dword [eax]
jne 0x471c39
mov ecx, dword [esp + 0x70c]
call fcn.00475772
mov edx, edi
mov eax, dword [esp + 0x6d0]
test eax, eax
je 0x471c57
lock dec dword [eax]
jne 0x471c57
lea ecx, [esp + 0x6d0]
call fcn.0046b199
mov edx, edi
mov eax, dword [esp + 0x6e8]
mov bl, 2
test eax, eax
je 0x471ac0
lock dec dword [eax]
jne 0x471ac0
lea ecx, [esp + 0x6e8]
call fcn.0046b199
mov edx, edi
jmp 0x471ac0
cmp ecx, 1
jne 0x4750d3
mov edi, dword [esp + 0x84]
mov bl, byte [edi + 0x3c]
cmp bl, 4
jne 0x471d08
mov eax, dword [esp + 0x70]
mov ebx, dword [eax]
movzx eax, byte [ebx + 0xad]
mov ecx, dword [esp + 0x30]
add ecx, dword [eax*4 + 0x475468]
mov dword [esp + 8], ebx
jmp ecx
mov dword [esi], 4
mov bl, 2
jmp 0x47472d
mov byte [edi + 0x3c], 3
cmp bl, 3
je 0x47516a
mov eax, dword [edi + 4]
mov dword [esp], eax
mov ecx, dword [esp + 0x58]
movzx eax, word [ecx]
mov word [esp + 0x122], ax
mov esi, dword [edi + 8]
movups xmm0, xmmword [edi + 0xc]
movaps xmmword [esp + 0x600], xmm0
movdqu xmm0, xmmword [edi + 0x1c]
movdqu xmm1, xmmword [edi + 0x28]
movdqu xmmword [esp + 0x41c], xmm1
movdqa xmmword [esp + 0x410], xmm0
mov al, byte [ecx + 2]
mov byte [esp + 0x124], al
mov eax, dword [edi + 0x38]
mov dword [esp + 0xc], eax
jmp 0x4746ce
mov eax, dword [esp + 0x17c]
mov byte [eax + 0x38], 3
jmp 0x47477e
mov byte [eax + 0xad], 1
mov edi, dword [esp + 0x84]
movaps xmm0, xmmword [esp + 0x600]
movaps xmmword [esp + 0x670], xmm0
movaps xmm0, xmmword [esp + 0x410]
movaps xmmword [esp + 0x650], xmm0
movups xmm0, xmmword [esp + 0x41c]
movups xmmword [esp + 0x65c], xmm0
movzx eax, word [esp + 0x122]
mov word [esp + 0x11a], ax
mov al, byte [esp + 0x124]
mov byte [esp + 0x11c], al
mov ecx, edi
call 0x475490
mov dword [edi], 4
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x17c]
mov eax, dword [esp]
mov dword [ecx], eax
mov dword [ecx + 4], esi
movaps xmm0, xmmword [esp + 0x670]
movups xmmword [ecx + 8], xmm0
movaps xmm0, xmmword [esp + 0x650]
movups xmmword [ecx + 0x18], xmm0
movdqu xmm0, xmmword [esp + 0x65c]
movdqu xmmword [ecx + 0x24], xmm0
mov dword [ecx + 0x34], edx
mov byte [ecx + 0x38], bl
movzx eax, word [esp + 0x11a]
mov word [ecx + 0x39], ax
mov al, byte [esp + 0x11c]
mov byte [ecx + 0x3b], al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov al, byte [edi + 0xc]
test al, al
jne 0x4753c5
add edi, 0x10
movzx esi, byte [esp + 0x390]
test esi, esi
mov dword [esp + 0xc], ecx
je 0x474ea7
cmp esi, 2
jne 0x474eab
call fcn.00426adc
mov ebx, eax
mov eax, dword [esp + 0x394]
lea ecx, [eax + 0xc]
mov edx, dword [eax]
push dword [eax + 8]
push dword [eax + 4]
push ecx
lea eax, [esp + 0x116c]
push eax
call dword [edx]
add esp, 0x10
movdqu xmm0, xmmword [esp + 0x1160]
movdqu xmmword [ebx], xmm0
xor eax, eax
jmp 0x474eb6
mov eax, esi
jmp 0x474eb6
movzx eax, byte [esp + 0x391]
shl eax, 8
or eax, esi
lea ecx, [esp + 0x1168]
mov dword [ecx - 8], eax
mov dword [ecx - 4], ebx
lea eax, [esp + 0x3a4]
mov edx, dword [eax - 0xc]
push dword [eax - 4]
push dword [eax - 8]
push eax
push ecx
call dword [edx]
add esp, 0x10
lea edx, [esp + 0x1160]
mov ecx, edi
push dword [esp + 4]
lea eax, [esp + 0x1bf4]
push eax
call fcn.0044ee28
add esp, 8
lea ebx, [esp + 0x390]
mov ecx, edi
mov edx, ebx
call fcn.0044db71
mov eax, dword [ebx + 0x18]
lea ecx, [eax + 1]
cmp ecx, 2
jae 0x47505e
mov dword [esp + 0x3a8], 0
lea eax, [esp + 0x69c]
movdqu xmm0, xmmword [eax]
movdqu xmm1, xmmword [eax + 0xc]
movdqa xmmword [esp + 0x1160], xmm0
movdqu xmmword [esp + 0x116c], xmm1
movzx edx, byte [esp + 0xc]
mov ecx, dword [esp]
call fcn.00426b01
xor edx, edx
movzx ebx, byte [esp + 0x390]
test ebx, ebx
mov dword [esp + 0xc], edx
je 0x474fa6
cmp ebx, 2
jne 0x474fab
call fcn.00426adc
mov esi, eax
mov eax, dword [esp + 0x394]
lea ecx, [eax + 0xc]
mov edx, dword [eax]
push dword [eax + 8]
push dword [eax + 4]
push ecx
lea eax, [esp + 0x68c]
push eax
call dword [edx]
add esp, 0x10
movdqu xmm0, xmmword [esp + 0x680]
movdqu xmmword [esi], xmm0
mov dword [esp], 0
jmp 0x474fb9
mov dword [esp], ebx
jmp 0x474fb9
movzx eax, byte [esp + 0x391]
shl eax, 8
mov dword [esp], eax
lea eax, [esp + 0x3a4]
mov ecx, dword [eax - 0xc]
lea edx, [esp + 0x600]
push dword [eax - 4]
push dword [eax - 8]
push eax
push edx
call dword [ecx]
add esp, 0x10
movups xmm0, xmmword [esp + 0x116c]
movups xmmword [esp + 0x41c], xmm0
movdqa xmm0, xmmword [esp + 0x1160]
movdqa xmmword [esp + 0x410], xmm0
lea ecx, [esp + 0x390]
call fcn.0046042d
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x50]
test eax, eax
je 0x47501d
lock dec dword [eax]
jne 0x47501d
lea ecx, [edi + 0x50]
call fcn.0046b199
mov eax, dword [edi + 0x78]
test eax, eax
je 0x475035
lock dec dword [eax]
jne 0x475035
mov eax, dword [esp + 8]
lea ecx, [eax + 0x78]
call fcn.0046b199
mov ecx, dword [esp]
or ecx, ebx
mov edx, dword [esp + 4]
mov eax, dword [edx]
test eax, eax
mov dword [esp], ecx
je 0x475053
lock dec dword [eax]
jne 0x475053
mov ecx, dword [edx]
call fcn.00475772
xor ebx, ebx
mov eax, dword [esp + 8]
jmp 0x4746c0
lock dec dword [eax + 4]
jne 0x474f18
push eax
push 0
push dword [0x530ac8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x474f18
ud2
mov ecx, str.internal_error:_entered_unreachable_codemain.rs_src_runtime_blocking_schedule.rs
mov edx, 0x28
push 0x4f7d08
call fcn.004cb970
mov ecx, 8
mov edx, 0x310
call fcn.004cb610
call fcn.004ce8a0
mov ecx, eax
xor cl, 1
jmp 0x47490f
mov ecx, 0x4f686c
mov edx, 0x36
push 0x4f68a4
call fcn.004cf119
mov ecx, str.TryFlatten_polled_after_completionmain.rs_src_future_try_future_try_flatten.rs
mov edx, 0x22
push 0x4f6d40
call fcn.004cf119
mov dword [eax], 3
jmp 0x4750fc
mov eax, dword [esp + 0x84]
mov dword [eax], 2
mov ecx, str.internal_error:_entered_unreachable_codemain.rs_src_runtime_blocking_schedule.rs
mov edx, 0x28
push 0x4f685c
call fcn.004cb970
mov ecx, 8
mov edx, 0x2f0
call fcn.004cb610
mov ecx, 4
mov edx, 0x14
call fcn.004cb610
lea ecx, [esp + 0x680]
mov dword [ecx], str.mid___len
mov dword [ecx + 4], 1
xor eax, eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 8], str._rustc_a4472498d7e88041f6206faf4503eb1f246fd427librarycore_src_sync_atomic.rsthere_is_no_such_thing_as_an_acquire_store
mov dword [ecx + 0xc], eax
mov edx, 0x4f5344
call fcn.004cb8c0
mov ecx, 4
mov edx, 0xc
call fcn.004cb610
mov ecx, 0x4f7c62
mov edx, 0x1d
push 0x4f7c9c
call fcn.004cbd20
call fcn.004cbdef
mov ecx, 0x40
mov edx, 0x100
call fcn.004cb610
mov ecx, 4
mov edx, 0x18
call fcn.004cb610
mov ecx, 0x4f76b0
call fcn.004cbd00
mov ecx, str.assertion_failed:_DEFAULT_MAX_FRAME_SIZE___val__val___MAX_MAX_FRAME_SIZEmain.rs_src_frame_settings.rs
mov edx, 0x4c
push 0x4e1504
call fcn.004cb970
mov ecx, str._async_fn__resumed_after_completionmain.rs_srcclientconn.rs
mov edx, 0x23
push 0x4f4be0
call fcn.004cb970
mov ecx, str._async_fn__resumed_after_completionmain.rs_srcclientconn.rs
mov edx, 0x23
push 0x4f4adc
call fcn.004cb970
mov byte [esp + 0x1160], al
mov ecx, str.invalid_SETTINGS_frame
mov edx, 0x16
push 0x4f482c
push 0x4f48a4
push edi
call fcn.004cbc80
mov ecx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_a4472498d7e88041f6206faf4503eb1f246fd427library_std_src_threadlocal.rs
mov edx, 0x46
push 0x4fd9d0
push 0x4d6450
jmp 0x47526c
lea eax, [esp + 0x1bf8]
push eax
call fcn.004cbc80
mov dword [esp + 0x1160], 0x4f4a60
mov dword [esp + 0x1164], 0x409d00
lea ecx, [esp + 0x680]
mov dword [ecx], str.The_max_buf_size_cannot_be_smaller_than__JO
mov dword [ecx + 4], 2
mov dword [ecx + 0x10], 0
lea eax, [esp + 0x1160]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 1
mov edx, 0x4f4a64
call fcn.004cb8c0
mov ecx, 8
mov edx, 0x138
call fcn.004cb610
mov ecx, str._async_fn__resumed_after_completionmain.rs_srcclientconn.rs
mov edx, 0x23
push 0x4f4a9c
call fcn.004cb970
mov ecx, 0x4f6d50
mov edx, 0x5e
push 0x4f6dd0
call fcn.004cb970
mov ecx, 0x4fc9f0
call fcn.004cbc30
mov ecx, 0x4f76c0
call fcn.004cbd00
mov eax, dword [esp + 0x1160]
not eax
test al, 6
je 0x47542a
lea ecx, [esp + 0x1160]
call fcn.0045fd20
jmp 0x47542a
mov eax, dword [esp]
mov dword [esp + 0x1160], eax
mov byte [esp + 0x1164], cl
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x4f4afc
push 0x4f4914
lea eax, [esp + 0x1168]
jmp 0x475273
mov al, 1
jmp 0x475443
lea ecx, [esp + 0x680]
mov byte [ecx], al
mov edx, 0x4f7858
call fcn.004cd600
mov ecx, 0x40
mov edx, 0xac0
call fcn.004cb610
nop
nop
nop
mov ebx, dword [ecx]
add byte [eax], al
nop
dec esi
add byte [eax], al
dec ebp
dec ebp
add byte [eax], al
je 0x475490
add byte [eax], al
cmp al, 0x1a
add byte [eax], al
pop ss
or al, byte [eax]
add byte [eax + 0x5200000b], dh
or al, byte [eax]
add byte [edx + ecx + 0xa240000], cl
add byte [eax], al