Function at 0x4230a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x160
movzx ebx, byte [ebp + 0x18]
mov ecx, dword [ebp + 8]
xor eax, eax
test bl, bl
setne al
lea eax, [eax*8 + 0x120]
lea edx, [esp + 0x34]
push 0
push 0
push eax
push edx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.0043f070
test eax, eax
js 0x42314b
mov dword [esp + 4], 0x6a73687a
mov byte [esp + 8], 0xc
mov dword [esp + 9], 0
mov word [esp + 0xd], 0
mov eax, 0x62825982
nop
nop
movzx ecx, byte [esp + eax - 0x6282597e]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x76
mov byte [esp + eax - 0x6282597e], cl
inc eax
cmp eax, 0x6282598d
jne 0x423100
cmp byte [esp + 0x53], 0
js 0x423152
lea eax, [esp + 0x3c]
lea ecx, [esp + 4]
push eax
push ecx
push dword [ebp + 0x14]
call fcn.00406360
add esp, 0xc
mov al, 1
mov dword [esp + 0x14], eax
jmp 0x4231b3
xor eax, eax
jmp 0x4235d6
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov eax, esi
or eax, ebx
je 0x4231a7
mov edi, dword [esp + 0x44]
inc edi
push edi
call fcn.0040cd40
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push edi
mov edi, eax
push eax
push ebx
push esi
call fcn.0043f070
test eax, eax
setns al
mov dword [esp + 0x14], eax
js 0x42319c
lea eax, [esp + 4]
push edi
push eax
push dword [ebp + 0x14]
call fcn.00406360
add esp, 0xc
push edi
call fcn.0040cd50
add esp, 4
jmp 0x4231af
mov dword [esp + 0x14], 0
movzx ebx, byte [ebp + 0x18]
movzx eax, bl
mov dword [esp + 0x24], eax
lea eax, [eax*8 + 0xe8]
mov dword [esp + 4], 0xeae2e8f2
mov dword [esp + 8], 0x55f9
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
and esi, 0xc
mov edi, edx
xor edi, 0xb3d75c6e
mov ebx, esi
and ebx, edi
xor edi, esi
lea ebx, [edi + ebx*2]
xor bl, byte [esp + edx + 4]
add bl, 0xda
mov byte [esp + edx + 4], bl
inc edx
add ecx, 2
cmp edx, 8
jne 0x4231e0
lea ecx, [esp + eax]
add ecx, 0x34
cmp byte [esp + eax + 0x4b], 0
js 0x42322c
lea eax, [esp + 4]
push ecx
push eax
push dword [ebp + 0x14]
call fcn.00406360
add esp, 0xc
mov bl, 1
jmp 0x42327b
mov esi, dword [ecx]
mov edi, dword [ecx + 4]
mov eax, esi
or eax, edi
je 0x423279
mov ebx, dword [ecx + 8]
inc ebx
push ebx
call fcn.0040cd40
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push ebx
push eax
push edi
push esi
mov esi, eax
call fcn.0043f070
test eax, eax
setns bl
js 0x42326e
lea eax, [esp + 4]
push esi
push eax
push dword [ebp + 0x14]
call fcn.00406360
add esp, 0xc
push esi
call fcn.0040cd50
add esp, 4
jmp 0x42327b
xor ebx, ebx
mov dword [esp + 4], 0x97919e98
mov dword [esp + 8], 0xae839e8b
mov byte [esp + 0xc], 0x38
mov dword [esp + 0xd], 0
mov word [esp + 0x11], 0
mov eax, 0xac5de888
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x53a2177c]
xor ecx, eax
mov edx, ecx
xor edx, 0xf3
and ecx, 0xc
add ecx, ecx
sub ecx, edx
add cl, 0x4b
mov byte [esp + eax + 0x53a2177c], cl
inc eax
cmp eax, 0xac5de897
jne 0x4232b0
cmp byte [esp + 0x6b], 0
js 0x4232ff
lea eax, [esp + 0x54]
lea ecx, [esp + 4]
push eax
push ecx
push dword [ebp + 0x14]
call fcn.00406360
add esp, 0xc
mov al, 1
mov dword [esp + 0x20], eax
jmp 0x423364
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov eax, esi
or eax, edi
je 0x42335c
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x5c]
inc ebx
push ebx
call fcn.0040cd40
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push ebx
mov ebx, eax
push eax
push edi
push esi
call fcn.0043f070
test eax, eax
setns al
mov dword [esp + 0x20], eax
js 0x42334d
lea eax, [esp + 4]
push ebx
push eax
push dword [ebp + 0x14]
call fcn.00406360
add esp, 0xc
push ebx
call fcn.0040cd50
add esp, 4
mov ebx, dword [esp + 0x18]
jmp 0x423364
mov dword [esp + 0x20], 0
mov dword [esp + 4], 0x9b968090
mov byte [esp + 8], 0x24
mov dword [esp + 9], 0
xor eax, eax
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x48
xor cl, byte [esp + eax + 4]
add cl, 0x98
mov byte [esp + eax + 4], cl
inc eax
cmp eax, 9
jne 0x423380
cmp byte [esp + 0x83], 0
js 0x4233bd
lea eax, [esp + 0x6c]
lea ecx, [esp + 4]
push eax
push ecx
push dword [ebp + 0x14]
call fcn.00406360
add esp, 0xc
mov al, 1
mov dword [esp + 0x1c], eax
jmp 0x423422
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x70]
mov eax, esi
or eax, edi
je 0x42341a
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x74]
inc ebx
push ebx
call fcn.0040cd40
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push ebx
mov ebx, eax
push eax
push edi
push esi
call fcn.0043f070
test eax, eax
setns al
mov dword [esp + 0x1c], eax
js 0x42340b
lea eax, [esp + 4]
push ebx
push eax
push dword [ebp + 0x14]
call fcn.00406360
add esp, 0xc
push ebx
call fcn.0040cd50
add esp, 4
mov ebx, dword [esp + 0x18]
jmp 0x423422
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x14]
and al, bl
and al, byte [esp + 0x20]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + ecx*8 + 0x134]
mov ecx, dword [esp + ecx*8 + 0x138]
mov dword [esp + 4], 0xbab6afbb
mov dword [esp + 8], 0x3cafbcb2
mov dword [esp + 0xc], 0xd9435353
mov edx, 0x1af851f9
mov esi, 6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + edx - 0x1af851f5]
mov ebx, esi
xor ebx, edx
and ebx, edi
xor ebx, edx
mov edi, ebx
and edi, 1
or ebx, 1
add ebx, edi
add bl, 0x22
mov byte [esp + edx - 0x1af851f5], bl
inc edx
dec esi
cmp edx, 0x1af85205
jne 0x423470
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
fild qword [esp + 0x28]
sub esp, 0x10
lea edi, [esp + 0x14]
mov dword [esp + 4], edi
mov eax, dword [ebp + 0x14]
mov dword [esp], eax
fstp qword [esp + 8]
call fcn.004063b0
add esp, 0x10
mov dword [esp + 0x24], eax
movzx eax, byte [esp + 0x8c]
mov dword [esp + 4], 0xf0cdf2f9
mov dword [esp + 8], 0xf5f3c6c1
mov dword [esp + 0xc], 0x59fd
mov byte [esp + 0x10], 0
mov ecx, dword [esp + 0x14]
and cl, byte [esp + 0x1c]
mov dword [esp + 0x14], ecx
mov esi, 0x1a91d67
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [edi]
lea ebx, [esi - 0x78000000]
and ebx, 0x88811146
mov ecx, esi
and ecx, 0x1280c39
or ecx, ebx
xor ecx, edx
mov edx, 0xb04d9306
sub edx, ecx
mov ecx, edx
and ecx, 1
xor edx, 1
lea ecx, [edx + ecx*2]
mov byte [edi], cl
inc edi
dec esi
cmp esi, 0x1a91d5a
jne 0x423510
lea ecx, [esp + 4]
push eax
push ecx
push dword [ebp + 0x14]
call fcn.00406440
add esp, 0xc
mov edi, eax
movzx eax, byte [esp + 0x8d]
mov dword [esp + 4], 0x91aaab9c
mov dword [esp + 8], 0x89949281
mov dword [esp + 0xc], 0x3fb7
or edi, dword [esp + 0x24]
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
and esi, 0x12
mov ebx, edx
xor ebx, esi
and esi, edx
xor ebx, 0x89
lea ebx, [ebx + esi*2]
xor bl, byte [esp + edx + 4]
add bl, 0x53
mov byte [esp + edx + 4], bl
inc edx
add ecx, 2
cmp edx, 0xc
jne 0x423590
push eax
lea eax, [esp + 8]
push eax
push dword [ebp + 0x14]
call fcn.00406440
add esp, 0xc
or edi, eax
sete al
mov ecx, dword [esp + 0x14]
and cl, al
mov eax, ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret