Function at 0x429fe0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2c
mov dword [esp + 0x1c], 0
mov dword [esp + 4], 0x700f0e0d
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
mov eax, 0xbd
mov ecx, 0x42
nop
nop
nop
movzx esi, byte [esp + eax - 0xb9]
mov edx, eax
xor edx, ecx
and edx, esi
xor edx, ecx
mov bl, 0x4e
sub bl, dl
mov byte [esp + eax - 0xb9], bl
inc eax
dec ecx
cmp eax, 0xc4
jne 0x42a010
mov eax, dword [esp + 4]
mov ecx, dword [0x452b74]
test ecx, ecx
je 0x42a084
xor edx, edx
mov esi, dword [0x452b78]
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x9abdb589
je 0x42a060
inc edx
cmp ecx, edx
jne 0x42a050
jmp 0x42a084
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x42a084
lea eax, [esp + 0x1c]
push eax
push 0
push 0
push 5
push 4
push ecx
push dword [0x452b7c]
call fcn.00442710
add esp, 0x1c
mov dword [esp + 4], 0xd11e1f18
xor ecx, ecx
nop
nop
movzx esi, byte [esp + ecx + 4]
mov edx, ecx
xor edx, 0xfa0ca3fa
mov edi, ecx
or edi, 1
and edi, edx
mov edx, ecx
and edx, 2
xor edx, 0xfa0ca3fa
sub edx, edi
xor edx, esi
mov esi, 0xe5
sub esi, edx
not edx
and edx, 1
xor esi, 1
lea edx, [esi + edx*2]
mov byte [esp + ecx + 4], dl
inc ecx
cmp ecx, 4
jne 0x42a090
cmp eax, dword [esp + 4]
jne 0x42a16c
push dword [esp + 0x1c]
call fcn.0043f6a0
add esp, 4
mov edi, eax
mov ebp, dword [esp + 0x1c]
mov dword [esp + 4], 0x700f0e0d
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
mov eax, 0xbd
mov edx, 0x42
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0xb9]
mov ebx, eax
xor ebx, edx
and ebx, esi
xor ebx, edx
mov cl, 0x4e
sub cl, bl
mov byte [esp + eax - 0xb9], cl
inc eax
dec edx
cmp eax, 0xc4
jne 0x42a110
mov eax, dword [esp + 4]
mov edx, dword [0x452b74]
test edx, edx
je 0x42a194
mov ebx, edi
xor esi, esi
mov edi, dword [0x452b78]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x9abdb589
je 0x42a173
mov ecx, esi
and ecx, 1
xor esi, 1
lea esi, [esi + ecx*2]
cmp esi, edx
jb 0x42a150
mov edi, ebx
jmp 0x42a194
xor ebx, ebx
jmp 0x42a4be
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
mov edi, ebx
je 0x42a194
push 0
push ebp
push edi
push 5
push 4
push edx
push dword [0x452b7c]
call fcn.00442710
add esp, 0x1c
xor ebx, ebx
test eax, eax
js 0x42a4b5
mov esi, dword [edi]
mov eax, esi
mov ecx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc ebx
lea edx, [ecx + eax]
mov eax, dword [ecx + eax]
mov ecx, edx
test eax, eax
jne 0x42a1b0
mov eax, ebx
and eax, 0xfffffefb
mov ecx, ebx
and ecx, 0x104
or ebx, 0x104
imul ebx, ecx
xor ecx, 0x104
imul ecx, eax
add ebx, ecx
jns 0x42a1e9
mov ebx, 0xffffffff
jmp 0x42a1eb
add ebx, ebx
push ebx
call fcn.0040c820
add esp, 4
mov ebp, eax
mov dword [esp + 0x24], edi
mov ecx, edi
jmp 0x42a211
add ecx, esi
mov word [ebp], 0xa
add ebp, 2
mov esi, dword [ecx]
test esi, esi
je 0x42a234
mov edx, dword [ecx + esi + 0x3c]
movzx edi, word [edx]
test di, di
je 0x42a200
add edx, 2
mov word [ebp], di
add ebp, 2
movzx edi, word [edx]
add edx, 2
test di, di
jne 0x42a220
jmp 0x42a200
xor ebx, ebx
cmp ebp, eax
je 0x42a4a8
mov word [ebp], 0
movzx edi, word [eax]
test di, di
je 0x42a29b
mov esi, eax
add esi, 2
xor ebx, ebx
mov ecx, edi
jmp 0x42a26c
inc ebx
movzx ecx, word [esi]
add esi, 2
test cx, cx
je 0x42a29b
cmp cx, 0x7f
jbe 0x42a260
movzx edx, cx
cmp edx, 0x7ff
ja 0x42a290
add ebx, 2
jmp 0x42a261
cmp cx, 0xffff
je 0x42a261
add ebx, 3
jmp 0x42a261
mov dword [esp + 0x20], eax
lea eax, [ebx + 1]
push eax
call fcn.0040c820
add esp, 4
mov dword [esp + 0x18], eax
mov ecx, eax
test di, di
je 0x42a411
mov ecx, dword [esp + 0x18]
test ebx, ebx
je 0x42a411
mov edx, dword [esp + 0x20]
mov ebp, ebx
mov ecx, dword [esp + 0x18]
movzx eax, di
lea edi, [edx + 2]
cmp ax, 0x7f
ja 0x42a2f0
lea esi, [ecx + 1]
mov byte [ecx], al
jmp 0x42a3b0
cmp eax, 0x7ff
ja 0x42a320
cmp ebp, 2
jb 0x42a320
mov edx, eax
shr edx, 6
add dl, 0xc0
mov byte [ecx], dl
and al, 0x3f
or al, 0x80
lea esi, [ecx + 2]
mov byte [ecx + 1], al
jmp 0x42a3b0
mov dword [esp], ecx
mov esi, eax
and esi, 0xfc00
cmp esi, 0xd800
jne 0x42a3ca
cmp ebp, 4
jb 0x42a3ca
movzx edi, word [edx + 2]
add edx, 4
mov esi, eax
not esi
and esi, 0xd800
and eax, 0x27ff
sub eax, esi
shl eax, 0xa
lea ecx, [eax + edi]
add ecx, 0xffff2400
mov dword [esp + 0x28], ecx
lea ecx, [eax + edi]
add ecx, 0x2400
mov eax, ecx
shr eax, 0x12
add al, 0xf0
mov esi, dword [esp]
mov byte [esi], al
shr ecx, 0xc
and cl, 0x3f
or cl, 0x80
mov byte [esi + 1], cl
mov ecx, esi
mov eax, dword [esp + 0x28]
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [esi + 2], al
mov eax, edi
and al, 0x3f
or al, 0x80
add esi, 4
mov byte [ecx + 3], al
mov edi, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ebp, ecx
sub ebp, esi
mov edx, edi
mov ecx, esi
movzx edi, word [edx]
test di, di
je 0x42a411
test ebp, ebp
jne 0x42a2d0
jmp 0x42a411
movzx ecx, si
cmp ecx, 0xdc00
jne 0x42a3dc
mov edx, edi
mov ecx, dword [esp]
jmp 0x42a3b8
cmp ebp, 3
jb 0x42a40a
mov ecx, eax
shr ecx, 0xc
or cl, 0xe0
mov edx, dword [esp]
mov byte [edx], cl
mov ecx, eax
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [edx + 1], cl
mov ecx, edx
and al, 0x3f
or al, 0x80
lea esi, [edx + 3]
mov byte [edx + 2], al
jmp 0x42a3b0
mov ecx, dword [esp]
mov esi, ecx
jmp 0x42a3b0
mov byte [ecx], 0
mov dword [esp + 4], 0x7c6b6d14
mov dword [esp + 8], 0x666b6a63
mov dword [esp + 0xc], 0x59662169
mov word [esp + 0x10], 0xd764
mov dword [esp + 0x12], 0
mov word [esp + 0x16], 0
mov eax, 0x4b5cee2f
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x4b5cee2b]
mov edx, ecx
not edx
mov esi, eax
or esi, edx
sub edx, esi
mov esi, eax
and esi, ecx
xor ecx, eax
add esi, edx
lea ecx, [ecx + esi*2]
add cl, 0x15
mov byte [esp + eax - 0x4b5cee2b], cl
inc eax
cmp eax, 0x4b5cee43
jne 0x42a450
lea eax, [esp + 4]
mov ecx, dword [esp + 0x40]
push ebx
mov esi, dword [esp + 0x1c]
push esi
push eax
call fcn.0040d170
mov ebx, eax
push esi
call fcn.0040c830
add esp, 4
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
jmp 0x42a4ac
mov edi, dword [esp + 0x24]
push eax
call fcn.0040c830
add esp, 4
push edi
call fcn.0043f710
add esp, 4
mov eax, ebx
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret