Function at 0x4297b0
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], 0x70605
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x81
xor cl, byte [esp + eax]
add cl, 0x7b
mov byte [esp + eax], cl
inc eax
cmp eax, 4
jne 0x4297d0
mov eax, dword [esp]
mov ecx, dword [0x44cff0]
test ecx, ecx
je 0x429834
xor edx, edx
mov esi, dword [0x44cff4]
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x61813e67
je 0x429810
inc edx
cmp ecx, edx
jne 0x429800
jmp 0x429834
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x429834
lea eax, [esp + 0x14]
push eax
push 0
push 0
push 5
push 0x10
push ecx
push dword [0x44cff8]
call fcn.0043def0
add esp, 0x1c
mov dword [esp], 0xc3020104
mov word [esp + 4], 0
xor ecx, ecx
mov edx, 0x11a6377f
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx]
mov ebx, ecx
xor ebx, 0x7f
or ebx, edx
and ebx, edi
mov esi, ecx
xor esi, 0x11a6377f
or esi, edi
xor esi, ebx
lea edi, [esi + esi]
not edi
add edi, esi
and esi, 0x7f
mov ebx, edi
and ebx, 0x80
or ebx, esi
lea ebx, [ebx + edi*2]
inc bl
mov byte [esp + ecx], bl
inc ecx
dec edx
cmp ecx, 6
jne 0x429850
xor ebx, ebx
cmp eax, dword [esp]
jne 0x429abe
push dword [esp + 0x14]
call fcn.0043b840
add esp, 4
mov edi, eax
mov ecx, dword [esp + 0x14]
mov dword [esp], 0x70605
mov eax, ebx
add al, 0x81
xor al, byte [esp + ebx]
add al, 0x7b
mov byte [esp + ebx], al
inc ebx
cmp ebx, 4
jne 0x4298b0
mov eax, dword [esp]
mov edx, dword [0x44cff0]
test edx, edx
je 0x42990f
xor esi, esi
mov ebx, dword [0x44cff4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + esi*8], 0x61813e67
je 0x4298f0
inc esi
cmp edx, esi
jne 0x4298e0
jmp 0x42990f
mov edx, dword [ebx + esi*8 + 4]
cmp edx, eax
je 0x42990f
push 0
push ecx
push edi
push 5
push 0x10
push edx
push dword [0x44cff8]
call fcn.0043def0
add esp, 0x1c
xor ebx, ebx
test eax, eax
js 0x429ab5
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 0x429930
test ebx, ebx
jns 0x429950
mov eax, 0xffffffff
push eax
call fcn.00408c10
add esp, 4
mov ebp, eax
mov ecx, edi
jmp 0x429970
add ecx, esi
mov word [eax], 0xa
add eax, 2
mov esi, dword [ecx]
test esi, esi
je 0x429993
mov edx, dword [ecx + esi + 0x3c]
movzx ebx, word [edx]
test bx, bx
je 0x429960
add edx, 2
nop
mov word [eax], bx
add eax, 2
movzx ebx, word [edx]
add edx, 2
test bx, bx
jne 0x429980
jmp 0x429960
xor ebx, ebx
cmp eax, ebp
je 0x429aac
mov word [eax], 0
movzx ecx, word [ebp]
test cx, cx
je 0x4299fb
mov eax, ebp
add eax, 2
xor ebx, ebx
jmp 0x4299cc
inc ebx
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x4299fb
cmp cx, 0x7f
jbe 0x4299c0
movzx edx, cx
cmp edx, 0x7ff
ja 0x4299f0
add ebx, 2
jmp 0x4299c1
cmp cx, 0xffff
je 0x4299c1
add ebx, 3
jmp 0x4299c1
mov dword [esp + 0x18], edi
lea edi, [ebx + 1]
push edi
call fcn.00408c10
add esp, 4
mov esi, eax
push ebp
push edi
push eax
call fcn.004289f0
add esp, 0xc
mov dword [esp], 0xb8adaf48
mov dword [esp + 4], 0xc6d5aab9
mov dword [esp + 8], 0xdfd213d7
mov word [esp + 0xc], 0x65d0
mov dword [esp + 0xe], 0
mov byte [esp + 0x12], 0
mov eax, 0xa9937c45
mov ecx, 0x566c83ba
nop
nop
nop
movzx edi, byte [esp + ecx - 0x566c83ba]
mov edx, ecx
or edx, edi
or edi, eax
sub edx, edi
add edx, eax
mov edi, edx
not edi
and edi, 0xb01e92a3
and edx, 0x4fe16d5c
sub edx, edi
mov edi, edx
and edi, 1
xor edx, 1
lea edx, [edx + edi*2]
mov byte [esp + ecx - 0x566c83ba], dl
dec eax
inc ecx
cmp eax, 0xa9937c32
jne 0x429a50
mov eax, esp
mov ecx, dword [esp + 0x30]
push ebx
push esi
push eax
call fcn.00409a60
mov ebx, eax
push esi
call fcn.00408c20
add esp, 4
mov edi, dword [esp + 0x18]
push ebp
call fcn.00408c20
add esp, 4
push edi
call fcn.0043b890
add esp, 4
mov eax, ebx
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret