Function at 0x42e08e
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esi + 0x15c]
test eax, eax
jle 0x42e31d
mov edi, dword [esp + 0x10]
cmp edi, eax
jg 0x42e31d
call 0x430094
mov eax, dword [esp + 0x14]
sub eax, 0
je 0x42e270
dec eax
je 0x42e1b3
dec eax
jne 0x42e31d
cmp edi, 0xffffffff
jne 0x42e13a
mov eax, dword [esi + 0x15c]
mov edx, dword [esi + 0x158]
sub eax, edx
mov dword [esi + 0x158], eax
mov edi, dword [esi + 0x1a8]
xor eax, eax
test edi, edi
jle 0x42e114
mov ecx, dword [esi + 0x1a4]
add ecx, eax
mov dl, byte [ecx]
mov byte [esp + 0x10], dl
mov edx, dword [esp + 0x10]
mov ebp, edx
not ebp
xor ebp, edx
and ebp, 1
xor edx, ebp
inc eax
mov dword [esp + 0x10], edx
cmp eax, edi
mov dl, byte [esp + 0x10]
mov byte [ecx], dl
jl 0x42e0e8
mov esi, dword [esi + 0x1c]
test esi, esi
je 0x42e312
push 0x105
push 0
push 0
push esi
call dword [0x49e6a0]
pop edi
pop esi
mov eax, 1
pop ebp
ret 8
mov eax, dword [esi + 0x1a4]
mov cl, byte [eax + edi]
mov byte [esp + 0x10], cl
mov ecx, dword [esi + 0x158]
mov eax, dword [esp + 0x10]
mov edx, eax
not edx
xor edx, eax
and edx, 1
xor eax, edx
mov dword [esp + 0x10], eax
mov al, byte [esp + 0x10]
test al, 1
je 0x42e16b
inc ecx
jmp 0x42e16c
dec ecx
mov dword [esi + 0x158], ecx
mov ecx, dword [esi + 0x1a4]
mov byte [ecx + edi], al
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x42e312
cmp edi, dword [esi + 0x88]
jl 0x42e312
cmp edi, dword [esi + 0x90]
jg 0x42e312
push 0
push edi
mov ecx, esi
call 0x432c94
pop edi
pop esi
mov eax, 1
pop ebp
ret 8
cmp edi, 0xffffffff
jne 0x42e21a
mov edx, dword [esi + 0x15c]
xor eax, eax
mov dword [esi + 0x158], edx
mov edi, dword [esi + 0x1a8]
test edi, edi
jle 0x42e1f4
mov ecx, dword [esi + 0x1a4]
add ecx, eax
mov dl, byte [ecx]
mov byte [esp + 0x10], dl
mov ebp, dword [esp + 0x10]
or ebp, 1
inc eax
mov dword [esp + 0x10], ebp
cmp eax, edi
mov dl, byte [esp + 0x10]
mov byte [ecx], dl
jl 0x42e1d0
mov esi, dword [esi + 0x1c]
test esi, esi
je 0x42e312
push 0x105
push 0
push 0
push esi
call dword [0x49e6a0]
pop edi
pop esi
mov eax, 1
pop ebp
ret 8
mov eax, dword [esi + 0x1a4]
mov al, byte [eax + edi]
test al, 1
jne 0x42e22d
inc dword [esi + 0x158]
mov ecx, dword [esi + 0x1a4]
or al, 1
mov byte [ecx + edi], al
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x42e312
cmp edi, dword [esi + 0x88]
jl 0x42e312
cmp edi, dword [esi + 0x90]
jg 0x42e312
push 0
push edi
mov ecx, esi
call 0x432c94
pop edi
pop esi
mov eax, 1
pop ebp
ret 8
cmp edi, 0xffffffff
jne 0x42e2d3
mov dword [esi + 0x158], 0
mov edi, dword [esi + 0x1a8]
xor eax, eax
test edi, edi
jle 0x42e2b1
mov edx, dword [esi + 0x1a4]
lea ecx, [edx + eax]
mov dl, byte [edx + eax]
mov byte [esp + 0x10], dl
mov ebp, dword [esp + 0x10]
and ebp, 0xfffffffe
inc eax
mov dword [esp + 0x10], ebp
cmp eax, edi
mov dl, byte [esp + 0x10]
mov byte [ecx], dl
jl 0x42e28b
mov esi, dword [esi + 0x1c]
test esi, esi
je 0x42e312
push 0x105
push 0
push 0
push esi
call dword [0x49e6a0]
pop edi
pop esi
mov eax, 1
pop ebp
ret 8
mov eax, dword [esi + 0x1a4]
mov al, byte [eax + edi]
test al, 1
je 0x42e2e6
dec dword [esi + 0x158]
mov ecx, dword [esi + 0x1a4]
and al, 0xfe
mov byte [ecx + edi], al
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x42e312
cmp edi, dword [esi + 0x88]
jl 0x42e312
cmp edi, dword [esi + 0x90]
jg 0x42e312
push 0
push edi
mov ecx, esi
call 0x432c94
pop edi
pop esi
mov eax, 1
pop ebp
ret 8
pop edi
pop esi
xor eax, eax
pop ebp
ret 8