Function at 0x435b70
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x30
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
lea esi, [esp + 0x20]
mov ecx, esi
push 0
push dword [esp + 0x48]
call fcn.004381e0
mov ecx, esi
push 0x40
call fcn.00438200
test eax, eax
js 0x436087
xor eax, eax
xor ebp, ebp
nop
nop
nop
mov edi, 0x1000
mov dword [esp], ebp
sub edi, ebp
push edi
push eax
call fcn.00439a80
add esp, 8
mov dword [esp + 8], 0x55565768
mov ecx, 0x9f
mov ebp, 0x60
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x97]
mov esi, ebp
or esi, ebx
not ebx
or ebx, ecx
and ebx, esi
mov dl, 7
sub dl, bl
mov byte [esp + ecx - 0x97], dl
inc ecx
dec ebp
cmp ecx, 0xa3
jne 0x435bf0
mov ecx, dword [esp + 8]
mov edx, dword [0x448580]
test edx, edx
je 0x435c80
xor esi, esi
mov ebp, dword [0x448584]
nop
nop
nop
cmp dword [ebp + esi*8], 0x67f3d776
je 0x435c50
inc esi
cmp edx, esi
jne 0x435c30
jmp 0x435c80
mov edx, dword [ebp + esi*8 + 4]
cmp edx, ecx
je 0x435c80
lea ecx, [esp + 8]
push ecx
push edi
push eax
push 0x10
push 0x10
push edx
push dword [0x448588]
mov esi, eax
call fcn.00439ae0
add esp, 0x1c
mov ecx, eax
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
mov ebp, dword [esp]
add ebp, 0xfffff000
mov dword [esp + 8], 0x89484742
mov edx, 6
mov esi, 1
nop
nop
nop
nop
nop
mov edi, esi
and edi, 3
mov ebx, edx
and ebx, 0xc
or ebx, edi
xor bl, byte [esp + edx + 2]
xor bl, 0xf3
add bl, 0x50
mov byte [esp + edx + 2], bl
inc edx
dec esi
cmp edx, 0xa
jne 0x435ca0
cmp ecx, dword [esp + 8]
je 0x435bc0
test ecx, ecx
js 0x436094
mov ecx, dword [eax]
test ecx, ecx
je 0x43607a
xor ebx, ebx
mov edi, dword [esp + 0x44]
mov dword [esp + 0x14], eax
jmp 0x435d03
mov ecx, dword [eax]
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x1c]
inc ebx
cmp ebx, ecx
jae 0x43607a
mov edx, ebx
shl edx, 4
movzx esi, word [eax + edx + 4]
cmp esi, edi
jne 0x435cfa
mov dword [esp + 0x1c], ebx
movzx ebp, word [eax + edx + 0xa]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 8], 0x55565768
mov ecx, 0x9f
mov edi, 0x60
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x97]
mov esi, edi
or esi, edx
not edx
or edx, ecx
and edx, esi
mov bl, 7
sub bl, dl
mov byte [esp + ecx - 0x97], bl
inc ecx
dec edi
cmp ecx, 0xa3
jne 0x435d40
mov ecx, dword [esp + 8]
mov esi, dword [0x448580]
test esi, esi
je 0x435dd0
xor edi, edi
mov edx, dword [0x448584]
nop
nop
nop
cmp dword [edx + edi*8], 0x22fd5d1b
je 0x435d90
inc edi
cmp esi, edi
jne 0x435d80
jmp 0x435dd0
mov edi, dword [edx + edi*8 + 4]
cmp edi, ecx
je 0x435dd0
push 2
push 0
push 0
lea ecx, [esp + 0x24]
push ecx
push 0xffffffffffffffff
push ebp
push dword [esp + 0x18]
push 0x1c
push edi
push dword [0x448588]
mov esi, eax
call fcn.00439ae0
add esp, 0x28
mov ecx, eax
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
test ecx, ecx
js 0x435cf0
mov dword [esp], 0
mov ecx, 0x10c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x10], ecx
push ecx
push dword [esp + 4]
call fcn.00439a80
add esp, 8
mov dword [esp], eax
mov ebp, dword [esp + 0x18]
mov dword [esp + 4], 0x55565768
mov ecx, 0x9f
mov edi, 0x60
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x9b]
mov esi, edi
or esi, edx
not edx
or edx, ecx
and edx, esi
mov bl, 7
sub bl, dl
mov byte [esp + ecx - 0x9b], bl
inc ecx
dec edi
cmp ecx, 0xa3
jne 0x435e20
mov eax, dword [esp + 4]
mov esi, dword [0x448580]
test esi, esi
je 0x435eb0
mov ecx, ebp
xor edi, edi
mov ebp, dword [0x448584]
nop
cmp dword [ebp + edi*8], 0xa269eeef
je 0x435e80
inc edi
cmp esi, edi
jne 0x435e60
jmp 0x435eb0
mov esi, dword [ebp + edi*8 + 4]
cmp esi, eax
je 0x435eb0
push 9
push dword [esp + 0x14]
mov eax, dword [esp + 8]
push eax
lea eax, [esp + 0x14]
push eax
push ecx
push 0x14
push esi
push dword [0x448588]
call fcn.00439ae0
add esp, 0x20
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov ecx, dword [ecx]
mov dword [esp + 0x10], ecx
mov dword [esp + 4], 0x40cfcec8
mov esi, 0x2aa0f01a
lea edi, [esp + 4]
nop
nop
nop
nop
nop
nop
movzx ecx, byte [edi]
mov ebx, esi
or ebx, ecx
lea edx, [esi - 0x2aa0f000]
mov ebp, ecx
not ebp
or ebp, edx
add ecx, ebp
inc ecx
not ebx
or ebx, ecx
lea ecx, [ebx + 0x550780d7]
mov edx, ecx
and edx, 1
and ebx, 1
and ecx, 0xfe
or ecx, ebx
lea ecx, [ecx + edx*2]
mov byte [edi], cl
inc edi
dec esi
cmp esi, 0x2aa0f016
jne 0x435ed0
mov ebp, dword [esp + 0x10]
lea ecx, [ebp + 8]
cmp eax, dword [esp + 4]
je 0x435df0
test eax, eax
js 0x435fc0
mov ecx, 0xfffffffe
mov eax, dword [esp + 0x48]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x435f40
sar ecx, 1
mov eax, ecx
and eax, 2
mov edx, ecx
or ecx, 2
imul ecx, eax
xor eax, 2
and edx, 0xfffffffd
imul edx, eax
add ecx, edx
sub ecx, ebp
jb 0x435fc0
inc ecx
je 0x435fc0
xor edi, edi
mov eax, dword [esp + 0x48]
lea esi, [eax + edi]
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp ebp, ebx
je 0x435fab
movzx edx, byte [esi + ebx]
lea ebp, [ebx + 1]
mov eax, dword [esp]
cmp dl, byte [eax + ebx + 4]
mov ebx, ebp
mov ebp, dword [esp + 0x10]
je 0x435f80
mov eax, edi
xor eax, 1
and edi, 1
lea edi, [eax + edi*2]
cmp edi, ecx
jb 0x435f6e
jmp 0x435fc0
cmp dword [esp + 0x48], 0
jne 0x4360b2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push dword [esp]
call fcn.00437f00
add esp, 4
mov ebp, dword [esp + 0x18]
mov dword [esp + 4], 0x55565768
mov eax, 0x9f
mov edx, 0x60
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax - 0x9b]
mov esi, edx
or esi, ebx
not ebx
or ebx, eax
and ebx, esi
mov cl, 7
sub cl, bl
mov byte [esp + eax - 0x9b], cl
inc eax
dec edx
cmp eax, 0xa3
jne 0x435ff0
mov edx, dword [0x448580]
test edx, edx
mov eax, dword [esp + 0x14]
je 0x435cf0
mov esi, dword [esp + 4]
xor edi, edi
mov ebx, dword [0x448584]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xb430e561
je 0x436053
inc edi
cmp edx, edi
jne 0x436040
jmp 0x435cf0
mov edx, dword [ebx + edi*8 + 4]
cmp edx, esi
je 0x435cf0
push ebp
push 4
push edx
push dword [0x448588]
call fcn.00439ae0
mov eax, dword [esp + 0x24]
add esp, 0x10
jmp 0x435cf0
xor esi, esi
push eax
call fcn.00437f00
add esp, 4
jmp 0x436089
xor esi, esi
lea ecx, [esp + 0x20]
call fcn.00438370
jmp 0x4360a8
push eax
call fcn.00437f00
add esp, 4
lea ecx, [esp + 0x20]
call fcn.00438370
xor esi, esi
mov eax, esi
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [esp + 0x18]
push dword [esp]
call fcn.00437f00
add esp, 4
mov eax, dword [esp + 0x14]
jmp 0x43607c