Function at 0x462d28
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
add esp, 0xffffffc8
mov ebx, ecx
mov esi, edx
mov dword [esp], eax
shr ebx, 3
lea eax, [esp + 0x18]
xor ecx, ecx
mov edx, 0x20
call fcn.00442c6c
lea edx, [esp + 0x18]
mov eax, esi
mov ecx, ebx
call fcn.00442338
cmp ebx, 0x10
ja 0x462d69
mov ecx, 4
mov dword [esp + 4], 0xa
jmp 0x462d8a
cmp ebx, 0x18
ja 0x462d7d
mov ecx, 6
mov dword [esp + 4], 0xc
jmp 0x462d8a
mov ecx, 8
mov dword [esp + 4], 0xe
mov eax, dword [esp]
mov edx, dword [esp + 4]
mov dword [eax + 0x28], edx
xor esi, esi
xor edx, edx
xor eax, eax
jmp 0x462dc5
mov ebx, esi
add ebx, ebx
add ebx, ebx
mov edi, dword [esp]
lea ebx, [edi + ebx*8]
mov edi, dword [esp + eax*4 + 0x18]
mov dword [ebx + edx*4 + 0x2c], edi
inc eax
inc edx
cmp ecx, eax
jbe 0x462dbd
cmp edx, 4
jb 0x462d9e
cmp edx, 4
jne 0x462dc5
xor edx, edx
inc esi
cmp ecx, eax
jbe 0x462dd2
mov ebx, dword [esp + 4]
inc ebx
cmp esi, ebx
jb 0x462db4
xor eax, eax
mov dword [esp + 8], eax
jmp 0x462f54
movzx eax, byte [esp + ecx*4 + 0x15]
movzx eax, byte [eax + 0x441580]
xor byte [esp + 0x18], al
movzx eax, byte [esp + ecx*4 + 0x16]
movzx eax, byte [eax + 0x441580]
xor byte [esp + 0x19], al
movzx eax, byte [esp + ecx*4 + 0x17]
movzx eax, byte [eax + 0x441580]
xor byte [esp + 0x1a], al
movzx eax, byte [esp + ecx*4 + 0x14]
movzx eax, byte [eax + 0x441580]
xor byte [esp + 0x1b], al
mov eax, dword [esp + 8]
movzx eax, byte [eax*4 + 0x444780]
xor byte [esp + 0x18], al
inc dword [esp + 8]
cmp ecx, 8
je 0x462e5c
mov eax, ecx
dec eax
test eax, eax
jbe 0x462f1a
mov dword [esp + 0xc], eax
lea edi, [esp + 0x18]
mov eax, dword [edi]
xor dword [edi + 4], eax
add edi, 4
dec dword [esp + 0xc]
jne 0x462e49
jmp 0x462f1a
mov eax, ecx
shr eax, 1
dec eax
test eax, eax
jbe 0x462e89
mov dword [esp + 0xc], eax
lea eax, [esp + 0x18]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov ebx, dword [esp + 0x10]
xor dword [ebx + 4], eax
add dword [esp + 0x10], 4
dec dword [esp + 0xc]
jne 0x462e71
mov eax, ecx
shr eax, 1
movzx eax, byte [esp + eax*4 + 0x14]
movzx eax, byte [eax + 0x441580]
mov ebx, ecx
shr ebx, 1
xor byte [esp + ebx*4 + 0x18], al
mov eax, ecx
shr eax, 1
movzx eax, byte [esp + eax*4 + 0x15]
movzx eax, byte [eax + 0x441580]
mov ebx, ecx
shr ebx, 1
xor byte [esp + ebx*4 + 0x19], al
mov eax, ecx
shr eax, 1
movzx eax, byte [esp + eax*4 + 0x16]
movzx eax, byte [eax + 0x441580]
mov ebx, ecx
shr ebx, 1
xor byte [esp + ebx*4 + 0x1a], al
mov eax, ecx
shr eax, 1
movzx eax, byte [esp + eax*4 + 0x17]
movzx eax, byte [eax + 0x441580]
mov ebx, ecx
shr ebx, 1
xor byte [esp + ebx*4 + 0x1b], al
mov eax, ecx
shr eax, 1
inc eax
mov ebx, ecx
dec ebx
sub ebx, eax
jb 0x462f1a
inc ebx
mov dword [esp + 0xc], ebx
lea eax, [esp + eax*4 + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ebx, dword [esp + 0x14]
xor dword [ebx + 4], eax
add dword [esp + 0x14], 4
dec dword [esp + 0xc]
jne 0x462f02
xor eax, eax
jmp 0x462f47
mov ebx, esi
add ebx, ebx
add ebx, ebx
mov edi, dword [esp]
lea ebx, [edi + ebx*8]
mov edi, dword [esp + eax*4 + 0x18]
mov dword [ebx + edx*4 + 0x2c], edi
inc eax
inc edx
cmp ecx, eax
jbe 0x462f3f
cmp edx, 4
jb 0x462f20
cmp edx, 4
jne 0x462f47
inc esi
xor edx, edx
cmp ecx, eax
jbe 0x462f54
mov ebx, dword [esp + 4]
inc ebx
cmp esi, ebx
jb 0x462f36
mov eax, dword [esp + 4]
inc eax
cmp esi, eax
jb 0x462ddd
mov eax, dword [esp]
lea edx, [eax + 0x20c]
mov eax, dword [esp]
add eax, 0x2c
mov ecx, 0x1e0
call fcn.00442338
mov eax, dword [esp]
mov eax, dword [eax + 0x28]
dec eax
test eax, eax
jbe 0x462faf
mov dword [esp + 0xc], eax
mov esi, 1
mov eax, esi
add eax, eax
add eax, eax
mov edx, dword [esp]
lea edx, [edx + eax*8 + 0x20c]
mov cl, 4
mov eax, dword [esp]
call fcn.00462cd8
inc esi
dec dword [esp + 0xc]
jne 0x462f8e
add esp, 0x38
pop edi
pop esi
pop ebx
ret