Function at 0x423a2c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xb8
push eax
mov dword [ebp - 0x34], esp
sub esp, 0x10
mov dword [ebp - 0x18], esp
sub esp, 0x14
mov esi, esp
mov dword [ebp - 0x10], esi
sub esp, 0x1c
mov eax, esp
sub esp, 0x20
mov ecx, esp
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x4c], eax
sub esp, 0x18
mov dword [ebp - 0x14], esp
sub esp, 0x1c
mov dword [ebp - 0x1c], esp
sub esp, 0xc
mov dword [ebp - 0x70], esp
sub esp, 0x20
mov eax, esp
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x2c], eax
push eax
mov dword [ebp - 0x38], esp
push eax
mov dword [ebp - 0x40], esp
sub esp, 0x1c
mov eax, esp
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x7c], eax
sub esp, 8
mov dword [ebp - 0x98], esp
sub esp, 8
mov dword [ebp - 0x58], esp
sub esp, 0x14
mov eax, esp
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x6c], eax
sub esp, 0x30
mov eax, esp
mov dword [ebp - 0x64], eax
mov dword [ebp - 0xac], eax
sub esp, 0x14
mov eax, esp
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x50], eax
sub esp, 8
mov dword [ebp - 0xa8], esp
mov dword [ebp - 0x94], 0xf93dfbdf
mov dword [ebp - 0x90], 0xfd6eff68
mov dword [ebp - 0x8c], 0xf155f338
mov dword [ebp - 0x88], 0xf551f764
mov dword [ebp - 0x84], 0xe9eaeb2f
lea eax, [ebp - 0x80]
mov byte [ebp - 0x80], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
dec dl
xor dl, byte [ebp + ecx - 0x94]
add dl, 5
mov byte [ebp + ecx - 0x94], dl
inc ecx
cmp ecx, 0x15
jne 0x423b00
lea edi, [ebp - 0xc4]
lea edx, [ebp - 0x94]
mov ecx, 5
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [ebp - 0xb0]
xor ebx, ebx
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [ebp - 0x34]
push edi
push 0
push 0
push 9
lea eax, [ebp - 0xc4]
push eax
push 0
call dword [0x446f40]
mov edi, dword [edi]
test edi, edi
jns 0x423b67
mov eax, 0xffffffff
jmp 0x423b6a
lea eax, [edi + edi]
push eax
call fcn.00408680
add esp, 4
push dword [ebp - 0x34]
push edi
mov dword [ebp - 0x30], eax
push eax
push 9
lea eax, [ebp - 0xc4]
push eax
push 0
call dword [0x446f40]
mov dword [esi], 0x41ed4708
mov dword [esi + 4], 0x4def43dd
mov dword [esi + 8], 0x49dc4fdd
mov dword [esi + 0xc], 0xb54a4be4
add dword [ebp - 0x10], 0x10
mov byte [esi + 0x10], 0
nop
mov eax, ebx
add al, 0xf1
xor al, byte [esi + ebx]
add al, 0x4b
mov byte [esi + ebx], al
mov eax, ebx
and eax, 1
xor ebx, 1
lea ebx, [ebx + eax*2]
cmp ebx, 0x11
jb 0x423bb0
mov eax, dword [ebp - 0x18]
mov edi, eax
mov ecx, 4
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
add eax, 0x10
xor edx, edx
xor ecx, ecx
mov edi, eax
mov eax, dword [ebp - 0x10]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [ebp - 0x24]
mov dword [edi], 0x970f9924
mov dword [edi + 4], 0x930d951b
mov dword [edi + 8], 0x8f009103
mov dword [edi + 0xc], 0x8b358d10
mov dword [edi + 0x10], 0x87148929
mov dword [edi + 0x14], 0x830c8525
mov dword [edi + 0x18], 0x7f7e8109
mov eax, edi
add eax, 0x1c
mov dword [edi + 0x1c], 0
xor ecx, ecx
nop
nop
mov esi, edx
and esi, 0xc
mov ebx, ecx
xor ebx, 0xe6
add ebx, esi
xor bl, byte [edi + ecx]
add bl, 0x82
mov byte [edi + ecx], bl
inc ecx
add edx, 2
cmp ecx, 0x20
jne 0x423c30
mov ebx, dword [ebp - 0x4c]
mov edx, edi
mov edi, ebx
mov ecx, 7
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edi, ebx
add edi, 0x1c
xor edx, edx
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], 0x7f17793c
mov dword [ecx + 4], 0x63057deb
mov dword [ecx + 8], 0x67f061f3
mov dword [ecx + 0xc], 0x6b1a6500
mov dword [ecx + 0x10], 0x6f28691c
mov eax, ecx
add eax, 0x14
mov word [ecx + 0x14], 0x6d6c
mov dword [ecx + 0x16], 0
mov word [ecx + 0x1a], 0
nop
nop
mov ecx, edx
xor ecx, 0x95
mov esi, edx
or esi, 0xa
and esi, ecx
mov edi, edx
and edi, 0x15
mov ecx, edx
xor ecx, 0x6a
add ecx, esi
mov esi, dword [ebp - 0x1c]
sub ecx, edi
add ecx, edx
xor cl, byte [esi + edx]
add cl, 0xee
mov byte [esi + edx], cl
inc edx
cmp edx, 0x1c
jne case.default.0x423d4f
mov edx, dword [ebp - 0x14]
mov edi, edx
mov ecx, 5
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
mov edi, edx
add edi, 0x14
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x18]
mov dword [eax], ecx
mov dword [eax + 4], ebx
mov dword [eax + 8], edx
mov eax, dword [ebp - 0x3c]
lea ecx, [eax + 0x1a]
mov dword [ebp - 0xb0], ecx
add dword [ebp - 0x5c], 0x17
mov ecx, dword [ebp - 0x30]
add ecx, 2
mov dword [ebp - 0x68], ecx
add eax, 2
mov dword [ebp - 0x3c], eax
add dword [ebp - 0x54], 2
add dword [ebp - 0x64], 2
add dword [ebp - 0x60], 2
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x44], 0
cmp ecx, 0xc
setne al
xor ecx, ecx
mov edi, dword [ebp - 0x2c]
jmp dword [eax*4 + 0x441ef8]