Function at 0x1017b1e0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x60
call fcn.101fe2f0
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x54], 0
xor edi, edi
call fcn.10078b90
mov esi, dword [esp + 0x74]
mov ebp, eax
push esi
mov dword [esp + 0x1c], ebp
call fcn.1006f6c0
mov ebx, eax
push ebx
call fcn.1005a460
push esi
mov dword [esp + 0x4c], eax
call fcn.10075630
push dword [esp + 0x84]
mov dword [esp + 0x68], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x30], edi
call fcn.10075710
push esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x64], edi
call fcn.10058e50
push esi
mov dword [esp + 0x40], eax
call fcn.100e2fd0
add esp, 0x18
mov dword [esp + 0x44], eax
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], edi
test ebp, ebp
je 0x1017b864
cmp dword [esp + 0x30], edi
jle 0x1017b864
push ebx
call fcn.1004dac0
add esp, 4
test eax, eax
je 0x1017b853
push eax
call fcn.1008b1d0
add eax, 7
add esp, 4
cdq
and edx, 7
lea ebp, [edx + eax]
sar ebp, 3
mov dword [esp + 0x2c], ebp
test ebp, ebp
je 0x1017b853
push ebx
call fcn.10100080
push ebx
mov dword [esp + 0x24], eax
call fcn.10100080
add esp, 8
mov dword [esp + 0x24], eax
cmp dword [esp + 0x1c], edi
je 0x1017b842
test eax, eax
je 0x1017b842
push dword [esp + 0x28]
call fcn.100d7c00
mov edi, eax
add esp, 4
test edi, edi
jne 0x1017b30f
call fcn.10050630
push str.ossl_sm2_encrypt
push 0x9f
push str.crypto_sm2_sm2_crypt.c
call fcn.10050730
push 0
push 0x80003
jmp 0x1017b884
push edi
call fcn.100d7ca0
push edi
call fcn.100d7ab0
push edi
mov esi, eax
call fcn.100d7ab0
push edi
mov dword [esp + 0x58], eax
call fcn.100d7ab0
push edi
mov dword [esp + 0x48], eax
call fcn.100d7ab0
push edi
mov dword [esp + 0x64], eax
call fcn.100d7ab0
add esp, 0x18
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1017b35d
call fcn.10050630
push str.ossl_sm2_encrypt
push 0xab
jmp 0x1017b2f9
push 0xaf
lea eax, [ebp*2]
push str.crypto_sm2_sm2_crypt.c
push eax
mov dword [esp + 0x48], eax
call fcn.10050320
push 0xb0
push str.crypto_sm2_sm2_crypt.c
push dword [esp + 0x44]
mov dword [esp + 0x2c], eax
call fcn.10050320
add esp, 0x18
mov dword [esp + 0x20], eax
cmp dword [esp + 0x14], 0
je 0x1017b88e
test eax, eax
je 0x1017b88e
mov eax, dword [esp + 0x88]
push dword [eax]
push 0
push dword [esp + 0x8c]
call fcn.101ff800
mov ebp, dword [esp + 0x8c]
push 0xb7
push str.crypto_sm2_sm2_crypt.c
push ebp
call fcn.10050320
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
je 0x1017b88e
push edi
push 0
push dword [esp + 0x48]
push esi
call fcn.100dd490
add esp, 0x10
test eax, eax
je 0x1017b51c
nop
push edi
push 0
push 0
push esi
push dword [esp + 0x2c]
push ebx
call fcn.100fff40
add esp, 0x18
test eax, eax
je 0x1017b820
push edi
push dword [esp + 0x50]
push dword [esp + 0x50]
push dword [esp + 0x28]
push ebx
call fcn.100ffc50
add esp, 0x14
test eax, eax
je 0x1017b820
push edi
push esi
push dword [esp + 0x60]
push 0
push dword [esp + 0x34]
push ebx
call fcn.100fff40
add esp, 0x18
test eax, eax
je 0x1017b820
push edi
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push dword [esp + 0x30]
push ebx
call fcn.100ffc50
add esp, 0x14
test eax, eax
je 0x1017b820
push dword [esp + 0x2c]
push dword [esp + 0x18]
push dword [esp + 0x3c]
call fcn.1008ab80
add esp, 0xc
test eax, eax
js 0x1017b80f
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
add eax, ecx
push ecx
push eax
push dword [esp + 0x40]
mov dword [esp + 0x68], eax
call fcn.1008ab80
add esp, 0xc
test eax, eax
js 0x1017b80f
push dword [esp + 0x44]
push dword [esp + 0x2c]
push dword [esp + 0x80]
push 0
push 0
push dword [esp + 0x50]
push dword [esp + 0x2c]
push ebp
push dword [esp + 0x30]
call fcn.10158a40
add esp, 0x24
test eax, eax
je 0x1017b7fe
push ebp
push dword [esp + 0x14]
call fcn.1017a970
add esp, 8
test eax, eax
je 0x1017b530
push dword [esp + 0x3c]
push 0
push dword [esp + 0x1c]
call fcn.101ff800
push edi
push 0
push dword [esp + 0x54]
push esi
call fcn.100dd490
add esp, 0x1c
test eax, eax
jne 0x1017b400
call fcn.10050630
push str.ossl_sm2_encrypt
push 0xbd
jmp 0x1017b873
xor edx, edx
test ebp, ebp
je 0x1017b63e
mov ebx, dword [esp + 0x10]
cmp ebp, 8
jb 0x1017b620
mov esi, dword [esp + 0x7c]
lea ecx, [ebx - 1]
add ecx, ebp
lea eax, [esi - 1]
add eax, ebp
cmp ebx, eax
ja 0x1017b561
cmp ecx, esi
jae 0x1017b620
cmp ebp, 0x40
jb 0x1017b5eb
mov ecx, ebp
mov eax, ebp
and ecx, 0x3f
mov ebp, esi
sub eax, ecx
mov dword [esp + 0x40], ecx
sub ebp, ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], ebp
lea ecx, [esi + 0x30]
mov ebp, dword [esp + 0x80]
lea eax, [ebx + 0x10]
mov esi, dword [esp + 0x58]
movups xmm0, xmmword [eax - 0x10]
add edx, 0x40
lea ecx, [ecx + 0x40]
lea eax, [eax + 0x40]
movups xmm1, xmmword [ecx - 0x70]
xorps xmm1, xmm0
movups xmmword [eax - 0x50], xmm1
movups xmm0, xmmword [eax - 0x40]
movups xmm1, xmmword [esi + eax - 0x40]
xorps xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
movups xmm1, xmmword [ecx - 0x50]
xorps xmm1, xmm0
movups xmmword [eax - 0x30], xmm1
movups xmm1, xmmword [eax - 0x20]
movups xmm0, xmmword [ecx - 0x40]
xorps xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
cmp edx, dword [esp + 0x50]
jne 0x1017b594
cmp dword [esp + 0x40], 8
mov esi, dword [esp + 0x7c]
jb 0x1017b61c
mov ecx, ebp
lea eax, [edx + ebx]
and ecx, 0xfffffff8
sub esi, ebx
nop word [eax + eax]
movq xmm1, qword [esi + eax]
lea eax, [eax + 8]
movq xmm0, qword [eax - 8]
add edx, 8
xorps xmm1, xmm0
movq qword [eax - 8], xmm1
cmp edx, ecx
jne 0x1017b600
cmp edx, ebp
je 0x1017b642
lea ecx, [edx + ebx]
mov esi, ebp
mov ebx, dword [esp + 0x7c]
sub ebx, dword [esp + 0x10]
sub esi, edx
nop
mov al, byte [ebx + ecx]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
sub esi, 1
jne 0x1017b630
mov ebx, dword [esp + 0x10]
push dword [esp + 0x44]
push dword [esp + 0x7c]
call fcn.100756a0
add esp, 4
push eax
push dword [esp + 0x30]
call fcn.10078c20
add esp, 0xc
mov dword [esp + 0x50], eax
test eax, eax
jne 0x1017b67b
call fcn.10050630
push str.ossl_sm2_encrypt
push 0xe0
jmp 0x1017b873
mov esi, dword [esp + 0x18]
push eax
push esi
call fcn.10078350
add esp, 8
test eax, eax
je 0x1017b7d9
mov esi, dword [esp + 0x2c]
push esi
push dword [esp + 0x18]
push dword [esp + 0x20]
call fcn.100783b0
add esp, 0xc
test eax, eax
je 0x1017b7d9
push ebp
push dword [esp + 0x80]
push dword [esp + 0x20]
call fcn.100783b0
add esp, 0xc
test eax, eax
je 0x1017b7d9
push esi
push dword [esp + 0x60]
mov esi, dword [esp + 0x20]
push esi
call fcn.100783b0
add esp, 0xc
test eax, eax
je 0x1017b7d9
push 0
push dword [esp + 0x24]
push esi
call fcn.10077f90
add esp, 0xc
test eax, eax
je 0x1017b7d9
mov eax, dword [esp + 0x48]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x64], eax
call fcn.1008e580
mov dword [esp + 0x68], eax
call fcn.1008e580
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x6c], eax
test ecx, ecx
je 0x1017b7b4
test eax, eax
je 0x1017b7b4
push dword [esp + 0x30]
push dword [esp + 0x24]
push ecx
call fcn.1008e780
add esp, 0xc
test eax, eax
je 0x1017b7a0
push ebp
push ebx
push dword [esp + 0x74]
call fcn.1008e780
add esp, 0xc
test eax, eax
je 0x1017b7a0
push 0x10296eb0
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0x68]
push eax
call fcn.100ed160
add esp, 0xc
test eax, eax
jns 0x1017b78a
call fcn.10050630
push str.ossl_sm2_encrypt
push 0xfe
jmp 0x1017b873
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x54], 1
mov dword [ecx], eax
jmp 0x1017b88e
call fcn.10050630
push str.ossl_sm2_encrypt
push 0xf7
jmp 0x1017b873
call fcn.10050630
push str.ossl_sm2_encrypt
push 0xf2
push str.crypto_sm2_sm2_crypt.c
call fcn.10050730
push 0
push 0x8000d
jmp 0x1017b884
call fcn.10050630
push str.ossl_sm2_encrypt
push 0xe8
push str.crypto_sm2_sm2_crypt.c
call fcn.10050730
push 0
push 0x80006
jmp 0x1017b884
call fcn.10050630
push str.ossl_sm2_encrypt
push 0xd2
jmp 0x1017b7e8
call fcn.10050630
push str.ossl_sm2_encrypt
push 0xcb
jmp 0x1017b873
call fcn.10050630
push str.ossl_sm2_encrypt
push 0xc5
push str.crypto_sm2_sm2_crypt.c
call fcn.10050730
push 0
push 0x80010
jmp 0x1017b884
call fcn.10050630
push str.ossl_sm2_encrypt
push 0x9a
jmp 0x1017b82f
call fcn.10050630
push str.ossl_sm2_encrypt
push 0x93
jmp 0x1017b873
call fcn.10050630
push str.ossl_sm2_encrypt
push 0x8d
push str.crypto_sm2_sm2_crypt.c
call fcn.10050730
push 0
push 0xc0103
push 0x35
call fcn.10050840
add esp, 0x18
push dword [esp + 0x50]
call fcn.10078c50
push dword [esp + 0x70]
call fcn.1008e470
push dword [esp + 0x70]
call fcn.1008e470
push 0x109
push str.crypto_sm2_sm2_crypt.c
push dword [esp + 0x24]
call fcn.10050120
push 0x10a
push str.crypto_sm2_sm2_crypt.c
push dword [esp + 0x34]
call fcn.10050120
push 0x10b
push str.crypto_sm2_sm2_crypt.c
push dword [esp + 0x4c]
call fcn.10050120
push dword [esp + 0x48]
call fcn.10078b00
push edi
call fcn.100d7a20
push dword [esp + 0x54]
call fcn.100ffc20
push dword [esp + 0x60]
call fcn.100ffc20
mov eax, dword [esp + 0x94]
add esp, 0x40
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret