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

Disassembly:
mov eax, 0x5c
call fcn.0059cab0
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x54], 0
xor ebx, ebx
call fcn.00477b70
mov esi, dword [esp + 0x70]
push esi
mov dword [esp + 0x18], eax
call fcn.00471760
mov ebp, eax
push ebp
call fcn.00471770
push esi
mov dword [esp + 0x4c], eax
call fcn.00471860
push dword [esp + 0x80]
mov dword [esp + 0x68], eax
xor edi, edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x38], ebx
call fcn.00494cd0
push esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x64], ebx
call fcn.004a2290
push esi
mov dword [esp + 0x44], eax
call fcn.004a2280
add esp, 0x18
mov dword [esp + 0x44], eax
mov dword [esp + 0x68], ebx
mov dword [esp + 0x64], ebx
cmp dword [esp + 0x14], ebx
je 0x57f909
cmp dword [esp + 0x30], ebx
jle 0x57f909
push ebp
call fcn.0057ea40
mov esi, eax
add esp, 4
mov dword [esp + 0x24], esi
test esi, esi
jne 0x57f331
call fcn.00476d60
push str.ossl_sm2_encrypt
push 0xa0
jmp 0x57f918
push ebp
call fcn.00472f40
push ebp
mov dword [esp + 0x20], eax
call fcn.00472f40
push dword [esp + 0x34]
mov dword [esp + 0x28], eax
call fcn.00474e40
add esp, 0xc
mov ebx, eax
cmp dword [esp + 0x18], edi
je 0x57f8f5
cmp dword [esp + 0x1c], edi
je 0x57f8f5
test ebx, ebx
je 0x57f8f5
push ebx
call fcn.00474f10
push ebx
call fcn.00474cc0
push ebx
mov dword [esp + 0x2c], eax
call fcn.00474cc0
push ebx
mov dword [esp + 0x58], eax
call fcn.00474cc0
push ebx
mov dword [esp + 0x48], eax
call fcn.00474cc0
push ebx
mov dword [esp + 0x64], eax
call fcn.00474cc0
add esp, 0x18
mov dword [esp + 0x38], eax
test eax, eax
jne 0x57f3d3
call fcn.00476d60
push str.ossl_sm2_encrypt
push 0xb4
push str.crypto_sm2_sm2_crypt.c
call fcn.00476e60
push 0
push 0x80003
jmp 0x57f929
push 0xb8
lea eax, [esi + esi]
push str.crypto_sm2_sm2_crypt.c
push eax
mov dword [esp + 0x48], eax
call fcn.00476d00
push 0xb9
push str.crypto_sm2_sm2_crypt.c
push dword [esp + 0x44]
mov dword [esp + 0x28], eax
call fcn.00476d00
add esp, 0x18
mov dword [esp + 0x28], eax
cmp dword [esp + 0x10], edi
je 0x57f8e1
test eax, eax
je 0x57f8e1
mov eax, dword [esp + 0x84]
push dword [eax]
push 0
push dword [esp + 0x88]
call fcn.0059e1f0
mov esi, dword [esp + 0x88]
push 0xc2
push str.crypto_sm2_sm2_crypt.c
push esi
call fcn.00476d00
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x57f476
call fcn.00476d60
push str.ossl_sm2_encrypt
push 0xc4
push str.crypto_sm2_sm2_crypt.c
call fcn.00476e60
push 0
push 0xc0100
jmp 0x57f929
push ebx
push 0
push dword [esp + 0x48]
push dword [esp + 0x2c]
call fcn.0046ea30
add esp, 0x10
test eax, eax
je 0x57f61a
push ebx
push 0
push 0
push dword [esp + 0x2c]
push dword [esp + 0x28]
push ebp
call fcn.00472e00
add esp, 0x18
test eax, eax
je 0x57f8bf
push ebx
push dword [esp + 0x50]
push dword [esp + 0x50]
push dword [esp + 0x24]
push ebp
call fcn.00472b10
add esp, 0x14
test eax, eax
je 0x57f8bf
push ebx
push dword [esp + 0x24]
push dword [esp + 0x60]
push 0
push dword [esp + 0x2c]
push ebp
call fcn.00472e00
add esp, 0x18
test eax, eax
je 0x57f8bf
push ebx
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push dword [esp + 0x28]
push ebp
call fcn.00472b10
add esp, 0x14
test eax, eax
je 0x57f8bf
push dword [esp + 0x24]
push dword [esp + 0x14]
push dword [esp + 0x3c]
call fcn.0046f550
add esp, 0xc
test eax, eax
js 0x57f8ae
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
push ecx
add eax, ecx
push eax
push dword [esp + 0x40]
call fcn.0046f550
add esp, 0xc
test eax, eax
js 0x57f8ae
push dword [esp + 0x44]
push dword [esp + 0x30]
push dword [esp + 0x7c]
push 0
push 0
push dword [esp + 0x50]
push dword [esp + 0x28]
push esi
push edi
call fcn.004e5430
add esp, 0x24
test eax, eax
je 0x57f89d
xor cl, cl
xor eax, eax
test esi, esi
je 0x57f5f0
cmp esi, 0x20
jb 0x57f5e4
mov ecx, esi
xorps xmm2, xmm2
and ecx, 0xffffffe0
xorps xmm1, xmm1
nop dword [eax]
movups xmm0, xmmword [eax + edi]
por xmm2, xmm0
movups xmm0, xmmword [eax + edi + 0x10]
add eax, 0x20
por xmm1, xmm0
cmp eax, ecx
jb 0x57f590
por xmm1, xmm2
movaps xmm0, xmm1
psrldq xmm0, 8
por xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
por xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 2
por xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 1
por xmm1, xmm0
movd ecx, xmm1
cmp eax, esi
jae 0x57f5ec
or cl, byte [eax + edi]
inc eax
cmp eax, esi
jb 0x57f5e4
test cl, cl
jne 0x57f62e
push dword [esp + 0x3c]
push 0
push dword [esp + 0x18]
call fcn.0059e1f0
push ebx
push 0
push dword [esp + 0x54]
push dword [esp + 0x38]
call fcn.0046ea30
add esp, 0x1c
test eax, eax
jne 0x57f491
call fcn.00476d60
push str.ossl_sm2_encrypt
push 0xca
jmp 0x57f918
mov ebp, dword [esp + 0x78]
xor edx, edx
cmp esi, 0x40
jb 0x57f6ce
lea eax, [ebp - 1]
lea ecx, [esi - 1]
add eax, esi
add ecx, edi
cmp edi, eax
ja 0x57f653
cmp ecx, ebp
jae 0x57f6ce
mov eax, esi
lea ecx, [ebp + 0x30]
and eax, 0xffffffc0
mov esi, ebp
sub esi, edi
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], esi
lea eax, [edi + 0x10]
mov esi, dword [esp + 0x7c]
mov ebp, dword [esp + 0x58]
movups xmm0, xmmword [eax - 0x10]
add edx, 0x40
lea ecx, [ecx + 0x40]
lea eax, [eax + 0x40]
movups xmm1, xmmword [ecx - 0x70]
pxor xmm1, xmm0
movups xmmword [eax - 0x50], xmm1
movups xmm0, xmmword [eax - 0x40]
movups xmm1, xmmword [eax + ebp - 0x40]
pxor xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
movups xmm1, xmmword [ecx - 0x50]
pxor xmm1, xmm0
movups xmmword [eax - 0x30], xmm1
movups xmm0, xmmword [eax - 0x20]
movups xmm1, xmmword [ecx - 0x40]
pxor xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
cmp edx, dword [esp + 0x50]
jne 0x57f672
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x58], edx
cmp edx, esi
je 0x57f6f2
sub ebp, edi
lea ecx, [edx + edi]
mov dword [esp + 0x58], ebp
mov ebp, esi
mov esi, dword [esp + 0x58]
sub ebp, edx
nop
mov al, byte [ecx + esi]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
sub ebp, 1
jne 0x57f6e0
mov esi, dword [esp + 0x7c]
push dword [esp + 0x44]
push dword [esp + 0x78]
call fcn.00494c60
add esp, 4
push eax
push dword [esp + 0x34]
call fcn.00477c00
add esp, 0xc
mov dword [esp + 0x50], eax
test eax, eax
jne 0x57f72b
call fcn.00476d60
push str.ossl_sm2_encrypt
push 0xed
jmp 0x57f918
mov ebp, dword [esp + 0x14]
push eax
push ebp
call fcn.00477530
add esp, 8
test eax, eax
je 0x57f878
push dword [esp + 0x24]
mov ebp, dword [esp + 0x14]
push ebp
push dword [esp + 0x1c]
call fcn.00477590
add esp, 0xc
test eax, eax
je 0x57f878
push esi
push dword [esp + 0x7c]
push dword [esp + 0x1c]
call fcn.00477590
add esp, 0xc
test eax, eax
je 0x57f878
mov eax, dword [esp + 0x24]
push eax
add eax, ebp
mov ebp, dword [esp + 0x18]
push eax
push ebp
call fcn.00477590
add esp, 0xc
test eax, eax
je 0x57f878
push 0
push dword [esp + 0x2c]
push ebp
call fcn.00477250
add esp, 0xc
test eax, eax
je 0x57f878
mov eax, dword [esp + 0x48]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x60], eax
call fcn.004b1e70
mov dword [esp + 0x64], eax
call fcn.004b1e70
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x68], eax
test ecx, ecx
je 0x57f864
test eax, eax
je 0x57f864
push dword [esp + 0x30]
push dword [esp + 0x2c]
push ecx
call fcn.004c6540
add esp, 0xc
test eax, eax
je 0x57f850
push esi
push edi
push dword [esp + 0x70]
call fcn.004c6540
add esp, 0xc
test eax, eax
je 0x57f850
push 0x636970
lea eax, [esp + 0x84]
push eax
lea eax, [esp + 0x64]
push eax
call fcn.004ca510
add esp, 0xc
test eax, eax
jns 0x57f83a
call fcn.00476d60
push str.ossl_sm2_encrypt
push 0x10b
jmp 0x57f918
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x54], 1
mov dword [ecx], eax
jmp 0x57f933
call fcn.00476d60
push str.ossl_sm2_encrypt
push 0x104
jmp 0x57f918
call fcn.00476d60
push str.ossl_sm2_encrypt
push 0xff
jmp 0x57f460
call fcn.00476d60
push str.ossl_sm2_encrypt
push 0xf5
push str.crypto_sm2_sm2_crypt.c
call fcn.00476e60
push 0
push 0x80006
jmp 0x57f929
call fcn.00476d60
push str.ossl_sm2_encrypt
push 0xdf
jmp 0x57f887
call fcn.00476d60
push str.ossl_sm2_encrypt
push 0xd8
jmp 0x57f918
call fcn.00476d60
push str.ossl_sm2_encrypt
push 0xd2
push str.crypto_sm2_sm2_crypt.c
call fcn.00476e60
push 0
push 0x80010
jmp 0x57f929
call fcn.00476d60
push str.ossl_sm2_encrypt
push 0xbc
jmp 0x57f460
call fcn.00476d60
push str.ossl_sm2_encrypt
push 0xa8
jmp 0x57f460
call fcn.00476d60
push str.ossl_sm2_encrypt
push 0x9a
push str.crypto_sm2_sm2_crypt.c
call fcn.00476e60
push 0
push 0xc0103
push 0x35
call fcn.00476f10
add esp, 0x18
push dword [esp + 0x50]
call fcn.00477c30
push dword [esp + 0x6c]
call fcn.004b1d60
push dword [esp + 0x6c]
call fcn.004b1d60
push 0x116
push str.crypto_sm2_sm2_crypt.c
push edi
call fcn.00476aa0
push 0x117
push str.crypto_sm2_sm2_crypt.c
push dword [esp + 0x30]
call fcn.00476aa0
push pe_nt_image_headers32
push str.crypto_sm2_sm2_crypt.c
push dword [esp + 0x54]
call fcn.00476aa0
push dword [esp + 0x44]
call fcn.00477ae0
push ebx
call fcn.00474c30
push dword [esp + 0x50]
call fcn.00472ae0
push dword [esp + 0x58]
call fcn.00472ae0
mov eax, dword [esp + 0x94]
add esp, 0x40
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret