Function at 0x42a130
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x24
mov dword [esp], 0
mov dword [esp + 4], 0x504f4e4d
mov dword [esp + 8], 0
mov eax, 0xd
mov ecx, 0xf2
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 9]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
add dl, 0xbf
mov byte [esp + eax - 9], dl
inc eax
dec ecx
cmp eax, 0x15
jne 0x42a160
mov eax, dword [esp + 4]
mov ecx, dword [0x44f534]
test ecx, ecx
je 0x42a1dc
xor edx, edx
mov esi, dword [0x44f538]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0xc85f7986
je 0x42a1ba
mov edi, edx
and edi, 1
xor edx, 1
lea edx, [edx + edi*2]
cmp edx, ecx
jb 0x42a1a0
jmp 0x42a1dc
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x42a1dc
mov eax, esp
push eax
push 0
push 0
push 5
push 4
push dword [0x44f53c]
push ecx
call fcn.00440f10
add esp, 0x1c
cmp eax, 0xc0000004
jne 0x42a260
push dword [esp]
call fcn.0043e690
add esp, 4
mov ebp, eax
mov ecx, dword [esp]
mov dword [esp + 4], 0x504f4e4d
mov dword [esp + 8], 0
mov eax, 0xd
mov edx, 0xf2
nop
nop
nop
movzx esi, byte [esp + eax - 9]
mov ebx, edx
xor ebx, eax
and ebx, esi
xor ebx, eax
add bl, 0xbf
mov byte [esp + eax - 9], bl
inc eax
dec edx
cmp eax, 0x15
jne 0x42a210
mov eax, dword [esp + 4]
mov edx, dword [0x44f534]
test edx, edx
je 0x42a286
xor esi, esi
mov edi, dword [0x44f538]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xc85f7986
je 0x42a267
inc esi
cmp edx, esi
jne 0x42a250
jmp 0x42a286
xor ebx, ebx
jmp 0x42a45a
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x42a286
push 0
push ecx
push ebp
push 5
push 4
push dword [0x44f53c]
push edx
call fcn.00440f10
add esp, 0x1c
xor ebx, ebx
test eax, eax
js 0x42a451
mov esi, dword [ebp]
xor eax, eax
mov ecx, esi
mov edx, ebp
nop
nop
nop
nop
nop
nop
nop
lea edi, [edx + ecx]
mov ecx, dword [edx + ecx]
add eax, 0x208
add ebx, 0x104
mov edx, edi
test ecx, ecx
jne 0x42a2a0
mov dword [esp + 0x18], ebp
test ebx, ebx
jns 0x42a2c4
mov eax, 0xffffffff
push eax
call fcn.0040ce10
add esp, 4
mov ebp, eax
mov ecx, dword [esp + 0x18]
jmp 0x42a2f0
add ecx, esi
mov word [eax], 0xa
add eax, 2
mov esi, dword [ecx]
test esi, esi
je 0x42a313
mov edx, dword [ecx + esi + 0x3c]
movzx edi, word [edx]
test di, di
je 0x42a2e0
add edx, 2
nop
mov word [eax], di
add eax, 2
movzx edi, word [edx]
add edx, 2
test di, di
jne 0x42a300
jmp 0x42a2e0
xor ebx, ebx
cmp eax, ebp
je 0x42a444
mov word [eax], 0
movzx ecx, word [ebp]
test cx, cx
je 0x42a37b
mov eax, ebp
add eax, 2
xor ebx, ebx
jmp 0x42a34c
inc ebx
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x42a37b
cmp cx, 0x7f
jbe 0x42a340
movzx edx, cx
cmp edx, 0x7ff
ja 0x42a370
add ebx, 2
jmp 0x42a341
cmp cx, 0xffff
je 0x42a341
add ebx, 3
jmp 0x42a341
mov dword [esp + 0x20], ebx
lea edi, [ebx + 1]
push edi
call fcn.0040ce10
add esp, 4
push ebp
push edi
mov dword [esp + 0x24], eax
push eax
call fcn.00429fd0
add esp, 0xc
mov dword [esp + 4], 0x18edef08
mov dword [esp + 8], 0x6f5ea19
mov dword [esp + 0xc], 0xfff233f7
mov dword [esp + 0x10], 0x65f0
mov byte [esp + 0x14], 0
mov edx, 0xc7890ea
mov edi, 0x73876f15
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + edx - 0xc7890e6]
mov eax, edi
or eax, esi
lea ebx, [edi - 0x73876f00]
and ebx, esi
xor ebx, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xfd
mul cl
mov ecx, eax
mov eax, esi
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0x6e
mov byte [esp + edx - 0xc7890e6], al
inc edx
dec edi
cmp edx, 0xc7890fb
jne 0x42a3d0
lea eax, [esp + 4]
mov ecx, dword [esp + 0x38]
push dword [esp + 0x20]
mov esi, dword [esp + 0x20]
push esi
push eax
call fcn.0040d960
mov ebx, eax
push esi
call fcn.0040ce20
add esp, 4
push ebp
call fcn.0040ce20
add esp, 4
mov ebp, dword [esp + 0x18]
push ebp
call fcn.0043e710
add esp, 4
mov eax, ebx
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret