Function at 0x573f30
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x58
call fcn.00580860
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x48], 0
mov dword [esp + 0x2c], 0
call fcn.00481cf0
mov esi, dword [esp + 0x6c]
push esi
mov dword [esp + 0x2c], eax
call fcn.00470180
mov edi, eax
push edi
call fcn.004860c0
push esi
mov dword [esp + 0x58], eax
call fcn.004716f0
push dword [esp + 0x7c]
mov dword [esp + 0x60], eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
call fcn.0045da00
mov ebp, eax
mov dword [esp + 0x54], 0
push esi
mov dword [esp + 0x54], ebp
call fcn.0045ea20
mov ebx, eax
push esi
mov dword [esp + 0x4c], ebx
call fcn.00470be0
add esp, 0x18
mov dword [esp + 0x30], eax
cmp dword [esp + 0x28], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
je 0x5745e9
test ebp, ebp
jle 0x5745e9
push edi
call fcn.00573830
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x57402c
call fcn.00461410
push str.ossl_sm2_encrypt
push 0x94
push str.crypto_sm2_sm2_crypt.c
call fcn.00461460
push 0
push 0xc0103
push 0x35
call fcn.00461490
add esp, 0x18
xor ebx, ebx
jmp 0x57418d
push edi
call fcn.0049eed0
push edi
mov dword [esp + 0x24], eax
call fcn.0049eed0
add esp, 8
mov dword [esp + 0x24], eax
cmp dword [esp + 0x1c], 0
je 0x5745b8
test eax, eax
je 0x5745b8
push ebx
call fcn.00478b80
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x574098
call fcn.00461410
push str.ossl_sm2_encrypt
push 0xa0
push str.crypto_sm2_sm2_crypt.c
call fcn.00461460
push 0
push 0x80003
push 0x35
call fcn.00461490
add esp, 0x18
xor ebx, ebx
jmp 0x57418d
push eax
call fcn.00478c20
mov ebx, dword [esp + 0x30]
push ebx
call fcn.00478b00
push ebx
mov esi, eax
call fcn.00478b00
push ebx
mov dword [esp + 0x48], eax
call fcn.00478b00
push ebx
mov dword [esp + 0x68], eax
call fcn.00478b00
push ebx
mov dword [esp + 0x54], eax
call fcn.00478b00
mov ebp, eax
add esp, 0x18
test ebp, ebp
jne 0x5740e8
call fcn.00461410
push str.ossl_sm2_encrypt
push 0xac
jmp 0x574076
mov eax, dword [esp + 0x20]
push 0xb0
add eax, eax
push str.crypto_sm2_sm2_crypt.c
push eax
call fcn.00460ba0
push 0xb1
push str.crypto_sm2_sm2_crypt.c
push dword [esp + 0x54]
mov dword [esp + 0x2c], eax
call fcn.00460ba0
mov ecx, dword [esp + 0x2c]
add esp, 0x18
mov dword [esp + 0x10], eax
test ecx, ecx
je 0x5745fd
test eax, eax
je 0x5745fd
mov eax, dword [esp + 0x80]
push dword [eax]
push 0
push dword [esp + 0x84]
call fcn.00599040
push ebx
push 0
push dword [esp + 0x60]
push esi
call fcn.004ad240
add esp, 0x1c
test eax, eax
jne 0x574214
call fcn.00461410
push str.ossl_sm2_encrypt
push 0xb9
push str.crypto_sm2_sm2_crypt.c
call fcn.00461460
push 0
push 0xc0103
push 0x35
call fcn.00461490
add esp, 0x18
mov ebx, dword [esp + 0x10]
push dword [esp + 0x44]
call fcn.00481ec0
push dword [esp + 0x68]
call fcn.00480330
push dword [esp + 0x68]
call fcn.00480330
push 0x104
push str.crypto_sm2_sm2_crypt.c
push dword [esp + 0x2c]
call fcn.004609d0
push 0x105
push str.crypto_sm2_sm2_crypt.c
push dword [esp + 0x34]
call fcn.004609d0
push 0x106
push str.crypto_sm2_sm2_crypt.c
push ebx
call fcn.004609d0
push dword [esp + 0x58]
call fcn.00481c60
push dword [esp + 0x60]
call fcn.00478ac0
push dword [esp + 0x54]
call fcn.0049ead0
push dword [esp + 0x60]
call fcn.0049ead0
mov eax, dword [esp + 0x88]
add esp, 0x40
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
push ebx
push 0
push 0
push esi
push dword [esp + 0x2c]
push edi
call fcn.0049ed90
add esp, 0x18
test eax, eax
je 0x574593
push ebx
push dword [esp + 0x40]
push dword [esp + 0x40]
push dword [esp + 0x28]
push edi
call fcn.0049eb00
add esp, 0x14
test eax, eax
je 0x574593
push ebx
push esi
push dword [esp + 0x58]
push 0
push dword [esp + 0x34]
push edi
call fcn.0049ed90
add esp, 0x18
test eax, eax
je 0x574593
mov esi, dword [esp + 0x54]
push ebx
push ebp
push esi
push dword [esp + 0x30]
push edi
call fcn.0049eb00
add esp, 0x14
test eax, eax
je 0x574593
mov ebx, dword [esp + 0x20]
push ebx
push dword [esp + 0x18]
push esi
call fcn.00477840
add esp, 0xc
test eax, eax
js 0x57457f
mov esi, dword [esp + 0x14]
push ebx
lea eax, [ebx + esi]
push eax
push ebp
call fcn.00477840
add esp, 0xc
test eax, eax
js 0x57457f
mov edi, dword [esp + 0x78]
push 0xcb
push str.crypto_sm2_sm2_crypt.c
push edi
call fcn.00460ba0
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
je 0x574189
push dword [esp + 0x30]
lea ecx, [ebx + ebx]
push dword [esp + 0x38]
push dword [esp + 0x78]
push 0
push 0
push ecx
push esi
push edi
push eax
call fcn.005037a0
add esp, 0x24
test eax, eax
jne 0x574325
call fcn.00461410
push str.ossl_sm2_encrypt
push 0xd2
push str.crypto_sm2_sm2_crypt.c
call fcn.00461460
push 0
push 0x80006
jmp 0x57417f
mov ebp, dword [esp + 0x74]
xor edx, edx
test edi, edi
je 0x5743a3
mov ebx, dword [esp + 0x18]
cmp edi, 0x20
jb 0x574380
lea eax, [ebp - 1]
lea ecx, [ebx - 1]
add eax, edi
add ecx, edi
cmp ebx, eax
ja 0x57434a
cmp ecx, ebp
jae 0x574380
mov ecx, edi
mov esi, ebp
and ecx, 0xffffffe0
mov eax, ebx
sub esi, ebx
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmm1, xmmword [esi + eax - 0x20]
pxor xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
movups xmm1, xmmword [edx + ebp + 0x10]
add edx, 0x20
movups xmm0, xmmword [eax - 0x10]
pxor xmm1, xmm0
movups xmmword [eax - 0x10], xmm1
cmp edx, ecx
jne 0x574355
cmp edx, edi
je 0x57439f
lea ecx, [edx + ebx]
mov esi, edi
mov ebx, ebp
sub ebx, dword [esp + 0x18]
sub esi, edx
mov al, byte [ecx + ebx]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
sub esi, 1
jne 0x574391
mov ebx, dword [esp + 0x20]
push dword [esp + 0x30]
push dword [esp + 0x74]
call fcn.0045d9a0
add esp, 4
push eax
push dword [esp + 0x3c]
call fcn.00481e90
add esp, 0xc
mov dword [esp + 0x44], eax
test eax, eax
jne 0x5743dc
call fcn.00461410
push str.ossl_sm2_encrypt
push 0xdb
jmp 0x57416e
mov esi, dword [esp + 0x28]
push eax
push esi
call fcn.004817c0
add esp, 8
test eax, eax
je 0x57454c
push ebx
push dword [esp + 0x18]
push esi
call fcn.00481820
add esp, 0xc
test eax, eax
je 0x57454c
push edi
push ebp
push esi
call fcn.00481820
add esp, 0xc
test eax, eax
je 0x57454c
mov eax, dword [esp + 0x14]
push ebx
add eax, ebx
push eax
push esi
call fcn.00481820
mov ebx, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
je 0x574550
push 0
push ebx
push esi
call fcn.00481400
add esp, 0xc
test eax, eax
je 0x574550
mov eax, dword [esp + 0x38]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x5c], eax
call fcn.00480440
mov dword [esp + 0x60], eax
call fcn.00480440
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x64], eax
test ecx, ecx
je 0x57451d
test eax, eax
je 0x57451d
push dword [esp + 0x40]
push ebx
push ecx
call fcn.004a7b40
add esp, 0xc
test eax, eax
je 0x5744ee
push edi
push dword [esp + 0x1c]
push dword [esp + 0x6c]
call fcn.004a7b40
add esp, 0xc
test eax, eax
je 0x5744ee
push 0x6353e0
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x60]
push eax
call fcn.004ab520
add esp, 0xc
test eax, eax
jns 0x5744d8
call fcn.00461410
push str.ossl_sm2_encrypt
push 0xf9
jmp 0x5744fd
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x48], 1
mov dword [ecx], eax
jmp 0x57418d
call fcn.00461410
push str.ossl_sm2_encrypt
push 0xf2
push str.crypto_sm2_sm2_crypt.c
call fcn.00461460
push 0
push 0xc0103
push 0x35
call fcn.00461490
add esp, 0x18
jmp 0x57418d
call fcn.00461410
push str.ossl_sm2_encrypt
push 0xed
push str.crypto_sm2_sm2_crypt.c
call fcn.00461460
push 0
push 0x8000d
push 0x35
call fcn.00461490
add esp, 0x18
jmp 0x57418d
mov ebx, dword [esp + 0x10]
call fcn.00461410
push str.ossl_sm2_encrypt
push 0xe3
push str.crypto_sm2_sm2_crypt.c
call fcn.00461460
push 0
push 0x80006
push 0x35
call fcn.00461490
add esp, 0x18
jmp 0x57418d
call fcn.00461410
push str.ossl_sm2_encrypt
push 0xc7
jmp 0x57416e
call fcn.00461410
push str.ossl_sm2_encrypt
push 0xc1
push str.crypto_sm2_sm2_crypt.c
call fcn.00461460
push 0
push 0x80010
jmp 0x57417f
call fcn.00461410
push str.ossl_sm2_encrypt
push 0x9b
push str.crypto_sm2_sm2_crypt.c
call fcn.00461460
push 0
push 0x80010
push 0x35
call fcn.00461490
add esp, 0x18
xor ebx, ebx
jmp 0x57418d
call fcn.00461410
push str.ossl_sm2_encrypt
push 0x8e
jmp 0x57400a
mov ebx, eax
jmp 0x57418d