Function at 0x429430
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x20
mov dword [esp + 0x18], 0
mov dword [esp], 0x181b1a1d
mov byte [esp + 4], 0
xor eax, eax
nop
nop
nop
mov ecx, eax
add cl, 0x7b
xor cl, byte [esp + eax]
add cl, 0x99
mov byte [esp + eax], cl
inc eax
cmp eax, 5
jne 0x429450
mov eax, dword [esp]
mov ecx, dword [0x44e478]
test ecx, ecx
je 0x4294b4
xor edx, edx
mov esi, dword [0x44e47c]
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x9abdb589
je 0x429490
inc edx
cmp ecx, edx
jne 0x429480
jmp 0x4294b4
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x4294b4
lea eax, [esp + 0x18]
push eax
push 0
push 0
push 5
push 4
push dword [0x44e480]
push ecx
call fcn.0043fae0
add esp, 0x1c
mov dword [esp], 0x793a3b30
mov word [esp + 4], 0
mov byte [esp + 6], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx]
lea edx, [ecx + 0x3c0801cb]
mov edi, 0x37fe34
sub edi, ecx
and edi, 0x361a37
mov ebx, edx
xor ebx, 0xc080057
or edx, 0x30000188
and edx, ebx
or edx, edi
xor edx, esi
xor edx, 0xc3e1a77
lea esi, [edx - 0x53a6e5bc]
mov edi, esi
and edi, 0x44
xor esi, 0xc4
lea esi, [esi + edi*2]
and edx, 1
xor esi, 1
lea edx, [esi + edx*2]
mov byte [esp + ecx], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 7
jb 0x4294d0
xor ebx, ebx
cmp eax, dword [esp]
jne 0x4298ad
push dword [esp + 0x18]
call fcn.0043cef0
add esp, 4
mov ebp, eax
mov ecx, dword [esp + 0x18]
mov dword [esp], 0x181b1a1d
mov byte [esp + 4], 0
nop
nop
nop
nop
nop
nop
mov eax, ebx
add al, 0x7b
xor al, byte [esp + ebx]
add al, 0x99
mov byte [esp + ebx], al
inc ebx
cmp ebx, 5
jne 0x429560
mov eax, dword [esp]
mov edx, dword [0x44e478]
test edx, edx
je 0x4295bf
xor esi, esi
mov edi, dword [0x44e47c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x9abdb589
je 0x4295a0
inc esi
cmp edx, esi
jne 0x429590
jmp 0x4295bf
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x4295bf
push 0
push ecx
push ebp
push 5
push 4
push dword [0x44e480]
push edx
call fcn.0043fae0
add esp, 0x1c
xor ebx, ebx
test eax, eax
js 0x4298a4
mov esi, dword [ebp]
mov eax, esi
mov ecx, ebp
lea edx, [ecx + eax]
mov eax, dword [ecx + eax]
dec ebx
mov ecx, edx
test eax, eax
jne 0x4295d0
lea eax, [ebx - 1]
and eax, 0x104
neg ebx
mov ecx, ebx
and ecx, 0xfffffefb
imul ecx, eax
mov eax, ebx
and eax, 0x104
or ebx, 0x104
imul ebx, eax
add ebx, ecx
jns 0x42960d
mov ebx, 0xffffffff
jmp 0x42960f
add ebx, ebx
push ebx
call fcn.0040c9c0
add esp, 4
mov dword [esp + 0x14], eax
mov ecx, ebp
jmp 0x429630
add ecx, esi
mov word [eax], 0xa
add eax, 2
mov esi, dword [ecx]
test esi, esi
je 0x429653
mov edx, dword [ecx + esi + 0x3c]
movzx edi, word [edx]
test di, di
je 0x429620
add edx, 2
nop
mov word [eax], di
add eax, 2
movzx edi, word [edx]
add edx, 2
test di, di
jne 0x429640
jmp 0x429620
xor ebx, ebx
mov ecx, dword [esp + 0x14]
cmp eax, ecx
je 0x42989b
mov word [eax], 0
movzx edi, word [ecx]
test di, di
je 0x4296bb
mov eax, ecx
add eax, 2
xor ebx, ebx
mov ecx, edi
jmp 0x42968c
inc ebx
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x4296bb
cmp cx, 0x7f
jbe 0x429680
movzx edx, cx
cmp edx, 0x7ff
ja 0x4296b0
add ebx, 2
jmp 0x429681
cmp cx, 0xffff
je 0x429681
add ebx, 3
jmp 0x429681
mov dword [esp + 0x1c], ebp
lea eax, [ebx + 1]
push eax
call fcn.0040c9c0
add esp, 4
mov ebp, eax
mov dword [esp + 0x10], eax
test di, di
je 0x429809
mov ebp, dword [esp + 0x10]
test ebx, ebx
je 0x429809
mov edx, dword [esp + 0x14]
mov esi, ebx
mov ebp, dword [esp + 0x10]
movzx ecx, di
lea edi, [edx + 2]
cmp cx, 0x7f
ja 0x429710
lea eax, [ebp + 1]
mov byte [ebp], cl
jmp 0x4297a0
cmp ecx, 0x7ff
ja 0x429740
cmp esi, 2
jb 0x429740
mov eax, ecx
shr eax, 6
add al, 0xc0
mov byte [ebp], al
and cl, 0x3f
or cl, 0x80
lea eax, [ebp + 2]
mov byte [ebp + 1], cl
jmp 0x4297a0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4297c8
cmp esi, 4
jb 0x4297c8
movzx edi, word [edx + 2]
add edx, 4
shl ecx, 0xa
lea eax, [ecx + edi]
add eax, 0xfca02400
mov ecx, eax
shr ecx, 0x12
add cl, 0xf0
mov byte [ebp], cl
mov ecx, eax
shr ecx, 0xc
and cl, 0x3f
or cl, 0x80
mov byte [ebp + 1], cl
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [ebp + 2], al
mov eax, edi
and al, 0x3f
or al, 0x80
mov ecx, eax
lea eax, [ebp + 4]
mov byte [ebp + 3], cl
mov edi, edx
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
sub ecx, ebp
mov edx, esi
not edx
and edx, ecx
not ecx
and ecx, esi
sub ecx, edx
mov edx, edi
mov ebp, eax
mov esi, ecx
movzx edi, word [edx]
test di, di
je 0x429809
test esi, esi
jne 0x4296f0
jmp 0x429809
movzx eax, ax
cmp eax, 0xdc00
jne 0x4297d6
mov edx, edi
jmp 0x4297b6
cmp esi, 3
jb 0x429805
mov eax, ecx
shr eax, 0xc
or al, 0xe0
mov byte [ebp], al
mov eax, ecx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [ebp + 1], al
mov edx, ecx
not edx
or edx, 0x3f
add edx, ecx
add dl, 0x81
lea eax, [ebp + 3]
mov byte [ebp + 2], dl
jmp 0x4297a0
mov eax, ebp
jmp 0x4297a0
mov byte [ebp], 0
mov dword [esp], 0xc8c5b7e8
mov dword [esp + 4], 0xcebdbac9
mov dword [esp + 8], 0x474203bf
mov dword [esp + 0xc], 0xcd40
mov eax, 0xf5c7eff6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0xa38100a]
xor edx, eax
lea esi, [edx + 0x33185031]
mov edi, esi
not edi
and esi, 1
mov ecx, 0xce
sub ecx, edx
or ecx, edi
not ecx
or ecx, 1
add ecx, esi
mov byte [esp + eax + 0xa38100a], cl
inc eax
cmp eax, 0xf5c7f006
jne 0x429840
mov eax, esp
mov ecx, dword [esp + 0x34]
push ebx
mov esi, dword [esp + 0x14]
push esi
push eax
call fcn.0040d540
mov ebx, eax
push esi
call fcn.0040c9d0
add esp, 4
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
push ecx
call fcn.0040c9d0
add esp, 4
push ebp
call fcn.0043cf50
add esp, 4
mov eax, ebx
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret