Function at 0x4239f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x160
mov dword [esp + 0x10], 0x834381a5
mov dword [esp + 0x14], 0x87768574
mov dword [esp + 0x18], 0x8b6b894c
mov dword [esp + 0x1c], 0x8f6f8d78
mov dword [esp + 0x20], 0x939291b5
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0
mov word [esp + 0x28], 0
mov dword [esp + 0xf0], 0
mov ecx, dword [esp + 0xf0]
cmp ecx, 0x19
ja 0x423ab6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0xf0]
movzx edx, byte [esp + edx + 0x10]
lea esi, [ecx + 0x5c02d6c0]
and esi, edx
add ecx, edx
add ecx, 0x5c02d6c0
add esi, esi
sub ecx, esi
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0xc0]
add cl, 0xc0
mov edx, dword [esp + 0xf0]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0xf0]
mov ecx, dword [esp + 0xf0]
cmp ecx, 0x1a
jb 0x423a60
lea esi, [esp + 0x132]
lea edx, [esp + 0x10]
mov ecx, 5
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x146]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x7c]
push edi
push 0
push 0
push 9
push esi
push 0
call dword [0x446380]
mov ebx, dword [esp + 0x7c]
test ebx, ebx
jns 0x423aff
mov eax, 0xffffffff
jmp 0x423b02
lea eax, [ebx + ebx]
push eax
call fcn.00408c20
add esp, 4
push edi
push ebx
mov dword [esp + 0x78], eax
push eax
push 9
push esi
push 0
call dword [0x446380]
mov dword [esp + 0x10], 0x6bf36dd0
mov dword [esp + 0x14], 0x67f969e7
mov dword [esp + 0x18], 0x63ec65f7
mov dword [esp + 0x1c], 0x5f5e61fc
mov dword [esp + 0xf0], 0
mov eax, dword [esp + 0xf0]
cmp eax, 0xf
ja 0x423bb5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xf0]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + ecx]
add edx, 0x64d90d92
add eax, 0x64d90d92
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xc0], edx
mov eax, dword [esp + 0xc0]
add al, 2
mov ecx, dword [esp + 0xf0]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0xf0]
mov eax, dword [esp + 0xf0]
cmp eax, 0x10
jb 0x423b60
lea edi, [esp + 0x122]
lea edx, [esp + 0x10]
mov ecx, 4
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x132]
lea edx, [esp + 0x20]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x10], 0x39b0dc8
mov dword [esp + 0x14], 0x7e10197
mov dword [esp + 0x18], 0x3bac0597
mov dword [esp + 0x1c], 0x3ff939dc
mov dword [esp + 0x20], 0x33a03ddd
mov dword [esp + 0x24], 0x37a031d1
mov dword [esp + 0x28], 0x2b2a35bd
lea esi, [esp + 0x2c]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x33], 0
mov dword [esp + 0xa4], 0
mov ecx, dword [esp + 0xa4]
cmp ecx, 0x26
ja 0x423cb8
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa4]
movzx ecx, byte [esp + ecx + 0x10]
mov edi, edx
and edi, 0x8bcba56
xor edx, 0x88bcba56
lea edi, [edx + edi*2]
mov edx, edi
and edx, ecx
mov ebx, edi
xor ebx, ecx
not ecx
or edi, ecx
add ecx, ebx
add edi, edx
sub ecx, edi
lea ecx, [ecx + edx*2]
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0xc0]
add cl, 0xa6
mov edx, dword [esp + 0xa4]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0xa4]
mov ecx, dword [esp + 0xa4]
cmp ecx, 0x27
jb 0x423c50
lea edx, [esp + 0xf0]
lea ebx, [esp + 0x10]
mov edi, edx
mov ecx, 7
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea edi, [esp + 0x10c]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 0x10], 0xfb63f9c2
mov dword [esp + 0x14], 0xff59fd6f
mov dword [esp + 0x18], 0xf362f16f
mov dword [esp + 0x1c], 0xf744f556
mov dword [esp + 0x20], 0xebaae942
lea ebx, [esp + 0x24]
mov word [esp + 0x24], 0xedea
mov dword [esp + 0x26], 0
mov dword [esp + 0xa4], 0
mov ecx, dword [esp + 0xa4]
cmp ecx, 0x19
ja 0x423d93
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xa4]
mov esi, dword [esp + 0xa4]
movzx esi, byte [esp + esi + 0x10]
lea edi, [ecx + 0x3f]
and edi, esi
add ecx, esi
add edi, edi
sub ecx, edi
add ecx, 0xc1f8143f
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0xc0]
add cl, 0x47
mov esi, dword [esp + 0xa4]
mov byte [esp + esi + 0x10], cl
inc dword [esp + 0xa4]
mov ecx, dword [esp + 0xa4]
cmp ecx, 0x1a
jb 0x423d40
lea esi, [esp + 0x146]
lea eax, [esp + 0x10]
mov ecx, 5
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x15a]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
lea eax, [esp + 0x122]
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], edx
mov dword [esp + 0x11c], esi
mov eax, dword [esp + 0x70]
add eax, 2
mov dword [esp + 0x94], eax
xor ebx, ebx
xor eax, eax
cmp ebx, 3
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x44286c]