Function at 0x433cd0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push edi
push 0x4e28
mov bl, cl
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov edi, eax
movzx ecx, bl
shl ecx, 7
mov edx, edi
push 0x4e28
add ecx, 0xb0b580
mov dword [ebp - 0x14], edi
mov dword [ebp - 8], edi
call fcn.0042cde0
mov ecx, eax
mov byte [ebp - 1], 0
add esp, 8
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x433eef
mov eax, dword [edi]
cmp eax, 0xffff4a06
je 0x433eef
cmp eax, 0xffff5c92
je 0x433d39
shr ecx, 1
mov edx, ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], edx
jmp 0x433d6a
lea eax, [edi + 8]
mov byte [ebp - 1], 1
mov dword [ebp - 8], eax
movzx eax, byte [edi + 6]
lea edx, [eax + eax*4]
movzx eax, byte [edi + 7]
shl edx, 3
mov dword [ebp - 0x10], edx
lea eax, [eax + eax*4]
shl eax, 3
mov dword [ebp - 0xc], eax
add eax, 8
add eax, edx
cmp eax, ecx
jne 0x433eef
mov ebx, dword [0xa89048]
push esi
test edx, edx
je 0x433db8
mov eax, edx
mov esi, ebx
shr eax, 2
mov dword [ebp - 0x18], eax
test eax, eax
je 0x433db8
xor edi, edi
mov ebx, eax
mov ecx, esi
mov edx, esi
shr ecx, 2
mov eax, esi
add ecx, dword [0xa89008]
shr edx, 3
add ecx, edx
shr eax, 1
mov edx, dword [ebp - 8]
add eax, ecx
add esi, eax
xor dword [edx + edi*4], esi
inc edi
cmp edi, ebx
jb 0x433d87
mov edi, dword [ebp - 0x14]
mov ebx, dword [0xa89048]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
add eax, edx
mov dword [ebp - 0x18], eax
test esi, esi
je 0x433e04
mov eax, esi
shr eax, 2
mov dword [ebp - 0x20], eax
test eax, eax
je 0x433e04
mov esi, dword [ebp - 0x18]
xor edi, edi
mov ecx, ebx
mov edx, ebx
shr ecx, 2
mov eax, ebx
add ecx, dword [0xa89008]
shr edx, 3
shr eax, 1
add ecx, edx
add eax, ecx
add ebx, eax
xor dword [esi + edi*4], ebx
inc edi
cmp edi, dword [ebp - 0x20]
jb 0x433dd8
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
push edx
push dword [ebp - 8]
push 0x7efde0
call sub.VCRUNTIME140.dll_memcpy
push esi
push dword [ebp - 0x18]
push 0x7ed6d0
call sub.VCRUNTIME140.dll_memcpy
add esp, 0x18
cmp byte [ebp - 1], 0
je 0x433edc
mov ebx, dword [ebp - 0x1c]
xor edx, edx
xor esi, esi
mov dword [ebp - 0xc], edx
mov ecx, 8
mov dword [ebp - 0x10], esi
cmp ebx, ecx
jbe 0x433ea1
lea eax, [ebx - 8]
cmp eax, 2
jb 0x433e7a
mov dx, si
dec ebx
mov si, word [ebp - 0xc]
movsx eax, byte [edi + ecx]
add si, ax
movsx eax, byte [edi + ecx + 1]
add ecx, 2
add dx, ax
cmp ecx, ebx
jb 0x433e53
mov ebx, dword [ebp - 0x1c]
mov word [ebp - 0x10], dx
mov word [ebp - 0xc], si
mov esi, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
cmp ecx, ebx
jae 0x433e95
movsx ax, byte [ecx + edi]
mov ecx, 0x38b9
add ax, cx
movzx ecx, ax
lea eax, [esi + edx]
add ecx, eax
jmp 0x433ea6
mov ecx, 0x38b9
lea eax, [esi + edx]
add ecx, eax
jmp 0x433ea6
mov ecx, 0x38b9
cmp cx, word [edi + 4]
je 0x433edc
push 0x2710
push 0
push 0x7efde0
call sub.VCRUNTIME140.dll_memset
push 0x2710
push 0
push 0x7ed6d0
call sub.VCRUNTIME140.dll_memset
xorps xmm0, xmm0
add esp, 0x18
movq qword [0x7e8338], xmm0
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov al, 1
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
xor al, al
pop edi
pop ebx
mov esp, ebp
pop ebp
ret