Function at 0x435460
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x20
mov dword [esp + 8], ecx
cmp dword [ecx + 8], 0
je 0x435507
mov eax, dword [esp + 8]
mov ecx, dword [eax]
test ecx, ecx
je 0x435507
mov dword [esp], 0x34353637
mov dword [esp + 4], 0
mov eax, esp
xor ebx, ebx
xor edi, edi
nop
nop
nop
mov esi, ebx
and esi, 0xfffffff8
add esi, edi
movzx edx, byte [eax]
xor edx, esi
mov esi, edx
and esi, 1
xor edx, 0xf5
lea edx, [edx + esi*2]
add dl, 0x3b
mov byte [eax], dl
inc edi
inc eax
add ebx, 2
cmp ebx, 0x10
jne 0x4354a0
mov eax, dword [esp]
mov edi, dword [0x44839c]
test edi, edi
je 0x4355aa
xor ebx, ebx
mov esi, dword [0x4483a0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + ebx*8], 0x2dedf0b8
je 0x43558d
inc ebx
cmp edi, ebx
jne 0x4354f0
jmp 0x4355aa
mov dword [esp], 0xb97a7b7c
mov dword [esp + 4], 0
mov eax, 0x8b015b03
xor ecx, ecx
mov edx, 0x62c056c0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x74fea4fd]
lea edi, [eax + 0x123e4e3c]
lea ebx, [edx - 0x40000000]
and ebx, 0x22c00299
and edi, 0x81c8066
or edi, ebx
xor edi, esi
xor edi, 0x481cd466
or edi, edx
add edi, edi
mov ebx, ecx
sub ebx, edi
add esi, eax
add ebx, esi
and esi, 1
xor ebx, 0x81
lea ebx, [ebx + esi*2]
mov byte [esp + eax + 0x74fea4fd], bl
inc eax
add ecx, 0xfffffffe
dec edx
cmp eax, 0x8b015b0b
jne 0x435530
mov eax, dword [esp]
jmp 0x43571b
mov esi, dword [esi + ebx*8 + 4]
cmp esi, eax
je 0x4355aa
push dword [ebp + 8]
push ecx
push 2
push esi
push dword [0x4483a4]
call fcn.00437ec0
add esp, 0x14
mov edi, dword [ebp + 0xc]
cmp edi, 1
mov esi, dword [ebp + 0x10]
mov ecx, esi
sbb ecx, 0
jl 0x435671
cmp eax, 0xc000010a
jne 0x435671
mov ecx, 0xffffd8f0
mov eax, edi
mul ecx
sub edx, edi
imul ecx, esi, 0xffffd8f0
add ecx, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 8]
mov edx, dword [eax]
mov dword [esp], 0x34353637
mov dword [esp + 4], 0
mov eax, esp
xor esi, esi
xor edi, edi
nop
mov ecx, esi
and ecx, 0xfffffff8
add ecx, edi
movzx ebx, byte [eax]
xor ebx, ecx
mov ecx, ebx
and ecx, 1
xor ebx, 0xf5
lea ecx, [ebx + ecx*2]
add cl, 0x3b
mov byte [eax], cl
inc edi
inc eax
add esi, 2
cmp esi, 0x10
jne 0x435600
mov eax, dword [esp]
mov esi, dword [0x44839c]
test esi, esi
je 0x435671
xor edi, edi
mov ebx, dword [0x4483a0]
nop
nop
cmp dword [ebx + edi*8], 0x4e66b5a3
je 0x435650
inc edi
cmp esi, edi
jne 0x435640
jmp 0x435671
mov esi, dword [ebx + edi*8 + 4]
cmp esi, eax
je 0x435671
lea eax, [esp + 0x10]
push eax
push 0
push edx
push 3
push esi
push dword [0x4483a4]
call fcn.00437ec0
add esp, 0x18
test eax, eax
js 0x43571b
mov ecx, dword [esp + 8]
mov ecx, dword [ecx]
test ecx, ecx
je 0x43571b
mov dword [esp + 0xc], ecx
mov dword [esp], 0x34353637
mov dword [esp + 4], 0
xor esi, esi
mov edi, esp
xor ebx, ebx
mov ecx, esi
and ecx, 0xfffffff8
add ecx, ebx
movzx edx, byte [edi]
xor edx, ecx
mov ecx, edx
and ecx, 1
xor edx, 0xf5
lea ecx, [edx + ecx*2]
add cl, 0x3b
mov byte [edi], cl
inc ebx
add esi, 2
inc edi
cmp esi, 0x10
jne 0x4356a0
mov esi, dword [0x44839c]
test esi, esi
je 0x435711
mov ecx, dword [esp]
xor ebx, ebx
mov edi, dword [0x4483a0]
nop
nop
cmp dword [edi + ebx*8], 0xb62b8d10
je 0x4356f0
inc ebx
cmp esi, ebx
jne 0x4356e0
jmp 0x435711
mov esi, dword [edi + ebx*8 + 4]
cmp esi, ecx
je 0x435711
push dword [esp + 0xc]
push 1
push esi
push dword [0x4483a4]
mov edi, eax
call fcn.00437ec0
mov eax, edi
add esp, 0x10
mov ecx, dword [esp + 8]
mov dword [ecx], 0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc