Function at 0x429528
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov edx, dword fs:[0]
push 0xffffffffffffffff
push 0x429871
push edx
mov dword fs:[0], esp
sub esp, 0x5c
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x18], eax
cmp byte [eax + 4], 0
jne 0x429857
mov ecx, dword [eax]
cmp ecx, 0x5b
je 0x429682
ja 0x429590
cmp ecx, 0x2b
je 0x4295bd
ja 0x429581
cmp ecx, 0x24
je 0x429719
cmp ecx, 0x2a
je 0x4295bd
jmp 0x42976e
cmp ecx, 0x2e
je 0x4295ca
cmp ecx, 0x3f
je 0x4295bd
jmp 0x42976e
cmp ecx, 0x7b
je 0x4295bd
ja 0x4295ae
cmp ecx, 0x5c
je 0x42968c
cmp ecx, 0x5e
je 0x4296c4
jmp 0x42976e
cmp ecx, 0x7c
je 0x4295bd
cmp ecx, 0x7d
je 0x4295bd
jmp 0x42976e
mov edx, 0x4be870
push edx
push 0x2b
call fcn.00429fc4
mov ebx, dword [ebp - 0x18]
test dword [ebx + 0x18], 0x20
je 0x4295fc
push 0x84
xor ecx, ecx
lea eax, [ebp - 0x34]
mov dword [ebp - 0x34], ecx
push ecx
call fcn.0045758c
mov edx, dword [eax]
push edx
mov eax, dword [ebp - 0x18]
add eax, 0x1c
call fcn.00458ec0
jmp 0x42984f
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 4], 0
push 0xa
mov ecx, dword [ebp - 0x18]
lea ebx, [ecx + 0x1c]
push 0xb
lea eax, [ebp - 0x54]
call fcn.0042ae28
mov esi, eax
mov eax, esi
push 0xd
push 0xe
call fcn.0042ae28
lea edx, [ebp - 0x24]
mov edi, eax
push edx
mov eax, edi
call fcn.004584e4
mov edx, dword [eax + 4]
mov eax, dword [eax]
push edx
push eax
mov eax, ebx
call fcn.00458fe8
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc]
push 0xffffffffffffffff
push ecx
push 0x4b4ae0
call fcn.004540c0
add esp, 0xc
call fcn.00429672
jmp 0x42984f
call fcn.00429888
jmp 0x429857
call fcn.00428e28
mov edx, dword [ebp - 0x18]
movsx ebx, byte [edx + 4]
xor bl, 1
mov esi, 0x42987c
mov ecx, 0x4be610
mov eax, 0x35c
push ebx
push esi
push dword [ebp - 0x18]
push ecx
push 0x6a
call fcn.00451ce4
mov eax, dword [ebp - 0x18]
call fcn.004298e8
jmp 0x429857
test dword [eax + 0x18], 0x10
je 0x4296f3
push 0x9c
xor ebx, ebx
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], ebx
push ebx
call fcn.0045758c
mov ecx, dword [eax]
push ecx
mov eax, dword [ebp - 0x18]
add eax, 0x1c
call fcn.00458ec0
jmp 0x42984f
push 0xc0
xor ebx, ebx
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], ebx
push ebx
call fcn.0045758c
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0x18]
lea eax, [edx + 0x1c]
call fcn.00458ec0
jmp 0x42984f
test dword [eax + 0x18], 0x10
je 0x429748
push 0xa0
xor ecx, ecx
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], ecx
push ecx
call fcn.0045758c
mov edx, dword [eax]
push edx
mov eax, dword [ebp - 0x18]
add eax, 0x1c
call fcn.00458ec0
jmp 0x42984f
push 0xc4
xor edx, edx
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], edx
push edx
call fcn.0045758c
mov ebx, dword [eax]
push ebx
mov esi, dword [ebp - 0x18]
lea eax, [esi + 0x1c]
call fcn.00458ec0
jmp 0x42984f
test dword [eax + 0x18], 2
je 0x42982b
mov eax, dword [eax]
call fcn.00458bd0
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x58], edx
call fcn.00458d9c
cmp eax, 1
jne 0x4297c5
mov dword [ebp - 0x3c], 0
lea eax, [ebp - 0x5c]
push 0x80
call fcn.00458d04
push eax
lea eax, [ebp - 0x3c]
call fcn.0045758c
mov ecx, dword [eax]
push ecx
mov eax, dword [ebp - 0x18]
add eax, 0x1c
call fcn.00458ec0
jmp 0x42984f
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], edx
call fcn.00458d88
xor al, 1
je 0x42984f
mov ebx, dword [ebp - 0x18]
lea esi, [ebx + 0x1c]
lea eax, [ebp - 0x44]
call fcn.00458d04
mov ebx, eax
lea eax, [ebp - 0x5c]
push 0x90
mov dword [ebp - 0x4c], 0
push ebx
call fcn.00458d9c
push eax
lea eax, [ebp - 0x4c]
call fcn.0045759c
mov ecx, dword [eax]
mov eax, esi
push ecx
call fcn.00458ec0
lea eax, [ebp - 0x44]
call fcn.00458dc0
lea eax, [ebp - 0x44]
call fcn.00458d88
xor al, 1
jne 0x4297e3
jmp 0x42984f
push 0x80
mov dword [ebp - 0x1c], 0
push dword [eax]
lea eax, [ebp - 0x1c]
call fcn.0045758c
mov ecx, dword [eax]
push ecx
mov ebx, dword [ebp - 0x18]
lea eax, [ebx + 0x1c]
call fcn.00458ec0
mov eax, dword [ebp - 0x18]
call fcn.00428e88
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ebx, dword [ebp - 0x68]
mov esi, dword [ebp - 0x64]
mov edi, dword [ebp - 0x60]
mov esp, ebp
pop ebp
ret