Function at 0x435c40
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0
mov dword [esp], 0x7f897f8a
xor eax, eax
mov cl, 1
nop
nop
movzx edx, word [esp + eax*2]
lea edi, [eax + 0x134b8ed]
mov esi, 0x4712
sub esi, eax
mov ebp, 0x40cb4712
sub ebp, eax
and ebp, 0x40c80212
and edi, 0x12430cd
or edi, ebp
xor edi, 0x7ed88a32
or edi, edx
not edx
or edx, esi
and edx, edi
mov edi, edx
and edi, 0x6583895
mov esi, edx
and esi, 2
mov ebp, esi
xor ebp, 2
imul ebp, edi
or edi, 2
imul edi, esi
add edi, ebp
xor edx, 0x65a3897
mov esi, edi
and esi, edx
xor edi, edx
lea esi, [edi + esi*2]
and edx, 1
or esi, 1
add esi, edx
mov word [esp + eax*2], si
mov eax, 1
test cl, 1
mov ecx, 0
jne 0x435c60
mov eax, dword [esp]
mov esi, dword [0x4452ac]
test esi, esi
je 0x435d24
xor ecx, ecx
mov edx, dword [0x4452b0]
cmp dword [edx + ecx*8], 0x67f3d776
je 0x435d00
inc ecx
cmp esi, ecx
jne 0x435cf0
jmp 0x435d24
mov edx, dword [edx + ecx*8 + 4]
cmp edx, eax
je 0x435d24
lea ecx, [esp + 8]
push ecx
push 0
push 0
push 5
push 0x10
push edx
push dword [0x4452b4]
call fcn.00437870
add esp, 0x1c
mov dword [esp + 4], eax
mov dword [esp], 0xfad1bad4
xor ebx, ebx
mov cl, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [esp + ebx*2]
mov edx, ebx
xor edx, 0xe77187af
or edx, esi
mov edi, 0x77187af
sub edi, ebx
mov eax, ebx
sub eax, ebx
sub eax, ebx
add eax, 0xe77187af
or eax, edi
mov edi, eax
not edi
or edi, esi
add eax, edi
inc eax
not edx
or edx, eax
lea eax, [edx + edx]
or eax, 0xfffd
mov esi, 0xc280
sub esi, edx
and edx, 1
and esi, 0xfffe
or esi, edx
xor esi, 1
add esi, eax
mov eax, 0xfffffffe
sub eax, esi
mov word [esp + ebx*2], ax
mov ebx, 1
test cl, 1
mov ecx, 0
jne 0x435d40
mov edi, dword [esp + 4]
cmp edi, dword [esp]
jne 0x435f84
push dword [esp + 8]
call fcn.00435be0
add esp, 4
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
mov dword [esp], 0x7f897f8a
xor edx, edx
mov cl, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, word [esp + edx*2]
lea esi, [edx + 0x134b8ed]
mov ebp, 0x4712
sub ebp, edx
mov ebx, 0x40cb4712
sub ebx, edx
and ebx, 0x40c80212
and esi, 0x12430cd
or esi, ebx
xor esi, 0x7ed88a32
or esi, edi
not edi
or edi, ebp
and edi, esi
mov esi, edi
and esi, 0x6583895
mov ebx, edi
and ebx, 2
mov ebp, ebx
xor ebp, 2
imul ebp, esi
or esi, 2
imul esi, ebx
add esi, ebp
xor edi, 0x65a3897
mov ebx, esi
and ebx, edi
xor esi, edi
lea esi, [esi + ebx*2]
and edi, 1
or esi, 1
add esi, edi
mov word [esp + edx*2], si
mov edx, 1
test cl, 1
mov ecx, 0
jne 0x435de0
mov edi, dword [esp]
mov ecx, dword [0x4452ac]
test ecx, ecx
je 0x435ea8
xor edx, edx
mov esi, dword [0x4452b0]
cmp dword [esi + edx*8], 0x67f3d776
je 0x435e80
inc edx
cmp ecx, edx
jne 0x435e70
jmp 0x435ea8
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, edi
je 0x435ea8
push 0
push dword [esp + 8]
push eax
push 5
push 0x10
push ecx
push dword [0x4452b4]
mov esi, eax
call fcn.00437870
add esp, 0x1c
mov edi, eax
mov eax, esi
test edi, edi
js 0x435f7b
mov dword [esp], 0x93625144
xor ecx, ecx
mov dl, 1
nop
nop
nop
nop
nop
movzx esi, word [esp + ecx*2]
lea edi, [ecx + 0x229]
mov ebx, 0x3dd6
sub ebx, ecx
mov ebp, esi
and ebp, 0x7062
or ebp, 0xd1c
and esi, 0x8f9d
and ebx, 0x3042
and edi, 0x209
or edi, ebx
xor edi, esi
xor edi, ebp
xor edi, 0x7d7e
add edi, 0xffffeeb8
mov word [esp + ecx*2], di
mov ecx, 1
test dl, 1
mov edx, 0
jne 0x435ec0
mov ecx, dword [esp]
mov dword [esp + 4], ecx
mov esi, dword [eax]
mov ecx, eax
mov ebx, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [ecx + esi + 0x3c]
add ecx, esi
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, word [edx + esi]
movzx edi, word [ebx + esi]
test bp, bp
je 0x435f55
add esi, 2
cmp bp, di
je 0x435f40
cmp bp, di
je 0x435f66
mov esi, dword [ecx]
test esi, esi
jne 0x435f30
mov edi, dword [esp + 4]
jmp 0x435f7b
mov edx, dword [ecx + 0x44]
mov esi, dword [esp + 0xc]
mov dword [esi + 8], edx
mov ecx, dword [ecx + 0xdc]
mov dword [esi + 0xc], ecx
xor edi, edi
push eax
call fcn.00435c10
add esp, 4
mov eax, edi
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret 4