Function at 0x4234b7
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x198
push ebx
push esi
push edi
push 6
mov dword [ebp - 0x30], 0xa5a5
mov word [ebp - 0x14], 0xa
xor esi, esi
pop ebx
mov eax, esi
xor ecx, ecx
sub eax, ecx
je 0x42350b
dec eax
je 0x423505
dec eax
je 0x4234ff
dec eax
je 0x4234f8
dec eax
je 0x4234f2
dec eax
jne 0x42351e
inc word [ebp - 0x20]
jmp 0x42351e
mov word [ebp - 0x10], cx
jmp 0x42351e
or word [ebp - 0x16], 0xffff
jmp 0x42351e
mov word [ebp - 0x26], cx
jmp 0x42351e
mov word [ebp - 0xe], cx
jmp 0x42351e
push 3
lea ecx, [ebp - 0x2c]
pop edx
xor eax, eax
mov edi, ecx
stosd dword es:[edi], eax
add ecx, 8
dec edx
stosw word es:[edi], ax
jne 0x423511
inc esi
dec ebx
jne 0x4234d5
mov edi, dword [ebp + 0xc]
xor esi, esi
cmp si, 3
jae case.0x4237f9.0
movzx ecx, si
mov eax, ecx
imul eax, ecx
imul eax, ecx
imul eax, ecx
add eax, 7
sub eax, 7
je 0x42358f
dec eax
je 0x423551
sub eax, 0xf
je 0x423596
jmp 0x423593
movzx ecx, word [ebp - 0xe]
mov eax, ecx
push 5
cdq
pop ebx
idiv ebx
xor ebx, ebx
mov eax, ecx
push 3
pop ecx
cmp edx, 2
cdq
setne bl
idiv ecx
dec edx
neg edx
sbb edx, edx
neg edx
or ebx, edx
je 0x423588
mov ax, word [ebp - 0x10]
mov word [ebp - 0x12], 1
mov word [ebp - 0x16], ax
jmp 0x423593
and word [ebp - 0x12], 0
jmp 0x423593
inc word [ebp - 0xe]
inc esi
jmp 0x423527
mov ebx, dword [ebp - 0x44]
xor ecx, ecx
cmp cx, 8
jae case.0x42386f.0
movzx eax, cx
lea edx, [eax + 1]
imul edx, eax
lea eax, [edx + 1]
cmp eax, 0x15
jg 0x42363d
je 0x423622
dec eax
je 0x42360c
dec eax
dec eax
je 0x4235fc
sub eax, 4
je 0x4235ed
sub eax, 6
jne 0x42367d
cmp dword [ebp - 0x3c], 0
je 0x42367d
mov eax, dword [ebp - 0x48]
imul eax, dword [ebp - 0x3c]
and eax, 0xffff
add ebx, eax
mov dword [ebp - 0x44], ebx
jmp 0x42367d
mov ebx, dword [ebp - 0x34]
imul ebx, dword [ebp - 0x4c]
and ebx, 0xffff
jmp 0x4235e5
mov dword [ebp - 0x4c], 0x15a
mov dword [ebp - 0x48], 0x4e35
jmp 0x42367d
mov eax, dword [ebp - 0x30]
shr eax, 0x10
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x30]
and eax, 0xffff
mov dword [ebp - 0x34], eax
jmp 0x42367d
mov eax, dword [ebp - 0x48]
mov edx, ebx
imul eax, dword [ebp - 0x34]
and edx, 0xffff
shl edx, 0x10
lea eax, [edx + eax + 1]
mov dword [ebp + 0xc], eax
jmp 0x42367d
cmp eax, 0x1f
je 0x423673
cmp eax, 0x2b
je 0x423664
cmp eax, 0x39
jne 0x42367d
movzx eax, word [ebp - 0x12]
push 2
cdq
pop esi
idiv esi
sub edx, 0
je 0x423683
dec edx
je 0x423823
jmp 0x42367d
and dword [ebp + 0xc], 0x7fff
mov eax, dword [ebp + 0xc]
mov dword [ebp - 4], eax
jmp 0x42367d
mov eax, dword [ebp + 0xc]
shr dword [ebp + 0xc], 0x10
mov dword [ebp - 0x30], eax
inc ecx
jmp 0x42359b
movzx ecx, word [ebp - 4]
mov eax, ecx
push 0xb
cdq
pop esi
idiv esi
mov eax, ecx
push 7
pop ecx
mov esi, edx
sub esi, 5
neg esi
cdq
sbb esi, esi
idiv ecx
inc esi
dec edx
dec edx
neg edx
sbb edx, edx
inc edx
or esi, edx
je 0x4236bf
mov ax, word [ebp - 0x10]
mov word [ebp - 0x12], 1
mov word [ebp - 0x16], ax
jmp 0x423599
movzx eax, word [ebp - 0x26]
cmp eax, 9
ja case.0x4236cc.3
jmp dword [eax*4 + 0x42396e]
mov eax, dword [ebp - 0x50]
and eax, 0xf
push eax
mov eax, dword [ebp - 0x40]
lea ecx, [eax + ebp - 0x84]
add eax, edi
push ecx
push eax
call fcn.0042036e
add esp, 0xc
jmp case.0x4236cc.8
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [edi + ecx + 0x1c]
xor byte [eax + edi + 0xc], cl
inc eax
cmp eax, 0x10
jb 0x4236f7
jmp case.0x4236cc.8
lea eax, [ebp - 0x198]
lea ecx, [ebp - 0x60]
push eax
xor eax, eax
push eax
push eax
push ecx
push 1
push eax
call fcn.00420774
lea eax, [ebp - 0x198]
push eax
mov eax, dword [ebp - 0x38]
lea ecx, [eax + ebp - 0x84]
add eax, edi
push ecx
push 0x80
push eax
call fcn.00420aed
add esp, 0x28
jmp case.0x4236cc.8
push 0x10
lea eax, [ebp - 0x60]
push 0
push eax
call fcn.0041f81e
lea eax, [ebp - 0x60]
push eax
call fcn.00421677
add esp, 0x10
jmp case.0x4236cc.8
mov dword [ebp - 0x50], 0x24
mov dword [ebp - 0x40], 0x20
mov dword [ebp - 0x38], 0x14
jmp case.0x4236cc.8
mov eax, dword [edi + 0x1c]
xor eax, dword [edi + 4]
xor dword [edi], eax
jmp case.0x4236cc.8
push dword [ebp - 0x38]
lea eax, [ebp - 0x84]
push edi
push eax
call fcn.0042036e
lea eax, [ebp - 0x198]
push eax
mov eax, dword [ebp - 0x40]
shl eax, 3
push edi
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.00420aed
add esp, 0x1c
xor esi, esi
movzx ecx, si
lea eax, [ecx + 3]
imul eax, ecx
inc eax
dec eax
je 0x423800
sub eax, 4
je 0x4237e0
sub eax, 6
je 0x4237d8
sub eax, 8
je 0x423599
jmp case.default.0x4237f9
mov word [ebp - 0x12], 1
jmp case.default.0x4237f9
mov ax, word [ebp - 0x26]
cmp ax, word [ebp - 0x14]
jne case.default.0x4237f9
movzx eax, word [ebp - 0xe]
push 9
cdq
pop ecx
idiv ecx
cmp edx, 8
ja case.default.0x4237f9
jmp dword [edx*4 + 0x423996]
inc word [ebp - 0x26]
inc esi
cmp si, 4
jb 0x4237b6
push 0xfffffffffffffffc
lea eax, [edi + 4]
pop ecx
sub ecx, edi
mov dl, byte [eax + 0x18]
xor byte [eax], dl
inc eax
lea edx, [eax + ecx]
cmp edx, 8
jb 0x423813
jmp case.0x4236cc.8
xor esi, esi
movzx ecx, si
mov eax, ecx
imul eax, ecx
imul eax, ecx
inc eax
dec eax
je 0x42390f
dec eax
je 0x423900
sub eax, 7
je case.default.0x42386f
sub eax, 0x13
je 0x4238ab
sub eax, 0x25
je 0x42388d
sub eax, 0x3d
je 0x423876
sub eax, 0x5b
jne 0x423928
movzx eax, word [ebp - 4]
push 9
cdq
pop ecx
idiv ecx
cmp edx, 8
ja case.default.0x42386f
jmp dword [edx*4 + 0x4239ba]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
lea ecx, [ecx + eax*2]
add eax, ecx
mov dword [ebp - 4], eax
mov word [ebp - 0x10], ax
jmp 0x423928
movzx eax, word [ebp - 8]
movzx ecx, word [ebp - 0xc]
lea eax, [ecx + eax*4]
inc word [ebp + eax*2 - 0x2c]
lea eax, [ebp + eax*2 - 0x2c]
mov ax, word [ebp - 0x10]
mov word [ebp - 0x16], ax
jmp 0x423928
movzx eax, word [ebp - 8]
xor edx, edx
shl eax, 2
lea ecx, [ebp + eax*2 - 0x2c]
movzx ebx, word [ebp - 0xc]
add ebx, eax
mov bx, word [ebp + ebx*2 - 0x2c]
cmp bx, word [ecx]
jbe 0x4238cb
mov dword [ebp - 0xc], edx
inc edx
inc ecx
inc ecx
cmp dx, 3
jb 0x4238b8
jmp 0x423928
movzx eax, word [ebp - 0xc]
xor edx, edx
lea ecx, [ebp + eax*2 - 0x2c]
movzx ebx, word [ebp - 8]
lea ebx, [eax + ebx*4]
mov bx, word [ebp + ebx*2 - 0x2c]
cmp bx, word [ecx]
jbe 0x4238f4
mov dword [ebp - 8], edx
inc edx
add ecx, 8
cmp dx, 3
jb 0x4238e0
jmp 0x423928
movzx eax, word [ebp - 4]
push 3
cdq
pop ecx
idiv ecx
mov dword [ebp - 0xc], edx
jmp 0x423928
movzx eax, word [ebp - 4]
push 9
cdq
pop ecx
idiv ecx
push 3
pop ecx
movzx eax, dx
mov dword [ebp - 4], edx
cdq
idiv ecx
mov dword [ebp - 8], eax
inc esi
cmp si, 7
jb 0x423825
jmp case.0x42386f.0
cmp dword [edi], 0
jne 0x423967
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov cl, byte [eax]
cmp cl, 1
jne 0x42394d
push 4
jmp 0x423958
cmp cl, 7
jne 0x423956
push 8
jmp 0x423958
push 0x10
lea ecx, [edi + 0xc]
push ecx
push dword [eax + 0xd]
call fcn.0042036e
add esp, 0xc
mov eax, dword [edi]
pop edi
pop esi
pop ebx
leave
ret