Function at 0x55bb40
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x3c
call fcn.0059eec0
push ebx
push ebp
push esi
push edi
push dword [esp + 0x50]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x24], 0
call fcn.00463360
mov ebp, eax
mov dword [esp + 0x28], 0
xor edi, edi
push ebp
mov dword [esp + 0x24], edi
call fcn.0055ba50
push dword [esp + 0x5c]
mov ebx, eax
mov dword [esp + 0x34], ebx
call fcn.0049cd80
add esp, 0xc
mov dword [esp + 0x2c], eax
xor esi, esi
mov dword [esp + 0x18], edi
test ebx, ebx
je 0x55bc00
test eax, eax
jle 0x55bc00
mov eax, dword [esp + 0x64]
push dword [eax]
push 0xff
push dword [esp + 0x68]
call fcn.005a0390
push 0x621448
push dword [esp + 0x6c]
lea eax, [esp + 0x6c]
push eax
push esi
call fcn.004c9af0
mov edi, eax
add esp, 0x1c
mov dword [esp + 0x10], edi
test edi, edi
jne 0x55bc7e
call fcn.00499720
push str.sm2_decrypt
push 0x12c
push str.crypto_sm2_sm2_crypt.c
call fcn.004997d0
push edi
push 0x64
push 0x35
call fcn.00499810
add esp, 0x18
xor ebx, ebx
mov eax, dword [esp + 0x64]
push dword [eax]
push 0
push dword [esp + 0x68]
call fcn.005a0390
add esp, 0xc
push 0x186
push str.crypto_sm2_sm2_crypt.c
push dword [esp + 0x20]
call fcn.00496500
push 0x187
push str.crypto_sm2_sm2_crypt.c
push dword [esp + 0x30]
call fcn.00496500
push 0x188
push str.crypto_sm2_sm2_crypt.c
push ebx
call fcn.00496500
push dword [esp + 0x48]
call fcn.004c5a30
push dword [esp + 0x48]
call fcn.00502880
push 0x621448
push edi
call fcn.004c9760
push esi
call fcn.004a0600
mov eax, dword [esp + 0x70]
add esp, 0x38
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
mov ecx, dword [edi + 8]
mov eax, dword [esp + 0x2c]
cmp dword [ecx], eax
je 0x55bcab
call fcn.00499720
push str.sm2_decrypt
push 0x131
push str.crypto_sm2_sm2_crypt.c
call fcn.004997d0
push 0
push 0x68
jmp 0x55bbf6
mov eax, dword [edi + 0xc]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x48], ecx
mov edi, dword [eax]
mov ebx, dword [eax + 8]
mov dword [esp + 0x40], edi
call fcn.00502a80
mov dword [esp + 0x20], eax
test eax, eax
jne 0x55bcf8
call fcn.00499720
push str.sm2_decrypt
push 0x13b
push str.crypto_sm2_sm2_crypt.c
call fcn.004997d0
push 0
push 0x41
push 0x35
call fcn.00499810
mov edi, dword [esp + 0x28]
jmp 0x55bbfd
push eax
call fcn.00502b60
push dword [esp + 0x24]
call fcn.00502910
push dword [esp + 0x28]
mov dword [esp + 0x3c], eax
call fcn.00502910
add esp, 0xc
mov dword [esp + 0x34], eax
test eax, eax
jne 0x55bd4c
call fcn.00499720
push str.sm2_decrypt
push 0x144
push str.crypto_sm2_sm2_crypt.c
call fcn.004997d0
push 0
push 3
push 0x35
call fcn.00499810
mov edi, dword [esp + 0x28]
jmp 0x55bbfd
push 0x148
push str.crypto_sm2_sm2_crypt.c
push edi
call fcn.00496750
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
push 0x149
add eax, eax
push str.crypto_sm2_sm2_crypt.c
push eax
call fcn.00496750
push 0x14a
push str.crypto_sm2_sm2_crypt.c
push dword [esp + 0x4c]
mov dword [esp + 0x40], eax
call fcn.00496750
add esp, 0x24
mov dword [esp + 0x14], eax
cmp dword [esp + 0x18], esi
je 0x55c190
cmp dword [esp + 0x1c], esi
je 0x55c190
test eax, eax
je 0x55c190
push ebp
call fcn.004c5e30
mov ecx, eax
add esp, 4
mov dword [esp + 0x24], ecx
test ecx, ecx
jne 0x55bdf7
call fcn.00499720
push str.sm2_decrypt
push 0x153
push str.crypto_sm2_sm2_crypt.c
call fcn.004997d0
push 0
push 0x41
push 0x35
call fcn.00499810
mov edi, dword [esp + 0x28]
add esp, 0x18
mov ebx, dword [esp + 0x14]
jmp 0x55bc02
mov eax, dword [esp + 0x10]
push dword [esp + 0x20]
push dword [eax + 4]
push dword [eax]
push ecx
push ebp
call fcn.004c5fa0
add esp, 0x14
test eax, eax
je 0x55c16e
push dword [esp + 0x20]
push dword [esp + 0x54]
call fcn.0049ca10
add esp, 4
push eax
mov eax, dword [esp + 0x2c]
push eax
push 0
push eax
push ebp
call fcn.004c5de0
add esp, 0x18
test eax, eax
je 0x55c16e
push dword [esp + 0x20]
push dword [esp + 0x38]
push dword [esp + 0x38]
push dword [esp + 0x30]
push ebp
call fcn.004c5a60
add esp, 0x14
test eax, eax
je 0x55c16e
mov ebp, dword [esp + 0x28]
push ebp
push dword [esp + 0x20]
push dword [esp + 0x38]
call fcn.004b4b00
add esp, 0xc
test eax, eax
js 0x55c14c
mov eax, dword [esp + 0x1c]
add eax, ebp
push ebp
push eax
push dword [esp + 0x3c]
mov dword [esp + 0x50], eax
call fcn.004b4b00
add esp, 0xc
test eax, eax
js 0x55c14c
push dword [esp + 0x54]
lea eax, [ebp*2]
mov ebp, dword [esp + 0x1c]
push 0
push 0
push eax
push dword [esp + 0x2c]
push edi
push ebp
call fcn.0055ad80
add esp, 0x1c
test eax, eax
je 0x55c14c
xor edx, edx
test edi, edi
je 0x55c032
mov esi, dword [esp + 0x60]
cmp edi, 8
jb 0x55c009
lea eax, [ebp - 1]
lea ecx, [esi - 1]
add eax, edi
add ecx, edi
cmp esi, eax
ja 0x55bef5
cmp ecx, ebp
jae 0x55c009
lea eax, [ebx - 1]
add eax, edi
cmp esi, eax
ja 0x55bf06
cmp ecx, ebx
jae 0x55c009
cmp edi, 0x40
jb 0x55bfb5
mov eax, edi
and eax, 0x8000003f
jns 0x55bf1d
dec eax
or eax, 0xffffffc0
inc eax
mov ecx, dword [esp + 0x60]
mov esi, edi
mov edi, ebx
sub esi, eax
sub edi, ebp
lea eax, [ebp + 0x10]
mov dword [esp + 0x34], edi
add ecx, 0x20
mov edi, dword [esp + 0x60]
sub edi, ebp
mov ebp, ebx
sub ebp, dword [esp + 0x60]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x30], edi
nop dword [eax + eax]
movups xmm0, xmmword [eax - 0x10]
mov edi, dword [esp + 0x30]
lea eax, [eax + 0x40]
movups xmm1, xmmword [edx + ebx]
lea ecx, [ecx + 0x40]
xorps xmm1, xmm0
movups xmmword [ecx - 0x60], xmm1
movups xmm0, xmmword [eax - 0x40]
movups xmm1, xmmword [eax + ebp - 0x40]
xorps xmm1, xmm0
movups xmmword [edi + eax - 0x40], xmm1
mov edi, dword [esp + 0x3c]
movups xmm0, xmmword [eax - 0x30]
movups xmm1, xmmword [edi + ecx - 0x40]
mov edi, dword [esp + 0x40]
xorps xmm1, xmm0
movups xmmword [ecx - 0x40], xmm1
movups xmm1, xmmword [ebx + edx + 0x30]
add edx, 0x40
movups xmm0, xmmword [eax - 0x20]
xorps xmm1, xmm0
movups xmmword [ecx - 0x30], xmm1
cmp edx, esi
jne 0x55bf50
mov ebp, dword [esp + 0x18]
mov eax, edi
and al, 0x3f
cmp al, 8
jb 0x55c001
mov eax, edi
and eax, reloc.WS2_32.dll_getsockopt
jns 0x55bfc3
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, edi
mov esi, ebx
sub ecx, eax
sub esi, ebp
lea eax, [edx + ebp]
mov ebp, dword [esp + 0x60]
sub ebp, dword [esp + 0x18]
nop word [eax + eax]
movq xmm1, qword [eax + esi]
lea eax, [eax + 8]
movq xmm0, qword [eax - 8]
add edx, 8
xorps xmm1, xmm0
movq qword [eax + ebp - 8], xmm1
cmp edx, ecx
jne 0x55bfe0
mov ebp, dword [esp + 0x18]
cmp edx, edi
je 0x55c032
mov esi, dword [esp + 0x60]
sub ebx, ebp
lea ecx, [edx + ebp]
mov ebp, esi
mov esi, edi
sub ebp, dword [esp + 0x18]
sub esi, edx
nop dword [eax + eax]
mov al, byte [ecx + ebx]
lea ecx, [ecx + 1]
xor al, byte [ecx - 1]
mov byte [ecx + ebp - 1], al
sub esi, 1
jne 0x55c020
call fcn.004a0690
mov esi, eax
test esi, esi
jne 0x55c051
call fcn.00499720
push str.sm2_decrypt
push 0x16d
jmp 0x55bdd2
push dword [esp + 0x54]
push esi
call fcn.0049fb60
add esp, 8
test eax, eax
je 0x55c118
mov ebx, dword [esp + 0x28]
push ebx
push dword [esp + 0x20]
push esi
call fcn.0049ffe0
add esp, 0xc
test eax, eax
je 0x55c118
push edi
push dword [esp + 0x64]
push esi
call fcn.0049ffe0
add esp, 0xc
test eax, eax
je 0x55c118
push ebx
push dword [esp + 0x48]
push esi
call fcn.0049ffe0
mov ebx, dword [esp + 0x20]
add esp, 0xc
test eax, eax
je 0x55c11c
push 0
push ebx
push esi
call fcn.0049f8b0
add esp, 0xc
test eax, eax
je 0x55c11c
push dword [esp + 0x2c]
push dword [esp + 0x4c]
push ebx
call fcn.00401390
add esp, 0xc
test eax, eax
je 0x55c101
call fcn.00499720
push str.sm2_decrypt
push 0x17b
push str.crypto_sm2_sm2_crypt.c
call fcn.004997d0
push 0
push 0x66
push 0x35
call fcn.00499810
mov edi, dword [esp + 0x28]
add esp, 0x18
jmp 0x55bc02
mov eax, dword [esp + 0x64]
mov dword [esp + 0x38], 1
mov dword [eax], edi
mov edi, dword [esp + 0x10]
jmp 0x55bc16
mov ebx, dword [esp + 0x14]
call fcn.00499720
push str.sm2_decrypt
push 0x176
push str.crypto_sm2_sm2_crypt.c
call fcn.004997d0
push 0
push 6
push 0x35
call fcn.00499810
mov edi, dword [esp + 0x28]
add esp, 0x18
jmp 0x55bc02
call fcn.00499720
push str.sm2_decrypt
push 0x164
push str.crypto_sm2_sm2_crypt.c
call fcn.004997d0
push 0
push 0x44
jmp 0x55bde0
call fcn.00499720
push str.sm2_decrypt
push 0x15c
push str.crypto_sm2_sm2_crypt.c
call fcn.004997d0
push 0
push 0x10
jmp 0x55bde0
call fcn.00499720
push str.sm2_decrypt
push 0x14d
jmp 0x55bdd2