Function at 0x429880
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov dword [esp + 0x14], 0
mov dword [esp], 0x5c5d5e5f
mov dword [esp + 4], 0
xor eax, eax
movzx edx, byte [esp + eax]
lea esi, [eax + 0xf0]
mov ecx, eax
xor ecx, esi
xor ecx, 0xf
and ecx, edx
xor ecx, esi
add cl, 0x50
mov byte [esp + eax], cl
inc eax
cmp eax, 8
jne 0x4298a0
mov eax, dword [esp]
mov ecx, dword [0x44f6fc]
test ecx, ecx
je 0x429914
xor edx, edx
mov esi, dword [0x44f700]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x9abdb589
je 0x4298f0
inc edx
cmp ecx, edx
jne 0x4298e0
jmp 0x429914
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x429914
lea eax, [esp + 0x14]
push eax
push 0
push 0
push 5
push 4
push dword [0x44f704]
push ecx
call fcn.0043f170
add esp, 0x1c
mov dword [esp], 0xff3e393c
xor ecx, ecx
nop
nop
nop
mov edx, ecx
add dl, 0x8a
xor dl, byte [esp + ecx]
add dl, 0x4e
mov byte [esp + ecx], dl
inc ecx
cmp ecx, 4
jne 0x429920
xor ebx, ebx
cmp eax, dword [esp]
jne 0x429b53
push dword [esp + 0x14]
call fcn.0043c430
add esp, 4
mov edi, eax
mov ecx, dword [esp + 0x14]
mov dword [esp], 0x5c5d5e5f
mov dword [esp + 4], 0
movzx edx, byte [esp + ebx]
lea esi, [ebx + 0xf0]
mov eax, ebx
xor eax, esi
xor eax, 0xf
and eax, edx
xor eax, esi
add al, 0x50
mov byte [esp + ebx], al
inc ebx
cmp ebx, 8
jne 0x429960
mov eax, dword [esp]
mov edx, dword [0x44f6fc]
test edx, edx
je 0x4299cf
xor esi, esi
mov ebx, dword [0x44f700]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + esi*8], 0x9abdb589
je 0x4299b0
inc esi
cmp edx, esi
jne 0x4299a0
jmp 0x4299cf
mov edx, dword [ebx + esi*8 + 4]
cmp edx, eax
je 0x4299cf
push 0
push ecx
push edi
push 5
push 4
push dword [0x44f704]
push edx
call fcn.0043f170
add esp, 0x1c
xor ebx, ebx
test eax, eax
js 0x429b4a
mov esi, dword [edi]
xor eax, eax
mov ecx, esi
mov edx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea ebp, [edx + ecx]
mov ecx, dword [edx + ecx]
add eax, 0x208
add ebx, 0x104
mov edx, ebp
test ecx, ecx
jne 0x4299f0
test ebx, ebx
jns 0x429a10
mov eax, 0xffffffff
push eax
call fcn.0040c6f0
add esp, 4
mov ebp, eax
mov ecx, edi
jmp 0x429a30
add ecx, esi
mov word [eax], 0xa
add eax, 2
mov esi, dword [ecx]
test esi, esi
je 0x429a53
mov edx, dword [ecx + esi + 0x3c]
movzx ebx, word [edx]
test bx, bx
je 0x429a20
add edx, 2
nop
mov word [eax], bx
add eax, 2
movzx ebx, word [edx]
add edx, 2
test bx, bx
jne 0x429a40
jmp 0x429a20
xor ebx, ebx
cmp eax, ebp
je 0x429b41
mov word [eax], 0
movzx ecx, word [ebp]
test cx, cx
je 0x429abb
mov eax, ebp
add eax, 2
xor ebx, ebx
jmp 0x429a8c
inc ebx
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x429abb
cmp cx, 0x7f
jbe 0x429a80
movzx edx, cx
cmp edx, 0x7ff
ja 0x429ab0
add ebx, 2
jmp 0x429a81
cmp cx, 0xffff
je 0x429a81
add ebx, 3
jmp 0x429a81
mov dword [esp + 0x18], edi
lea edi, [ebx + 1]
push edi
call fcn.0040c6f0
add esp, 4
mov esi, eax
push ebp
push edi
push eax
call fcn.00429720
add esp, 0xc
mov dword [esp], 0x9c979574
mov dword [esp + 4], 0x82afae9f
mov dword [esp + 8], 0xb1b249b1
mov word [esp + 0xc], 0x3bb4
mov dword [esp + 0xe], 0
mov word [esp + 0x12], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x89
xor cl, byte [esp + eax]
add cl, 0x53
mov byte [esp + eax], cl
inc eax
cmp eax, 0x14
jne 0x429b10
mov eax, esp
mov ecx, dword [esp + 0x30]
push ebx
push esi
push eax
call fcn.0040d2e0
mov ebx, eax
push esi
call fcn.0040c700
add esp, 4
mov edi, dword [esp + 0x18]
push ebp
call fcn.0040c700
add esp, 4
push edi
call fcn.0043c4c0
add esp, 4
mov eax, ebx
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret