Function at 0x420a27
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x98
mov dword [esp + 0x1c], 0x25652307
mov dword [esp + 0x20], 0x29b827b6
mov dword [esp + 0x24], 0x2d4d2b6e
mov dword [esp + 0x28], 0x51312fba
mov dword [esp + 0x2c], 0x55285377
mov dword [esp + 0x30], 0x59305722
mov dword [esp + 0x34], 0x5d325bcf
mov dword [esp + 0x38], 0x41255f3a
mov dword [esp + 0x3c], 0x452643d0
mov dword [esp + 0x40], 0x49da472f
mov dword [esp + 0x44], 0x4d304b2e
mov dword [esp + 0x48], 0x71e24f3e
mov dword [esp + 0x4c], 0x7512731d
mov dword [esp + 0x50], 0x7914771f
mov dword [esp + 0x54], 0x7def7b1f
lea eax, [esp + 0x58]
mov word [esp + 0x58], 0x7f7e
xor ecx, ecx
nop
mov edx, ecx
add dl, 0xb2
xor dl, byte [esp + ecx + 0x1c]
add dl, 0x70
mov byte [esp + ecx + 0x1c], dl
inc ecx
cmp ecx, 0x3e
jne case.default.0x4209cc
lea esi, [esp + 0x5a]
lea edx, [esp + 0x1c]
mov edi, esi
mov ecx, 0xf
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x96]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esp + 0x18]
push eax
push 0
push 0
push 0x1e
push esi
push 0
call dword [0x444994]
xor ecx, ecx
cmp eax, 0xc0000023
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x43f340]
mov ebx, dword [esp + 0x18]
test ebx, ebx
jns 0x4209e2
mov edi, 0xffffffff
jmp 0x4209e5
lea edi, [ebx + ebx]
mov esi, dword [case.0x4209cc.4]
nop
nop
nop
nop
nop
push edi
call fcn.00408310
add esp, 4
jmp esi
mov ebp, eax
lea eax, [esp + 0x18]
push eax
push ebx
push ebp
push 0x1e
lea eax, [esp + 0x6a]
push eax
push 0
call dword [0x444994]
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x43f358]
jmp dword [0x43f360]
mov dword [esp], 0x54ab5285
mov dword [esp + 4], 0x68a956a0
mov dword [esp + 8], 0x6c8e6a8d
mov dword [esp + 0xc], 0x608d6e9f
mov dword [esp + 0x10], 0x64916298
mov dword [esp + 0x14], 0x78676681
mov eax, 0x111db299
mov ecx, 0x6ee24d66
movzx edx, byte [esp + eax - 0x111db299]
mov esi, ecx
and esi, 0x622401d
mov edi, ecx
not edi
mov ebx, eax
and ebx, 0x10142022
or ebx, esi
and edi, 0x22
or edi, ebx
mov esi, edx
xor esi, 0x22
xor edx, 0x9d
or edx, edi
not edi
or edi, esi
and edx, edi
add dl, 0x38
mov byte [esp + eax - 0x111db299], dl
inc eax
dec ecx
cmp eax, 0x111db2b1
jne 0x420a60
mov eax, esp
mov edx, eax
lea esi, [esp + 0x1c]
mov edi, esi
mov ecx, 6
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x34]
lea edx, [esp + 0x18]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov byte [esp + 0x10], 1
mov dword [esp], esi
mov dword [esp + 8], ebp
push 0
push 0
push eax
push dword [esp + 0xb8]
call fcn.0041c2a0
add esp, 0x10
nop
mov dword [esp], 0x54ab5285
mov dword [esp + 4], 0x68a956a0
mov dword [esp + 8], 0x6c8e6a8d
mov dword [esp + 0xc], 0x608d6e9f
mov dword [esp + 0x10], 0x64916298
mov dword [esp + 0x14], 0x78676681
mov eax, 0x111db299
mov ecx, 0x6ee24d66
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x111db299]
mov esi, ecx
and esi, 0x622401d
mov edi, ecx
not edi
mov ebx, eax
and ebx, 0x10142022
or ebx, esi
and edi, 0x22
or edi, ebx
mov esi, edx
xor esi, 0x22
xor edx, 0x9d
or edx, edi
not edi
or edi, esi
and edx, edi
add dl, 0x38
mov byte [esp + eax - 0x111db299], dl
inc eax
dec ecx
cmp eax, 0x111db2b1
jne 0x420b40
mov eax, esp
mov edx, eax
lea esi, [esp + 0x1c]
mov edi, esi
mov ecx, 6
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x34]
lea edx, [esp + 0x18]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov byte [esp + 0x10], 1
mov dword [esp], esi
mov dword [esp + 8], ebp
push 0
push 0
push eax
push dword [esp + 0xb8]
call fcn.0041c2a0
add esp, 0x10
mov ebx, eax
jmp dword [0x43f368]
jmp dword [0x43f370]
push ebp
call fcn.00408320
add esp, 4
mov eax, dword [case.0x4209cc.15]
nop
nop
nop
nop
nop
jmp eax
mov eax, ebx
add esp, 0x98
pop esi
pop edi
pop ebx
pop ebp
ret