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

Disassembly:
mov eax, 0x64
call fcn.005f62e0
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x58], 0
xor ebx, ebx
call fcn.004e3b40
mov esi, dword [esp + 0x78]
push esi
mov dword [esp + 0x1c], eax
call fcn.0047fb60
mov ebp, eax
push ebp
call fcn.004adfa0
push esi
mov dword [esp + 0x50], eax
call fcn.004c16c0
push dword [esp + 0x88]
mov dword [esp + 0x6c], eax
xor edi, edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x34], ebx
call fcn.004c17b0
push esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x68], ebx
call fcn.004dc810
push esi
mov dword [esp + 0x44], eax
call fcn.00523c30
add esp, 0x18
mov dword [esp + 0x48], eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x6c], ebx
cmp dword [esp + 0x18], ebx
je 0x5e0a4a
cmp dword [esp + 0x34], ebx
jle 0x5e0a4a
push ebp
call fcn.004cb840
add esp, 4
test eax, eax
je 0x5e0a39
push eax
call fcn.004deb80
add eax, 7
add esp, 4
cdq
and edx, 7
lea esi, [edx + eax]
sar esi, 3
mov dword [esp + 0x30], esi
test esi, esi
je 0x5e0a39
push ebp
call fcn.00521fc0
push ebp
mov dword [esp + 0x24], eax
call fcn.00521fc0
add esp, 8
mov dword [esp + 0x28], eax
cmp dword [esp + 0x1c], ebx
je 0x5e0a28
test eax, eax
je 0x5e0a28
push dword [esp + 0x2c]
call fcn.00540ce0
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x5e049d
call fcn.004c22a0
push str.ossl_sm2_encrypt
push 0x9f
push str.crypto_sm2_sm2_crypt.c
call fcn.004c23a0
push 0
push 0x80003
jmp 0x5e0a6a
push ebx
call fcn.00540d80
push ebx
call fcn.00540b90
push ebx
mov dword [esp + 0x2c], eax
call fcn.00540b90
push ebx
mov dword [esp + 0x5c], eax
call fcn.00540b90
push ebx
mov dword [esp + 0x4c], eax
call fcn.00540b90
push ebx
mov dword [esp + 0x68], eax
call fcn.00540b90
add esp, 0x18
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x5e04ed
call fcn.004c22a0
push str.ossl_sm2_encrypt
push 0xab
jmp 0x5e0487
push 0xaf
lea eax, [esi + esi]
push str.crypto_sm2_sm2_crypt.c
push eax
mov dword [esp + 0x4c], eax
call fcn.004c0bd0
push 0xb0
push str.crypto_sm2_sm2_crypt.c
push dword [esp + 0x48]
mov dword [esp + 0x2c], eax
call fcn.004c0bd0
add esp, 0x18
mov dword [esp + 0x24], eax
cmp dword [esp + 0x14], edi
je 0x5e0a74
test eax, eax
je 0x5e0a74
mov eax, dword [esp + 0x8c]
push dword [eax]
push 0
push dword [esp + 0x90]
call fcn.005f77b0
mov esi, dword [esp + 0x90]
push 0xb7
push str.crypto_sm2_sm2_crypt.c
push esi
call fcn.004c0bd0
mov edi, eax
add esp, 0x18
test edi, edi
je 0x5e0a74
push ebx
push 0
push dword [esp + 0x4c]
push dword [esp + 0x2c]
call fcn.0056b430
add esp, 0x10
test eax, eax
je 0x5e0716
nop word [eax + eax]
push ebx
push 0
push 0
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push ebp
call fcn.00521e70
add esp, 0x18
test eax, eax
je 0x5e0a06
push ebx
push dword [esp + 0x54]
push dword [esp + 0x54]
push dword [esp + 0x28]
push ebp
call fcn.00521b80
add esp, 0x14
test eax, eax
je 0x5e0a06
push ebx
push dword [esp + 0x24]
push dword [esp + 0x64]
push 0
push dword [esp + 0x38]
push ebp
call fcn.00521e70
add esp, 0x18
test eax, eax
je 0x5e0a06
push ebx
push dword [esp + 0x40]
push dword [esp + 0x40]
push dword [esp + 0x34]
push ebp
call fcn.00521b80
add esp, 0x14
test eax, eax
je 0x5e0a06
push dword [esp + 0x30]
push dword [esp + 0x18]
push dword [esp + 0x40]
call fcn.004de530
add esp, 0xc
test eax, eax
js 0x5e09f5
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
add eax, ecx
push ecx
push eax
push dword [esp + 0x44]
mov dword [esp + 0x6c], eax
call fcn.004de530
add esp, 0xc
test eax, eax
js 0x5e09f5
push dword [esp + 0x48]
push dword [esp + 0x30]
push dword [esp + 0x84]
push 0
push 0
push dword [esp + 0x54]
push dword [esp + 0x2c]
push esi
push edi
call fcn.00526440
add esp, 0x24
test eax, eax
je 0x5e09e4
xor cl, cl
xor eax, eax
test esi, esi
je 0x5e06ec
cmp esi, 0x20
jb 0x5e06e0
mov ecx, esi
xorps xmm2, xmm2
and ecx, 0xffffffe0
xorps xmm1, xmm1
nop
movups xmm0, xmmword [eax + edi]
orps xmm2, xmm0
movups xmm0, xmmword [eax + edi + 0x10]
add eax, 0x20
orps xmm1, xmm0
cmp eax, ecx
jb 0x5e0690
orps xmm1, xmm2
movaps xmm0, xmm1
psrldq xmm0, 8
orps xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
orps xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 2
orps xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 1
orps xmm1, xmm0
movd ecx, xmm1
cmp eax, esi
jae 0x5e06e8
nop dword [eax]
or cl, byte [eax + edi]
inc eax
cmp eax, esi
jb 0x5e06e0
test cl, cl
jne 0x5e072a
push dword [esp + 0x40]
push 0
push dword [esp + 0x1c]
call fcn.005f77b0
push ebx
push 0
push dword [esp + 0x58]
push dword [esp + 0x38]
call fcn.0056b430
add esp, 0x1c
test eax, eax
jne 0x5e0590
call fcn.004c22a0
push str.ossl_sm2_encrypt
push 0xbd
jmp 0x5e0a59
mov ebp, dword [esp + 0x80]
xor ecx, ecx
cmp esi, 8
jb 0x5e07f7
lea eax, [ebp - 1]
lea edx, [esi - 1]
add eax, esi
add edx, edi
cmp edi, eax
ja 0x5e0752
cmp edx, ebp
jae 0x5e07f7
cmp esi, 0x40
jb 0x5e07c5
mov edx, esi
mov eax, esi
and edx, 0x3f
sub eax, edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x5c], eax
lea edx, [ebp + 0x30]
lea eax, [edi + 0x10]
sub ebp, edi
movups xmm0, xmmword [eax - 0x10]
add ecx, 0x40
lea edx, [edx + 0x40]
lea eax, [eax + 0x40]
movups xmm1, xmmword [edx - 0x70]
xorps xmm1, xmm0
movups xmmword [eax - 0x50], xmm1
movups xmm0, xmmword [eax - 0x40]
movups xmm1, xmmword [eax + ebp - 0x40]
xorps xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
movups xmm1, xmmword [edx - 0x50]
xorps xmm1, xmm0
movups xmmword [eax - 0x30], xmm1
movups xmm1, xmmword [eax - 0x20]
movups xmm0, xmmword [edx - 0x40]
xorps xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
cmp ecx, dword [esp + 0x5c]
jne 0x5e0770
cmp dword [esp + 0x54], 8
jb 0x5e07ec
jmp 0x5e07c7
sub ebp, edi
mov edx, esi
lea eax, [ecx + edi]
and edx, 0xfffffff8
nop
movq xmm1, qword [eax + ebp]
lea eax, [eax + 8]
movq xmm0, qword [eax - 8]
add ecx, 8
xorps xmm1, xmm0
movq qword [eax - 8], xmm1
cmp ecx, edx
jne 0x5e07d0
cmp ecx, esi
je 0x5e0825
mov ebp, dword [esp + 0x80]
sub ebp, edi
lea edx, [ecx + edi]
mov dword [esp + 0x5c], ebp
mov ebp, esi
mov esi, dword [esp + 0x5c]
sub ebp, ecx
nop dword [eax + eax]
mov al, byte [edx + esi]
lea edx, [edx + 1]
xor byte [edx - 1], al
sub ebp, 1
jne 0x5e0810
mov esi, dword [esp + 0x84]
push dword [esp + 0x48]
push dword [esp + 0x80]
call fcn.004c1740
add esp, 4
push eax
push dword [esp + 0x34]
call fcn.004e3bd0
add esp, 0xc
mov dword [esp + 0x54], eax
test eax, eax
jne 0x5e0861
call fcn.004c22a0
push str.ossl_sm2_encrypt
push 0xe0
jmp 0x5e0a59
mov ebp, dword [esp + 0x18]
push eax
push ebp
call fcn.004e34e0
add esp, 8
test eax, eax
je 0x5e09bf
mov ebp, dword [esp + 0x30]
push ebp
push dword [esp + 0x18]
push dword [esp + 0x20]
call fcn.004e3540
add esp, 0xc
test eax, eax
je 0x5e09bf
push esi
push dword [esp + 0x84]
push dword [esp + 0x20]
call fcn.004e3540
add esp, 0xc
test eax, eax
je 0x5e09bf
push ebp
push dword [esp + 0x64]
mov ebp, dword [esp + 0x20]
push ebp
call fcn.004e3540
add esp, 0xc
test eax, eax
je 0x5e09bf
push 0
push dword [esp + 0x28]
push ebp
call fcn.004e3120
add esp, 0xc
test eax, eax
je 0x5e09bf
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x68], eax
call fcn.004f1760
mov dword [esp + 0x6c], eax
call fcn.004f1760
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x70], eax
test ecx, ecx
je 0x5e099a
test eax, eax
je 0x5e099a
push dword [esp + 0x34]
push dword [esp + 0x28]
push ecx
call fcn.00511040
add esp, 0xc
test eax, eax
je 0x5e0986
push esi
push edi
push dword [esp + 0x78]
call fcn.00511040
add esp, 0xc
test eax, eax
je 0x5e0986
push 0x6a8e00
lea eax, [esp + 0x8c]
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.00516c50
add esp, 0xc
test eax, eax
jns 0x5e0970
call fcn.004c22a0
push str.ossl_sm2_encrypt
push 0xfe
jmp 0x5e0a59
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x58], 1
mov dword [ecx], eax
jmp 0x5e0a74
call fcn.004c22a0
push str.ossl_sm2_encrypt
push 0xf7
jmp 0x5e0a59
call fcn.004c22a0
push str.ossl_sm2_encrypt
push 0xf2
push str.crypto_sm2_sm2_crypt.c
call fcn.004c23a0
push 0
push 0x8000d
jmp 0x5e0a6a
call fcn.004c22a0
push str.ossl_sm2_encrypt
push 0xe8
push str.crypto_sm2_sm2_crypt.c
call fcn.004c23a0
push 0
push 0x80006
jmp 0x5e0a6a
call fcn.004c22a0
push str.ossl_sm2_encrypt
push 0xd2
jmp 0x5e09ce
call fcn.004c22a0
push str.ossl_sm2_encrypt
push 0xcb
jmp 0x5e0a59
call fcn.004c22a0
push str.ossl_sm2_encrypt
push 0xc5
push str.crypto_sm2_sm2_crypt.c
call fcn.004c23a0
push 0
push 0x80010
jmp 0x5e0a6a
call fcn.004c22a0
push str.ossl_sm2_encrypt
push 0x9a
jmp 0x5e0a15
call fcn.004c22a0
push str.ossl_sm2_encrypt
push 0x93
jmp 0x5e0a59
call fcn.004c22a0
push str.ossl_sm2_encrypt
push 0x8d
push str.crypto_sm2_sm2_crypt.c
call fcn.004c23a0
push 0
push 0xc0103
push 0x35
call fcn.004c24b0
add esp, 0x18
push dword [esp + 0x54]
call fcn.004e3c00
push dword [esp + 0x74]
call fcn.004f1650
push dword [esp + 0x74]
call fcn.004f1650
push 0x109
push str.crypto_sm2_sm2_crypt.c
push edi
call fcn.004c09d0
push 0x10a
push str.crypto_sm2_sm2_crypt.c
push dword [esp + 0x34]
call fcn.004c09d0
push 0x10b
push str.crypto_sm2_sm2_crypt.c
push dword [esp + 0x50]
call fcn.004c09d0
push dword [esp + 0x48]
call fcn.004e3ab0
push ebx
call fcn.00540b00
push dword [esp + 0x54]
call fcn.00521b50
push dword [esp + 0x64]
call fcn.00521b50
mov eax, dword [esp + 0x98]
add esp, 0x40
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret