Function at 0x808210
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xe10
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
push 0x2bdf
call sym.adb.exe_OPENSSL_malloc
add esp, 4
test eax, eax
je 0x808bc8
mov esi, dword [ebp + 0x10]
neg edi
and edi, 0xf
mov ecx, ebx
neg ecx
and ecx, 0xf
add ecx, ebx
mov edx, eax
neg edx
and edx, 0x1f
movdqu xmm0, xmmword [esi + 0x578]
movdqu xmm1, xmmword [esi + 0x588]
movdqu xmmword [ecx + 0x6f0], xmm1
mov dword [esp + 0x2c], ecx
movdqu xmmword [ecx + 0x6e0], xmm0
lea ebx, [eax + edx]
add ebx, 0x15c0
lea ecx, [esi + 0x2bc]
mov dword [esp + 0x60], ecx
cmp ebx, ecx
mov esi, eax
mov eax, dword [ebp + 8]
mov dword [esp + 4], edx
mov dword [esp + 8], esi
jae 0x8082b6
mov ecx, dword [esp + 4]
lea edx, [esi + ecx]
add edx, 0x1b38
xor ecx, ecx
cmp edx, dword [ebp + 0x10]
mov edx, dword [esp + 4]
ja 0x80833c
xor ecx, ecx
pxor xmm0, xmm0
movdqa xmm1, xmmword [0x93f500]
movdqa xmm2, xmmword [0x93f510]
pcmpeqd xmm3, xmm3
movdqa xmm4, xmmword [0x93f520]
mov esi, dword [ebp + 0x10]
nop dword [eax + eax]
movq xmm5, qword [esi + ecx]
punpcklbw xmm5, xmm0
movdqa xmm6, xmm5
pmulhw xmm6, xmm1
pmullw xmm6, xmm2
paddw xmm6, xmm5
movdqa xmm5, xmm6
psraw xmm5, 1
pand xmm5, xmm6
paddw xmm5, xmm3
pand xmm5, xmm6
movdqa xmm6, xmm5
psrlw xmm6, 1
pxor xmm6, xmm4
paddw xmm6, xmm3
por xmm6, xmm5
movdqu xmmword [ebx + ecx*2], xmm6
add ecx, 8
cmp ecx, 0x2b8
jne 0x8082e0
mov ecx, 0x2b8
mov esi, dword [esp + 8]
add eax, edi
mov dword [esp + 0x58], eax
lea edi, [esi + edx]
mov esi, dword [ebp + 0x10]
nop dword [eax + eax]
movzx eax, byte [esi + ecx]
imul edx, eax, 0x5555
shr edx, 0x10
lea edx, [edx + edx*2]
sub eax, edx
movsx edx, ax
sar edx, 1
and edx, eax
dec edx
and edx, eax
movzx eax, dx
mov edx, eax
shr edx, 1
xor edx, 1
dec edx
or edx, eax
mov word [ebx + ecx*2], dx
inc ecx
cmp ecx, 0x2bc
jne 0x808350
mov dword [esp + 0x30], ebx
mov ecx, dword [esp + 4]
mov esi, dword [esp + 8]
mov dword [esi + ecx + 0x1b3c], 0
mov dword [esi + ecx + 0x1b38], 0
movzx eax, word [esi + ecx + 0x15c0]
movd xmm2, eax
pslldq xmm2, 0xe
lea eax, [esi + ecx]
add eax, 0x15d2
pxor xmm0, xmm0
xor ecx, ecx
pxor xmm1, xmm1
nop dword [eax + eax]
movdqu xmm3, xmmword [eax + ecx*2 - 0x10]
movdqa xmm4, xmm3
pslldq xmm4, 2
psrldq xmm2, 0xe
por xmm2, xmm4
pmullw xmm2, xmm3
paddw xmm0, xmm2
movdqu xmm2, xmmword [eax + ecx*2]
psrldq xmm3, 0xe
movdqa xmm4, xmm2
pslldq xmm4, 2
por xmm4, xmm3
pmullw xmm4, xmm2
paddw xmm1, xmm4
add ecx, 0x10
cmp ecx, 0x2b0
jne 0x8083d0
pextrw eax, xmm2, 7
paddw xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddw xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddw xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
paddw xmm0, xmm1
movd edx, xmm0
mov ebx, dword [esp + 4]
movzx ecx, word [esi + ebx + 0x1b22]
imul eax, ecx
add eax, edx
movzx edx, word [esi + ebx + 0x1b24]
imul ecx, edx
add ecx, eax
movzx eax, word [esi + ebx + 0x1b26]
imul edx, eax
add edx, ecx
movzx ecx, word [esi + ebx + 0x1b28]
imul eax, ecx
add eax, edx
movzx edx, word [esi + ebx + 0x1b2a]
imul ecx, edx
add ecx, eax
mov eax, esi
movzx esi, word [esi + ebx + 0x1b2c]
imul edx, esi
add edx, ecx
movzx ecx, word [eax + ebx + 0x1b2e]
imul esi, ecx
add esi, edx
mov edx, eax
movzx eax, word [eax + ebx + 0x1b30]
imul ecx, eax
add ecx, esi
mov esi, edx
movzx edx, word [edx + ebx + 0x1b32]
mov dword [esp + 0x10], edx
imul eax, edx
add eax, ecx
movzx edx, word [esi + ebx + 0x1b34]
movzx esi, word [esi + ebx + 0x1b36]
imul si, dx
imul edx, dword [esp + 0x10]
add edx, eax
add esi, edx
movsx eax, si
sar eax, 0xf
or eax, 1
mov ecx, dword [esp + 8]
add ecx, ebx
add ecx, 0x15c8
mov edx, 0xfffffffa
movzx esi, word [ecx + edx*2 + 4]
imul si, ax
mov word [ecx + edx*2 + 4], si
movzx esi, word [ecx + edx*2 + 8]
imul si, ax
mov word [ecx + edx*2 + 8], si
movzx esi, word [ecx + edx*2 + 0xc]
imul si, ax
mov word [ecx + edx*2 + 0xc], si
add edx, 6
cmp edx, 0x2b7
jb 0x808500
mov eax, dword [esp + 0x2c]
lea ecx, [eax + 0x58]
mov dword [esp + 0x40], ecx
xor ebx, ebx
mov dword [esp + 0xc], eax
xor ecx, ecx
mov dword [esp + 0x10], 0
xor eax, eax
jmp 0x80856d
mov dword [esp + 0x10], edx
inc ebx
cmp ebx, 0x2bd
je 0x8085dd
mov edx, dword [esp + 0x30]
movzx edx, word [edx + ebx*2]
shl edx, 3
movsx esi, dx
mov edx, esi
shr edx, 3
sar esi, 3
imul esi, esi, 0x5555
shr esi, 0x10
lea esi, [esi + esi*2]
sub edx, esi
movsx esi, dx
sar esi, 1
and esi, edx
dec esi
and esi, edx
mov edx, dword [esp + 0x10]
shrd edx, esi, 1
shr eax, 1
and esi, 0xfffffffe
shl esi, 0x1e
or eax, esi
or edx, esi
inc ecx
cmp ecx, 0x20
jne 0x808560
mov ecx, dword [esp + 0xc]
mov dword [ecx], eax
add ecx, 4
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x40]
mov dword [eax], edx
add eax, 4
mov dword [esp + 0x40], eax
xor eax, eax
mov dword [esp + 0x10], 0
xor ecx, ecx
jmp 0x808564
neg cl
shr eax, cl
mov edx, dword [esp + 0x10]
shr edx, cl
mov ecx, dword [esp + 0xc]
mov dword [ecx], eax
mov eax, dword [esp + 0x40]
mov dword [eax], edx
mov ecx, dword [esp + 0x2c]
lea eax, [ecx + 0xb0]
push ecx
push eax
call sym.adb.exe_HRSS_poly3_invert
add esp, 8
lea ebx, [edi + 0x1b40]
mov eax, dword [ebp + 0x10]
add eax, 0x578
cmp ebx, eax
mov esi, dword [esp + 8]
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x60]
jae 0x808638
lea ecx, [eax + esi]
add ecx, 0x20b8
xor eax, eax
cmp edx, ecx
jb 0x8086c0
xor eax, eax
pxor xmm0, xmm0
movdqa xmm1, xmmword [0x93f500]
movdqa xmm2, xmmword [0x93f510]
pcmpeqd xmm3, xmm3
movdqa xmm4, xmmword [0x93f520]
nop word [eax + eax]
movq xmm5, qword [edx + eax]
punpcklbw xmm5, xmm0
movdqa xmm6, xmm5
pmulhw xmm6, xmm1
pmullw xmm6, xmm2
paddw xmm6, xmm5
movdqa xmm5, xmm6
psraw xmm5, 1
pand xmm5, xmm6
paddw xmm5, xmm3
pand xmm5, xmm6
movdqa xmm6, xmm5
psrlw xmm6, 1
pxor xmm6, xmm4
paddw xmm6, xmm3
por xmm6, xmm5
movdqu xmmword [ebx + eax*2], xmm6
add eax, 8
cmp eax, 0x2b8
jne 0x808660
mov eax, 0x2b8
nop word [eax + eax]
movzx ecx, byte [edx + eax]
imul edx, ecx, 0x5555
shr edx, 0x10
lea edx, [edx + edx*2]
sub ecx, edx
movsx edx, cx
sar edx, 1
and edx, ecx
dec edx
and edx, ecx
movzx ecx, dx
mov edx, ecx
shr edx, 1
xor edx, 1
dec edx
or edx, ecx
mov word [ebx + eax*2], dx
mov edx, dword [esp + 0x60]
inc eax
cmp eax, 0x2bc
jne 0x8086c0
mov dword [esp + 0x54], ebx
mov ecx, dword [esp + 4]
mov dword [esi + ecx + 0x20bc], 0
mov dword [esi + ecx + 0x20b8], 0
movzx eax, word [esi + ecx + 0x1b40]
movd xmm2, eax
pslldq xmm2, 0xe
lea eax, [esi + ecx]
add eax, 0x1b52
pxor xmm0, xmm0
xor ecx, ecx
pxor xmm1, xmm1
nop word [eax + eax]
movdqu xmm3, xmmword [eax + ecx*2 - 0x10]
movdqa xmm4, xmm3
pslldq xmm4, 2
psrldq xmm2, 0xe
por xmm2, xmm4
pmullw xmm2, xmm3
paddw xmm0, xmm2
movdqu xmm2, xmmword [eax + ecx*2]
psrldq xmm3, 0xe
movdqa xmm4, xmm2
pslldq xmm4, 2
por xmm4, xmm3
pmullw xmm4, xmm2
paddw xmm1, xmm4
add ecx, 0x10
cmp ecx, 0x2b0
jne 0x808740
pextrw eax, xmm2, 7
paddw xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddw xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddw xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
paddw xmm0, xmm1
movd edx, xmm0
mov ebx, dword [esp + 4]
movzx ecx, word [esi + ebx + 0x20a2]
imul eax, ecx
add eax, edx
movzx edx, word [esi + ebx + 0x20a4]
imul ecx, edx
add ecx, eax
movzx eax, word [esi + ebx + 0x20a6]
imul edx, eax
add edx, ecx
movzx ecx, word [esi + ebx + 0x20a8]
imul eax, ecx
add eax, edx
movzx edx, word [esi + ebx + 0x20aa]
imul ecx, edx
add ecx, eax
mov eax, esi
movzx esi, word [esi + ebx + 0x20ac]
imul edx, esi
add edx, ecx
movzx ecx, word [eax + ebx + 0x20ae]
imul esi, ecx
add esi, edx
mov edx, eax
movzx eax, word [eax + ebx + 0x20b0]
imul ecx, eax
add ecx, esi
mov esi, edx
movzx edx, word [edx + ebx + 0x20b2]
mov dword [esp + 0x10], edx
imul eax, edx
add eax, ecx
movzx edx, word [esi + ebx + 0x20b4]
movzx esi, word [esi + ebx + 0x20b6]
imul si, dx
imul edx, dword [esp + 0x10]
add edx, eax
add esi, edx
movsx eax, si
sar eax, 0xf
or eax, 1
mov ecx, dword [esp + 8]
add ecx, ebx
add ecx, 0x1b48
mov edx, 0xfffffffa
movzx esi, word [ecx + edx*2 + 4]
imul si, ax
mov word [ecx + edx*2 + 4], si
movzx esi, word [ecx + edx*2 + 8]
imul si, ax
mov word [ecx + edx*2 + 8], si
movzx esi, word [ecx + edx*2 + 0xc]
imul si, ax
mov word [ecx + edx*2 + 0xc], si
add edx, 6
cmp edx, 0x2b7
jb 0x808870
mov edx, dword [esp + 8]
mov eax, dword [esp + 4]
add eax, edx
add eax, 0x1b70
xor ecx, ecx
movdqa xmm0, xmmword [0x93f530]
nop
movdqu xmm1, xmmword [eax + ecx*2 - 0x30]
movdqu xmm2, xmmword [eax + ecx*2 - 0x20]
pmullw xmm1, xmm0
pmullw xmm2, xmm0
movdqu xmmword [eax + ecx*2 - 0x30], xmm1
movdqu xmmword [eax + ecx*2 - 0x20], xmm2
cmp ecx, 0x2a0
je 0x80890b
movdqu xmm1, xmmword [eax + ecx*2 - 0x10]
movdqu xmm2, xmmword [eax + ecx*2]
pmullw xmm1, xmm0
pmullw xmm2, xmm0
movdqu xmmword [eax + ecx*2 - 0x10], xmm1
movdqu xmmword [eax + ecx*2], xmm2
add ecx, 0x20
jmp 0x8088c0
mov esi, dword [esp + 4]
movzx eax, word [edx + esi + 0x20a0]
lea eax, [eax + eax*2]
mov word [edx + esi + 0x20a0], ax
movzx eax, word [edx + esi + 0x20a2]
lea eax, [eax + eax*2]
mov word [edx + esi + 0x20a2], ax
movzx eax, word [edx + esi + 0x20a4]
lea eax, [eax + eax*2]
mov word [edx + esi + 0x20a4], ax
movzx eax, word [edx + esi + 0x20a6]
lea eax, [eax + eax*2]
mov word [edx + esi + 0x20a6], ax
movzx eax, word [edx + esi + 0x20a8]
lea eax, [eax + eax*2]
mov word [edx + esi + 0x20a8], ax
movzx eax, word [edx + esi + 0x20aa]
lea eax, [eax + eax*2]
mov word [edx + esi + 0x20aa], ax
movzx eax, word [edx + esi + 0x20ac]
lea eax, [eax + eax*2]
mov word [edx + esi + 0x20ac], ax
movzx eax, word [edx + esi + 0x20ae]
lea eax, [eax + eax*2]
mov word [edx + esi + 0x20ae], ax
movzx eax, word [edx + esi + 0x20b0]
lea eax, [eax + eax*2]
mov word [edx + esi + 0x20b0], ax
movzx eax, word [edx + esi + 0x20b2]
lea eax, [eax + eax*2]
mov word [edx + esi + 0x20b2], ax
movzx eax, word [edx + esi + 0x20b4]
lea eax, [eax + eax*2]
mov word [edx + esi + 0x20b4], ax
movzx eax, word [edx + esi + 0x20b6]
lea eax, [eax + eax*2]
mov word [edx + esi + 0x20b6], ax
lea ecx, [edx + esi + 0x20b8]
movzx eax, word [edx + esi + 0x20b8]
lea eax, [eax + eax*2]
mov word [edx + esi + 0x20b8], ax
xor edx, edx
mov dword [esp + 0x10], eax
mov esi, eax
nop word cs:[eax + eax]
movzx eax, word [ecx + edx*2 - 2]
mov ebx, eax
sub ebx, esi
mov word [ecx + edx*2], bx
movzx esi, word [ecx + edx*2 - 4]
mov ebx, esi
sub ebx, eax
mov word [ecx + edx*2 - 2], bx
movzx eax, word [ecx + edx*2 - 6]
mov ebx, eax
sub ebx, esi
mov word [ecx + edx*2 - 4], bx
movzx ebx, word [ecx + edx*2 - 8]
mov esi, ebx
sub esi, eax
mov word [ecx + edx*2 - 6], si
movzx esi, word [ecx + edx*2 - 0xa]
mov eax, esi
sub eax, ebx
mov word [ecx + edx*2 - 8], ax
add edx, 0xfffffffb
cmp edx, 0xfffffd44
jne 0x808a20
mov eax, dword [esp + 0x10]
sub ax, word [edi + 0x1b40]
mov word [edi + 0x1b40], ax
lea esi, [edi + 0x20c0]
lea edx, [edi + 0xb00]
mov ecx, edi
mov dword [esp + 0x28], edx
push 0x58
push dword [esp + 0x58]
push dword [esp + 0x38]
call fcn.0080bc70
add esp, 0xc
movdqa xmm0, xmmword [edi + 0x570]
xor eax, eax
movdqa xmm1, xmmword [edi + eax + 0x580]
movdqa xmm2, xmm1
pslldq xmm2, 6
psrldq xmm0, 0xa
por xmm0, xmm2
paddw xmm0, xmmword [edi + eax]
movdqa xmmword [edi + eax + 0x20c0], xmm0
add eax, 0x10
movdqa xmm0, xmm1
cmp eax, 0x580
jne 0x808ab0
mov word [esi + 0x57e], 0
mov dword [esi + 0x57a], 0
lea eax, [esp + 0x300]
push 0x580
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
lea eax, [esp + 0x880]
push 0x580
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov eax, edi
neg eax
lea ecx, [esp + eax]
add ecx, 0xffffe240
xor eax, eax
cmp ecx, 0x20
mov esi, dword [esp + 8]
jb 0x808bf2
mov eax, dword [esp + 4]
add eax, esi
add eax, 0x20f0
xor ecx, ecx
nop word cs:[eax + eax]
movdqu xmm0, xmmword [eax + ecx*2 - 0x30]
movdqu xmm1, xmmword [eax + ecx*2 - 0x20]
pxor xmm2, xmm2
psubw xmm2, xmm0
pxor xmm0, xmm0
psubw xmm0, xmm1
movdqa xmmword [esp + ecx*2 + 0x300], xmm2
movdqa xmmword [esp + ecx*2 + 0x310], xmm0
cmp ecx, 0x2a0
je 0x808bed
movdqu xmm0, xmmword [eax + ecx*2 - 0x10]
movdqu xmm1, xmmword [eax + ecx*2]
pxor xmm2, xmm2
psubw xmm2, xmm0
pxor xmm0, xmm0
psubw xmm0, xmm1
movdqa xmmword [esp + ecx*2 + 0x320], xmm2
movdqa xmmword [esp + ecx*2 + 0x330], xmm0
add ecx, 0x20
jmp 0x808b60
push 0x590
push 0
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
push 0x710
push ebx
call sym.adb.exe_RAND_bytes
add esp, 8
xor eax, eax
jmp 0x809bf3
mov eax, 0x2b0
add eax, 0x1063
mov ecx, 1
nop dword [eax]
xor edx, edx
sub dx, word [edi + eax*2 - 6]
mov word [esp + eax*2 - 0x1dc6], dx
inc eax
dec ecx
jne 0x808c00
nop word cs:[eax + eax]
xor ecx, ecx
sub cx, word [edi + eax*2 - 6]
mov word [esp + eax*2 - 0x1dc6], cx
xor ecx, ecx
sub cx, word [edi + eax*2 - 4]
mov word [esp + eax*2 - 0x1dc4], cx
xor ecx, ecx
sub cx, word [edi + eax*2 - 2]
mov word [esp + eax*2 - 0x1dc2], cx
xor ecx, ecx
sub cx, word [edi + eax*2]
mov word [esp + eax*2 - 0x1dc0], cx
add eax, 4
cmp eax, 0x1320
jne 0x808c20
mov word [esp + 0x87e], 0
mov dword [esp + 0x87a], 0
pxor xmm0, xmm0
movdqa xmmword [esp + 0xc0], xmm0
movdqa xmmword [esp + 0xb0], xmm0
movdqa xmmword [esp + 0xa0], xmm0
movdqa xmmword [esp + 0x90], xmm0
movdqa xmmword [esp + 0x80], xmm0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
movdqa xmmword [esp + 0x130], xmm0
movdqa xmmword [esp + 0x140], xmm0
movdqa xmmword [esp + 0x150], xmm0
movdqa xmmword [esp + 0x160], xmm0
movdqa xmmword [esp + 0x170], xmm0
mov dword [esp + 0x184], 0
mov dword [esp + 0x180], 0
movdqu xmmword [esp + 0x24c], xmm0
movdqu xmmword [esp + 0x25c], xmm0
movdqu xmmword [esp + 0x26c], xmm0
movdqu xmmword [esp + 0x27c], xmm0
movdqu xmmword [esp + 0x28c], xmm0
mov dword [esp + 0x29c], 0
mov dword [esp + 0x248], 1
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x230], xmm0
movdqa xmmword [esp + 0x220], xmm0
movdqa xmmword [esp + 0x210], xmm0
movdqa xmmword [esp + 0x200], xmm0
movdqa xmmword [esp + 0x1f0], xmm0
mov dword [esp + 0x240], 0xffffffff
mov dword [esp + 0x244], 0x1fffffff
mov eax, dword [esp + 4]
add eax, esi
add eax, 0x20c2
mov dword [esp + 0x10], eax
lea eax, [esp + 0x80]
xor esi, esi
xor ebx, ebx
xor ecx, ecx
jmp 0x808db3
add esi, 2
mov edx, dword [esp + 0x10]
movzx edx, word [edx + esi*2 - 2]
shld edx, ebx, 0x1f
inc ecx
cmp ecx, 0x20
jne 0x808dcf
mov dword [eax], edx
add eax, 4
xor ecx, ecx
xor edx, edx
cmp esi, 0x2bc
je 0x808df4
mov ebx, dword [esp + 0x10]
movzx ebx, word [ebx + esi*2]
shld ebx, edx, 0x1f
inc ecx
cmp ecx, 0x20
jne 0x808db0
mov dword [eax], ebx
add eax, 4
xor ecx, ecx
xor ebx, ebx
jmp 0x808db0
neg cl
shr edx, cl
mov dword [eax], edx
mov ecx, dword [esp + 0xd4]
lea eax, [ecx*8]
sar eax, 0x1f
movd xmm0, ecx
pshufd xmm0, xmm0, 0
pslld xmm0, 3
psrad xmm0, 0x1f
movdqa xmm1, xmmword [esp + 0x80]
pxor xmm1, xmm0
movdqa xmmword [esp + 0x80], xmm1
movdqa xmm1, xmmword [esp + 0x90]
pxor xmm1, xmm0
movdqa xmmword [esp + 0x90], xmm1
movdqa xmm1, xmmword [esp + 0xa0]
pxor xmm1, xmm0
movdqa xmmword [esp + 0xa0], xmm1
movdqa xmm1, xmmword [esp + 0xb0]
pxor xmm1, xmm0
movdqa xmmword [esp + 0xb0], xmm1
pxor xmm0, xmmword [esp + 0xc0]
movdqa xmmword [esp + 0xc0], xmm0
xor dword [esp + 0xd0], eax
xor eax, ecx
and eax, 0xfffffff
mov dword [esp + 0xd4], eax
lea ecx, [esp + 0x80]
mov edx, ecx
call fcn.0080b890
movaps xmm0, xmmword [esp + 0x130]
movaps xmmword [esp + 0x110], xmm0
movaps xmm0, xmmword [esp + 0x140]
movaps xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [esp + 0x150]
movaps xmmword [esp + 0x60], xmm0
movdqa xmm3, xmmword [esp + 0x160]
movaps xmm0, xmmword [esp + 0x170]
movaps xmmword [esp + 0x1b0], xmm0
mov eax, dword [esp + 0x180]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x184]
mov dword [esp + 0x3c], eax
movaps xmm0, xmmword [esp + 0x200]
movaps xmmword [esp + 0x1d0], xmm0
movaps xmm0, xmmword [esp + 0x210]
movaps xmmword [esp + 0x1e0], xmm0
movaps xmm0, xmmword [esp + 0x220]
movaps xmmword [esp + 0x120], xmm0
mov eax, dword [esp + 0x240]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x244]
mov dword [esp + 0x5c], eax
mov esi, dword [esp + 0xd4]
mov eax, dword [esp + 0x298]
mov dword [esp + 0x38], eax
mov ebx, 1
mov dword [esp + 0xe0], 0x577
mov edx, dword [esp + 0x29c]
movaps xmm0, xmmword [esp + 0x230]
movaps xmmword [esp + 0x100], xmm0
movups xmm0, xmmword [esp + 0x248]
movaps xmmword [esp + 0xf0], xmm0
movdqu xmm0, xmmword [esp + 0x258]
movdqa xmmword [esp + 0x1c0], xmm0
movdqu xmm6, xmmword [esp + 0x268]
movdqu xmm2, xmmword [esp + 0x278]
movdqu xmm7, xmmword [esp + 0x288]
mov dword [esp + 0x78], edi
jmp 0x8091dd
mov ebx, dword [esp + 0x7c]
neg ebx
movdqa xmm0, xmm1
movdqa xmm5, xmmword [esp + 0x10]
movdqa xmm4, xmmword [esp + 0xf0]
movdqa xmm7, xmmword [esp + 0x2a0]
mov edi, dword [esp + 0x78]
movdqa xmm6, xmmword [esp + 0x110]
movdqa xmm2, xmm6
psrld xmm2, 0x1f
movdqa xmm1, xmm2
pslldq xmm1, 4
paddd xmm6, xmm6
por xmm6, xmm1
movdqa xmm1, xmmword [esp + 0x40]
movdqa xmm3, xmm1
psrld xmm3, 0x1f
shufps xmm2, xmm3, 3
shufps xmm2, xmm3, 0x98
paddd xmm1, xmm1
por xmm1, xmm2
movdqa xmmword [esp + 0x40], xmm1
movdqa xmm1, xmmword [esp + 0x60]
movdqa xmm2, xmm1
psrld xmm2, 0x1f
shufps xmm3, xmm2, 3
shufps xmm3, xmm2, 0x98
paddd xmm1, xmm1
por xmm1, xmm3
movdqa xmmword [esp + 0x60], xmm1
movdqa xmm1, xmm5
psrld xmm1, 0x1f
shufps xmm2, xmm1, 3
shufps xmm2, xmm1, 0x98
paddd xmm5, xmm5
por xmm5, xmm2
movdqa xmmword [esp + 0x10], xmm5
movaps xmm2, xmmword [esp + 0x190]
shufps xmm1, xmm2, 3
shufps xmm1, xmm2, 0x98
paddd xmm0, xmm0
por xmm0, xmm1
movdqa xmm1, xmm4
pxor xmm1, xmm6
pand xmm1, xmm7
pxor xmm6, xmm1
movdqa xmmword [esp + 0x110], xmm6
pxor xmm1, xmm4
movdqa xmm4, xmmword [esp + 0x1c0]
movdqa xmm2, xmm4
movdqa xmm3, xmmword [esp + 0x40]
pxor xmm2, xmm3
pand xmm2, xmm7
pxor xmm3, xmm2
movdqa xmmword [esp + 0x40], xmm3
pxor xmm2, xmm4
movdqa xmm4, xmmword [esp + 0x2d0]
movdqa xmm3, xmm4
movdqa xmm5, xmmword [esp + 0x60]
pxor xmm3, xmm5
pand xmm3, xmm7
pxor xmm5, xmm3
movdqa xmmword [esp + 0x60], xmm5
pxor xmm3, xmm4
movdqa xmm5, xmmword [esp + 0x2e0]
movdqa xmm4, xmm5
movdqa xmm6, xmm7
movdqa xmm7, xmmword [esp + 0x10]
pxor xmm4, xmm7
pand xmm4, xmm6
pxor xmm7, xmm4
movdqa xmmword [esp + 0x10], xmm7
pxor xmm4, xmm5
movdqa xmm7, xmmword [esp + 0x2f0]
movdqa xmm5, xmm7
pxor xmm5, xmm0
pand xmm5, xmm6
pxor xmm0, xmm5
pxor xmm5, xmm7
movdqa xmm6, xmmword [esp + 0x110]
movdqa xmm7, xmmword [esp + 0x2c0]
pand xmm6, xmm7
pxor xmm6, xmm1
movdqa xmmword [esp + 0xf0], xmm6
movdqa xmm1, xmmword [esp + 0x40]
pand xmm1, xmm7
pxor xmm1, xmm2
movdqa xmmword [esp + 0x1c0], xmm1
movdqa xmm6, xmmword [esp + 0x60]
pand xmm6, xmm7
pxor xmm6, xmm3
movdqa xmm2, xmmword [esp + 0x10]
movdqa xmm3, xmm2
pand xmm2, xmm7
pxor xmm2, xmm4
movdqa xmmword [esp + 0x1b0], xmm0
pand xmm7, xmm0
pxor xmm7, xmm5
xor dword [esp + 0x38], ecx
xor eax, edx
mov esi, dword [esp + 0x1a0]
shr esi, 1
inc ebx
dec dword [esp + 0xe0]
mov edx, eax
je 0x8095c9
mov dword [esp + 0xec], edx
movdqa xmmword [esp + 0x2d0], xmm6
movdqa xmmword [esp + 0x2e0], xmm2
movdqa xmmword [esp + 0x2f0], xmm7
movdqa xmmword [esp + 0x10], xmm3
mov eax, dword [esp + 0x34]
shld dword [esp + 0x3c], eax, 1
mov eax, ebx
shr eax, 0x1f
dec eax
mov ecx, dword [esp + 0x80]
and ecx, 1
mov edx, ecx
neg edx
and edx, eax
test ebx, ebx
mov dword [esp + 0x7c], ebx
cmove edx, ebx
movd xmm0, edx
pshufd xmm4, xmm0, 0
movdqa xmm3, xmmword [esp + 0x80]
movdqa xmm2, xmmword [esp + 0x90]
movaps xmm0, xmmword [esp + 0xa0]
movaps xmmword [esp + 0x190], xmm0
movdqa xmm1, xmmword [esp + 0xb0]
movdqa xmm5, xmm1
movdqa xmm6, xmmword [esp + 0x120]
pxor xmm5, xmm6
pand xmm5, xmm4
pxor xmm6, xmm5
movdqa xmmword [esp + 0x120], xmm6
pxor xmm5, xmm1
movdqa xmmword [esp + 0x1a0], xmm5
movdqa xmmword [esp + 0xb0], xmm5
movdqa xmm1, xmmword [esp + 0xc0]
movdqa xmm5, xmm1
movdqa xmm6, xmmword [esp + 0x100]
pxor xmm5, xmm6
pand xmm5, xmm4
movdqa xmm0, xmm4
pxor xmm6, xmm5
movdqa xmmword [esp + 0x100], xmm6
pxor xmm5, xmm1
movdqa xmmword [esp + 0x2b0], xmm5
movdqa xmmword [esp + 0xc0], xmm5
mov ebx, dword [esp + 0xd0]
mov eax, ebx
mov edi, dword [esp + 0xc]
xor eax, edi
mov dword [esp + 0xe8], edx
and eax, edx
xor edi, eax
mov dword [esp + 0xc], edi
xor eax, ebx
mov ebx, ecx
and ebx, dword [esp + 0x1f0]
mov ecx, esi
mov edi, dword [esp + 0x5c]
xor ecx, edi
and ecx, edx
xor edi, ecx
xor ecx, esi
mov dword [esp + 0xd0], eax
neg ebx
mov edx, ebx
mov dword [esp + 0xe4], ebx
mov esi, dword [esp + 0xc]
and esi, ebx
xor esi, eax
movdqa xmm7, xmmword [esp + 0x1f0]
movdqa xmm4, xmm3
pxor xmm4, xmm7
pand xmm4, xmm0
pxor xmm7, xmm4
movdqa xmmword [esp + 0x1f0], xmm7
pxor xmm4, xmm3
movdqa xmm5, xmm2
movdqa xmm1, xmmword [esp + 0x1d0]
pxor xmm5, xmm1
pand xmm5, xmm0
movdqa xmm3, xmm0
pxor xmm1, xmm5
pxor xmm5, xmm2
movdqa xmm0, xmmword [esp + 0x190]
movdqa xmm6, xmm0
movdqa xmm2, xmmword [esp + 0x1e0]
pxor xmm6, xmm2
movdqa xmmword [esp + 0x2a0], xmm3
pand xmm6, xmm3
pxor xmm2, xmm6
pxor xmm6, xmm0
movd xmm0, ebx
pshufd xmm0, xmm0, 0
pand xmm7, xmm0
pxor xmm7, xmm4
movdqa xmmword [esp + 0x1d0], xmm1
movdqa xmm4, xmm1
pand xmm4, xmm0
pxor xmm4, xmm5
movdqa xmm3, xmmword [esp + 0x1b0]
movdqa xmm1, xmm3
psrld xmm3, 0x1f
movdqa xmmword [esp + 0x80], xmm7
movdqa xmmword [esp + 0x90], xmm4
movdqa xmmword [esp + 0x1e0], xmm2
pand xmm2, xmm0
pxor xmm2, xmm6
movdqa xmmword [esp + 0x190], xmm3
pshufd xmm3, xmm3, 0xff
movdqa xmmword [esp + 0xa0], xmm2
movdqa xmm4, xmmword [esp + 0x120]
pand xmm4, xmm0
pxor xmm4, xmmword [esp + 0x1a0]
movdqa xmmword [esp + 0xb0], xmm4
movdqa xmm2, xmmword [esp + 0x100]
pand xmm2, xmm0
pxor xmm2, xmmword [esp + 0x2b0]
movdqa xmmword [esp + 0xc0], xmm2
mov dword [esp + 0xd0], esi
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x5c], edi
mov esi, dword [esp + 0x3c]
and edi, edx
xor edi, ecx
movdqu xmm4, xmmword [esp + 0xc4]
pshufd xmm2, xmm4, 0xff
movd ecx, xmm2
mov dword [esp + 0x1a0], edi
shrd ecx, edi, 1
movups xmm6, xmmword [esp + 0xb4]
movaps xmm2, xmm6
shufps xmm2, xmm4, 0xc7
shufps xmm2, xmm4, 0x98
psrld xmm2, 1
pslld xmm4, 0x1f
por xmm4, xmm2
movups xmm2, xmmword [esp + 0x84]
movd eax, xmm3
movups xmm3, xmmword [esp + 0x94]
movups xmm5, xmmword [esp + 0xa4]
mov dword [esp + 0xd0], ecx
movdqa xmmword [esp + 0xc0], xmm4
movaps xmm4, xmm5
shufps xmm4, xmm6, 0xc7
shufps xmm4, xmm6, 0x98
psrld xmm4, 1
pslld xmm6, 0x1f
por xmm6, xmm4
movdqa xmmword [esp + 0xb0], xmm6
movaps xmm4, xmm3
shufps xmm4, xmm5, 0xc7
shufps xmm4, xmm5, 0x98
psrld xmm4, 1
pslld xmm5, 0x1f
por xmm5, xmm4
movdqa xmmword [esp + 0xa0], xmm5
movaps xmm4, xmm2
shufps xmm4, xmm3, 0xc7
shufps xmm4, xmm3, 0x98
psrld xmm4, 1
pslld xmm3, 0x1f
por xmm3, xmm4
movdqa xmmword [esp + 0x90], xmm3
punpcklqdq xmm7, xmm2
shufps xmm7, xmm2, 0x98
psrld xmm7, 1
pslld xmm2, 0x1f
por xmm2, xmm7
movdqa xmmword [esp + 0x80], xmm2
mov ecx, dword [esp + 0x34]
lea eax, [eax + ecx*2]
mov ecx, ebx
xor ebx, eax
mov edx, dword [esp + 0xe8]
and ebx, edx
xor eax, ebx
xor ebx, ecx
mov dword [esp + 0x38], ebx
mov ebx, eax
mov eax, dword [esp + 0xec]
mov ecx, eax
xor eax, esi
and eax, edx
mov edi, edx
xor esi, eax
xor eax, ecx
mov dword [esp + 0x34], ebx
mov ecx, ebx
mov edx, dword [esp + 0xe4]
and ecx, edx
mov dword [esp + 0x3c], esi
and edx, esi
mov ebx, edi
test bl, 1
movdqa xmmword [esp + 0x2c0], xmm0
jne 0x808fd0
movdqa xmm0, xmm1
movdqa xmm5, xmmword [esp + 0x10]
mov ebx, dword [esp + 0x7c]
jmp 0x808fe0
movaps xmm0, xmmword [esp + 0x110]
movaps xmmword [esp + 0x130], xmm0
movaps xmm0, xmmword [esp + 0x40]
movaps xmmword [esp + 0x140], xmm0
movaps xmm0, xmmword [esp + 0x60]
movaps xmmword [esp + 0x150], xmm0
movdqa xmmword [esp + 0x160], xmm3
movaps xmm0, xmmword [esp + 0x1b0]
movaps xmmword [esp + 0x170], xmm0
movaps xmm0, xmmword [esp + 0x1d0]
movaps xmmword [esp + 0x200], xmm0
mov eax, dword [esp + 0x34]
mov dword [esp + 0x180], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x184], eax
movaps xmm0, xmmword [esp + 0x1e0]
movaps xmmword [esp + 0x210], xmm0
movaps xmm0, xmmword [esp + 0x120]
movaps xmmword [esp + 0x220], xmm0
movaps xmm0, xmmword [esp + 0x100]
movaps xmmword [esp + 0x230], xmm0
movaps xmm0, xmmword [esp + 0xf0]
movups xmmword [esp + 0x248], xmm0
movdqa xmm0, xmmword [esp + 0x1c0]
movdqu xmmword [esp + 0x258], xmm0
movdqu xmmword [esp + 0x268], xmm6
movdqu xmmword [esp + 0x278], xmm2
movdqu xmmword [esp + 0x288], xmm7
mov eax, dword [esp + 0xc]
mov dword [esp + 0x240], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x244], eax
mov dword [esp + 0xd4], esi
mov eax, dword [esp + 0x38]
mov dword [esp + 0x298], eax
mov dword [esp + 0x29c], edx
lea eax, [edi + 0x2640]
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x130]
mov dword [esp + 0x40], ecx
mov edx, ecx
call fcn.0080b890
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
add ecx, edx
add ecx, 0x2642
mov dword [esp + 0x60], ecx
xor ecx, ecx
xor ebx, ebx
jmp 0x809715
shr eax, 1
add ecx, 2
mov edx, eax
and edx, 1
mov esi, dword [esp + 0x60]
mov word [esi + ecx*2 - 2], dx
inc ebx
cmp ebx, 0x20
jne 0x809750
mov edx, dword [esp + 0x40]
mov eax, dword [edx + 4]
add edx, 4
mov dword [esp + 0x40], edx
xor ebx, ebx
cmp ecx, 0x2bc
jne 0x80975a
jmp 0x809782
shr eax, 1
cmp ecx, 0x2bc
je 0x809782
mov edx, eax
and edx, 1
mov esi, dword [esp + 0x60]
mov word [esi + ecx*2], dx
inc ebx
cmp ebx, 0x20
jne 0x809710
mov edx, dword [esp + 0x40]
mov eax, dword [edx + 4]
add edx, 4
mov dword [esp + 0x40], edx
xor ebx, ebx
add ecx, 2
jmp 0x809715
mov eax, dword [esp + 0x10]
lea esi, [eax + 0x57a]
mov word [eax + 0x57e], 0
mov dword [eax + 0x57a], 0
xor ebx, ebx
nop word cs:[eax + eax]
mov ecx, edi
mov edx, dword [esp + 0x28]
push 0x58
push dword [esp + 0x14]
lea eax, [esp + 0x308]
push eax
call fcn.0080bc70
add esp, 0xc
movdqa xmm0, xmmword [edi + 0x570]
xor eax, eax
nop word cs:[eax + eax]
movdqa xmm1, xmmword [edi + eax + 0x580]
movdqa xmm2, xmm1
pslldq xmm2, 6
psrldq xmm0, 0xa
por xmm0, xmm2
paddw xmm0, xmmword [edi + eax]
movdqa xmmword [esp + eax + 0x880], xmm0
add eax, 0x10
movdqa xmm0, xmm1
cmp eax, 0x580
jne 0x8097e0
lea eax, [esp + 0xdfa]
mov word [eax + 4], 0
mov dword [eax], 0
add word [esp + 0x880], 2
mov ecx, edi
mov edx, dword [esp + 0x28]
push 0x58
lea eax, [esp + 0x884]
push eax
push dword [esp + 0x18]
call fcn.0080bc70
add esp, 0xc
movdqa xmm0, xmmword [edi + 0x570]
xor eax, eax
nop dword [eax]
movdqa xmm1, xmmword [edi + eax + 0x580]
movdqa xmm2, xmm1
pslldq xmm2, 6
psrldq xmm0, 0xa
por xmm0, xmm2
paddw xmm0, xmmword [edi + eax]
movdqa xmmword [edi + eax + 0x2640], xmm0
add eax, 0x10
movdqa xmm0, xmm1
cmp eax, 0x580
jne 0x809860
mov word [esi + 4], 0
mov dword [esi], 0
inc ebx
cmp ebx, 4
jne 0x8097b0
mov ecx, edi
mov edx, dword [esp + 0x28]
push 0x58
push dword [esp + 0x58]
push dword [esp + 0x18]
call fcn.0080bc70
add esp, 0xc
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
lea esi, [ecx + eax]
add esi, 0x580
xor eax, eax
mov ecx, dword [esp + 0x58]
nop dword [eax]
movdqa xmm0, xmmword [esi + eax - 0x10]
movdqa xmm1, xmmword [esi + eax]
psrldq xmm0, 0xa
pslldq xmm1, 6
por xmm1, xmm0
paddw xmm1, xmmword [esi + eax - 0x580]
movdqa xmmword [ecx + eax], xmm1
add eax, 0x10
cmp eax, 0x580
jne 0x8098e0
lea ebx, [ecx + 0x57a]
mov word [ecx + 0x57e], 0
mov dword [ecx + 0x57a], 0
mov ecx, edi
mov edx, dword [esp + 0x28]
push 0x58
push dword [esp + 0x58]
push dword [esp + 0x60]
call fcn.0080bc70
mov ecx, dword [esp + 0x64]
add esp, 0xc
xor eax, eax
nop dword [eax + eax]
movdqa xmm0, xmmword [esi + eax - 0x10]
movdqa xmm1, xmmword [esi + eax]
psrldq xmm0, 0xa
pslldq xmm1, 6
por xmm1, xmm0
paddw xmm1, xmmword [esi + eax - 0x580]
movdqa xmmword [ecx + eax], xmm1
add eax, 0x10
cmp eax, 0x580
jne 0x809950
mov word [ebx + 4], 0
mov dword [ebx], 0
mov eax, 0x18
movdqa xmm2, xmmword [0x93f540]
nop word [eax + eax]
movdqu xmm0, xmmword [ecx + eax*2 - 0x30]
movdqu xmm1, xmmword [ecx + eax*2 - 0x20]
pand xmm0, xmm2
pand xmm1, xmm2
movdqu xmmword [ecx + eax*2 - 0x30], xmm0
movdqu xmmword [ecx + eax*2 - 0x20], xmm1
cmp eax, 0x2b8
je 0x8099ea
movdqu xmm0, xmmword [ecx + eax*2 - 0x10]
movdqu xmm1, xmmword [ecx + eax*2]
pand xmm0, xmm2
pand xmm1, xmm2
movdqu xmmword [ecx + eax*2 - 0x10], xmm0
movdqu xmmword [ecx + eax*2], xmm1
add eax, 0x20
jmp 0x8099a0
and byte [ecx + 0x561], 0x1f
and byte [ecx + 0x563], 0x1f
and byte [ecx + 0x565], 0x1f
and byte [ecx + 0x567], 0x1f
and byte [ecx + 0x569], 0x1f
and byte [ecx + 0x56b], 0x1f
and byte [ecx + 0x56d], 0x1f
and byte [ecx + 0x56f], 0x1f
and byte [ecx + 0x571], 0x1f
and byte [ecx + 0x573], 0x1f
and byte [ecx + 0x575], 0x1f
and byte [ecx + 0x577], 0x1f
and byte [ecx + 0x579], 0x1f
mov eax, dword [esp + 0x2c]
lea ebx, [eax + 0x160]
mov ecx, edi
mov edx, dword [esp + 0x28]
push 0x58
push dword [esp + 0x34]
push dword [esp + 0x18]
call fcn.0080bc70
add esp, 0xc
xor eax, eax
nop dword [eax]
movdqa xmm0, xmmword [esi + eax - 0x10]
movdqa xmm1, xmmword [esi + eax]
psrldq xmm0, 0xa
pslldq xmm1, 6
por xmm1, xmm0
paddw xmm1, xmmword [esi + eax - 0x580]
movdqa xmmword [ebx + eax], xmm1
add eax, 0x10
cmp eax, 0x580
jne 0x809a70
lea eax, [ebx + 0x57a]
mov dword [esp + 0x10], eax
mov word [ebx + 0x57e], 0
mov dword [ebx + 0x57a], 0
mov ecx, edi
mov edx, dword [esp + 0x28]
push 0x58
push dword [esp + 0x34]
push ebx
call fcn.0080bc70
add esp, 0xc
xor eax, eax
nop word cs:[eax + eax]
movdqa xmm0, xmmword [esi + eax - 0x10]
movdqa xmm1, xmmword [esi + eax]
psrldq xmm0, 0xa
pslldq xmm1, 6
por xmm1, xmm0
paddw xmm1, xmmword [esi + eax - 0x580]
movdqa xmmword [ebx + eax], xmm1
add eax, 0x10
cmp eax, 0x580
jne 0x809ae0
mov eax, dword [esp + 0x10]
mov word [eax + 4], 0
mov dword [eax], 0
mov eax, 0xc8
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x2c]
movdqa xmm2, xmmword [0x93f540]
nop word cs:[eax + eax]
movdqu xmm0, xmmword [edx + eax*2 - 0x30]
movdqu xmm1, xmmword [edx + eax*2 - 0x20]
pand xmm0, xmm2
pand xmm1, xmm2
movdqu xmmword [edx + eax*2 - 0x30], xmm0
movdqu xmmword [edx + eax*2 - 0x20], xmm1
cmp eax, 0x368
je 0x809b8a
movdqu xmm0, xmmword [edx + eax*2 - 0x10]
movdqu xmm1, xmmword [edx + eax*2]
pand xmm0, xmm2
pand xmm1, xmm2
movdqu xmmword [edx + eax*2 - 0x10], xmm0
movdqu xmmword [edx + eax*2], xmm1
add eax, 0x20
jmp 0x809b40
and byte [ebx + 0x561], 0x1f
and byte [ebx + 0x563], 0x1f
and byte [ebx + 0x565], 0x1f
and byte [ebx + 0x567], 0x1f
and byte [ebx + 0x569], 0x1f
and byte [ebx + 0x56b], 0x1f
and byte [ebx + 0x56d], 0x1f
and byte [ebx + 0x56f], 0x1f
and byte [ebx + 0x571], 0x1f
and byte [ebx + 0x573], 0x1f
and byte [ebx + 0x575], 0x1f
and byte [ebx + 0x577], 0x1f
and byte [ebx + 0x579], 0x1f
push ecx
call sym.adb.exe_OPENSSL_free
add esp, 4
mov eax, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret