Function at 0x4235b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x148
cmp byte [ebp + 0x18], 0
je 0x42365f
mov edi, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
lea ebx, [esp + 0x20]
push 0x120
push 0
push ebx
call fcn.0040cb50
add esp, 0xc
mov ecx, esi
push 0
push 0
push 0x120
push ebx
push edi
push dword [ebp + 0xc]
call fcn.00440340
test eax, eax
js 0x42365f
mov dword [esp + 4], 0xc2f9ccf6
mov byte [esp + 8], 0x68
mov word [esp + 9], 0
mov byte [esp + 0xb], 0
mov eax, 0x17
mov ecx, 0xe8
nop
movzx esi, byte [esp + eax - 0x13]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
add dl, 0x8d
mov byte [esp + eax - 0x13], dl
inc eax
dec ecx
cmp eax, 0x1f
jne 0x423620
cmp byte [esp + 0x3f], 0
js 0x423666
lea eax, [esp + 0x28]
lea ecx, [esp + 4]
push eax
push ecx
push dword [ebp + 0x14]
call fcn.00405f60
add esp, 0xc
mov al, 1
mov dword [esp + 0x14], eax
jmp 0x4236c3
xor eax, eax
jmp 0x423aed
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov eax, ebx
or eax, esi
je 0x4236bb
mov edi, dword [esp + 0x30]
inc edi
push edi
call fcn.0040cad0
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push edi
mov edi, eax
push eax
push esi
push ebx
call fcn.00440340
test eax, eax
setns al
mov dword [esp + 0x14], eax
js 0x4236b0
lea eax, [esp + 4]
push edi
push eax
push dword [ebp + 0x14]
call fcn.00405f60
add esp, 0xc
push edi
call fcn.0040cae0
add esp, 4
jmp 0x4236c3
mov dword [esp + 0x14], 0
mov dword [esp + 4], 0x32265c0e
mov dword [esp + 8], 0xbf23
mov eax, 0x7c9a195f
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x7c9a195b]
lea ecx, [eax - 0x40000000]
mov esi, eax
and esi, 0x54881945
and ecx, 0x2812003a
or ecx, esi
mov esi, edx
xor esi, 0x45
mov edi, ecx
xor edi, 0x45
xor edx, 0x3a
and edx, edi
xor ecx, 0xba
and ecx, esi
or ecx, edx
add cl, 0x25
mov byte [esp + eax - 0x7c9a195b], cl
inc eax
cmp eax, 0x7c9a1967
jne 0x4236e0
cmp byte [esp + 0x11f], 0
js 0x42374f
lea eax, [esp + 0x108]
lea ecx, [esp + 4]
push eax
push ecx
push dword [ebp + 0x14]
call fcn.00405f60
add esp, 0xc
mov bl, 1
jmp 0x4237ab
mov ebx, dword [esp + 0x108]
mov esi, dword [esp + 0x10c]
mov eax, ebx
or eax, esi
je 0x4237a9
mov edi, dword [esp + 0x110]
inc edi
push edi
call fcn.0040cad0
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push edi
mov edi, eax
push eax
push esi
push ebx
call fcn.00440340
test eax, eax
setns bl
js 0x42379e
lea eax, [esp + 4]
push edi
push eax
push dword [ebp + 0x14]
call fcn.00405f60
add esp, 0xc
push edi
call fcn.0040cae0
add esp, 4
jmp 0x4237ab
xor ebx, ebx
mov eax, dword [esp + 0x14]
and al, bl
mov dword [esp + 0x14], eax
mov dword [esp + 4], 0x77716e68
mov dword [esp + 8], 0x7e636e5b
mov byte [esp + 0xc], 8
mov dword [esp + 0xd], 0
mov word [esp + 0x11], 0
xor eax, eax
mov ecx, 0xa95f4000
movzx edi, byte [esp + eax + 4]
mov edx, eax
and edx, edi
mov esi, edx
and esi, 0xd
mov ebx, edx
and ebx, 2
or edx, 2
imul edx, ebx
xor ebx, 2
imul ebx, esi
add edx, ebx
lea esi, [ecx + edx]
not edx
add edx, eax
and edx, edi
not edi
and edi, esi
sub edx, edi
mov byte [esp + eax + 4], dl
inc eax
dec ecx
cmp eax, 0xf
jne 0x4237e0
cmp byte [esp + 0x57], 0
js 0x42383b
lea eax, [esp + 0x40]
lea ecx, [esp + 4]
push eax
push ecx
push dword [ebp + 0x14]
call fcn.00405f60
add esp, 0xc
mov bl, 1
jmp 0x42388e
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov eax, ebx
or eax, esi
je 0x42388c
mov edi, dword [esp + 0x48]
inc edi
push edi
call fcn.0040cad0
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push edi
mov edi, eax
push eax
push esi
push ebx
call fcn.00440340
test eax, eax
setns bl
js 0x423881
lea eax, [esp + 4]
push edi
push eax
push dword [ebp + 0x14]
call fcn.00405f60
add esp, 0xc
push edi
call fcn.0040cae0
add esp, 4
jmp 0x42388e
xor ebx, ebx
mov eax, dword [esp + 0x14]
and al, bl
mov dword [esp + 0x14], eax
mov dword [esp + 4], 0x17ea18e8
mov byte [esp + 8], 0x7c
mov dword [esp + 9], 0
mov dword [esp + 0xc], 0
mov eax, 0xa
mov ecx, 0x15
nop
movzx edx, byte [esp + eax - 6]
mov edi, ecx
not edi
or edi, eax
or edi, 0xf6
mov esi, ecx
or esi, 0xe9
and esi, edi
mov ebx, edx
xor ebx, 0x8eecc8e9
or edx, 0x16
and ebx, edx
sub edx, ebx
and ebx, 0xffffffe9
add ebx, edx
xor ebx, esi
add bl, 0x6e
mov byte [esp + eax - 6], bl
inc eax
dec ecx
cmp eax, 0x16
jne 0x4238c0
cmp byte [esp + 0x6f], 0
js 0x42391f
lea eax, [esp + 0x58]
lea ecx, [esp + 4]
push eax
push ecx
push dword [ebp + 0x14]
call fcn.00405f60
add esp, 0xc
mov bl, 1
jmp 0x423972
mov ebx, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
mov eax, ebx
or eax, esi
je 0x423970
mov edi, dword [esp + 0x60]
inc edi
push edi
call fcn.0040cad0
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push edi
mov edi, eax
push eax
push esi
push ebx
call fcn.00440340
test eax, eax
setns bl
js 0x423965
lea eax, [esp + 4]
push edi
push eax
push dword [ebp + 0x14]
call fcn.00405f60
add esp, 0xc
push edi
call fcn.0040cae0
add esp, 4
jmp 0x423972
xor ebx, ebx
mov eax, dword [esp + 0x14]
and al, bl
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x124]
mov dword [esp + 4], 0xe061105
mov dword [esp + 8], 0x301d081a
mov dword [esp + 0xc], 0x8f111d1d
mov word [esp + 0x10], 0
mov edx, 0xdefe75a6
nop
nop
movzx esi, byte [esp + edx + 0x21018a5e]
xor esi, edx
mov edi, esi
xor edi, 0x5af84c3f
and esi, 0x40631c0
add esi, esi
sub esi, edi
mov edi, esi
and edi, 1
xor esi, 1
lea ebx, [esi + edi*2]
mov byte [esp + edx + 0x21018a5e], bl
inc edx
cmp edx, 0xdefe75b4
jne 0x4239b0
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
fild qword [esp + 0x18]
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.00405fb0
add esp, 0x10
mov esi, eax
movzx eax, byte [esp + 0x78]
mov dword [esp + 4], 0xa8b5b6a1
mov dword [esp + 8], 0xadafbab9
mov word [esp + 0xc], 0xd1bd
mov dword [esp + 0xe], 0
mov word [esp + 0x12], 0
mov ecx, 0xa041bce
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0xa041bca]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0xfa
mov byte [esp + ecx - 0xa041bca], dl
inc ecx
cmp ecx, 0xa041bde
jne 0x423a50
push eax
push edi
push dword [ebp + 0x14]
call fcn.00406040
add esp, 0xc
mov edi, eax
movzx eax, byte [esp + 0x79]
mov dword [esp + 4], 0x617a7b64
mov dword [esp + 8], 0x797c6271
mov dword [esp + 0xc], 0xd76f
or edi, esi
mov ecx, 0x2d
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x29]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0x1f
mov byte [esp + ecx - 0x29], dl
inc ecx
cmp ecx, 0x39
jne 0x423ab0
push eax
lea eax, [esp + 8]
push eax
push dword [ebp + 0x14]
call fcn.00406040
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