Function at 0x422c10
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], 0x632b654d
mov dword [esp + 0x14], 0x6ff061f2
mov dword [esp + 0x18], 0x6b036d22
mov dword [esp + 0x1c], 0x970769f6
mov dword [esp + 0x20], 0x939495bd
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0
mov dword [esp + 0x90], 0
mov ecx, dword [esp + 0x90]
cmp ecx, 0x17
ja 0x422cc4
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x90]
movzx edx, byte [esp + edx + 0x10]
lea esi, [ecx + 0x6165c2f1]
add ecx, 0xf1
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xb8], esi
mov ecx, dword [esp + 0xb8]
add cl, 0x69
mov edx, dword [esp + 0x90]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x90]
mov ecx, dword [esp + 0x90]
cmp ecx, 0x18
jb 0x422c70
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 + 0x8c]
push edi
push 0
push 0
push 9
push esi
push 0
call dword [0x44a1a0]
mov ebx, dword [esp + 0x8c]
test ebx, ebx
jns 0x422d13
mov eax, 0xffffffff
jmp 0x422d16
lea eax, [ebx + ebx]
push eax
call fcn.00408d00
add esp, 4
push edi
push ebx
mov dword [esp + 0x80], eax
push eax
push 9
push esi
push 0
call dword [0x44a1a0]
mov dword [esp + 0x10], 0x833b815a
mov dword [esp + 0x14], 0x9f219d0f
mov dword [esp + 0x18], 0x9b2a992f
mov dword [esp + 0x1c], 0x97949526
mov word [esp + 0x20], 0
mov dword [esp + 0x90], 0
mov eax, dword [esp + 0x90]
cmp eax, 0x11
ja 0x422dd4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x90]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax - 0x6d209115]
and edx, ecx
add eax, ecx
add eax, 0x92df6eeb
add edx, edx
sub eax, edx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0x93
mov ecx, dword [esp + 0x90]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x90]
mov eax, dword [esp + 0x90]
cmp eax, 0x12
jb 0x422d80
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], 0x1bb319d4
mov dword [esp + 0x14], 0xe745e557
mov dword [esp + 0x18], 0xe350e157
mov dword [esp + 0x1c], 0xef2ded40
mov dword [esp + 0x20], 0xeb5ce949
mov dword [esp + 0x24], 0xf744f555
mov dword [esp + 0x28], 0xf3f2f149
lea esi, [esp + 0x2c]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov byte [esp + 0x34], 0
mov dword [esp + 0x90], 0
mov ecx, dword [esp + 0x90]
cmp ecx, 0x24
ja 0x422ed8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x90]
movzx edx, byte [esp + edx + 0x10]
lea edi, [ecx + 0xfc]
add ecx, edx
and edi, edx
add edi, edi
sub ecx, edi
add ecx, 0xa09ec9fc
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xb8]
add cl, 0x1c
mov edx, dword [esp + 0x90]
mov byte [esp + edx + 0x10], cl
mov ecx, dword [esp + 0x90]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x90]
cmp ecx, 0x25
jb 0x422e70
lea edx, [esp + 0x90]
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 + 0xac]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 0x10], 0xdb43d964
mov dword [esp + 0x14], 0xd775d547
mov dword [esp + 0x18], 0xd340d147
mov dword [esp + 0x1c], 0xcf7ecd50
mov dword [esp + 0x20], 0xcb08c964
lea ebx, [esp + 0x24]
mov word [esp + 0x24], 0xc5c4
mov dword [esp + 0x26], 0
mov dword [esp + 0xf8], 0
mov ecx, dword [esp + 0xf8]
cmp ecx, 0x19
ja 0x422faa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xf8]
mov esi, dword [esp + 0xf8]
movzx esi, byte [esp + esi + 0x10]
add ecx, 0xcabd9e24
xor ecx, esi
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xb8]
add cl, 4
mov esi, dword [esp + 0xf8]
mov byte [esp + esi + 0x10], cl
inc dword [esp + 0xf8]
mov ecx, dword [esp + 0xf8]
cmp ecx, 0x1a
jb 0x422f60
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 + 0x78]
add eax, 2
mov dword [esp + 0xb4], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x84], 0
cmp ecx, 3
setne al
mov eax, dword [eax*4 + 0x444f28]
mov ecx, 0x91d46fe
xor ecx, dword [0x444f30]
add eax, ecx
inc eax
xor edx, edx
jmp eax