Function at 0x42e760
Capabilities:
Encode data using xor

Disassembly:
push edi
push esi
sub esp, 0x14
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], eax
mov eax, dword [0x49afbc]
add eax, 0x6877d7e3
xor eax, 0xfeeea67d
mov ecx, dword [0x49d798]
add ecx, eax
mov dword [0x49d798], ecx
mov eax, dword [0x49cddc]
and eax, 0x8470ec8a
mov dword [0x49cddc], eax
mov eax, dword [0x498860]
xor eax, 0x8a1059b4
mov ecx, dword [0x498070]
xor ecx, 0xffffffff
xor ecx, 0xa2dcd598
cmp eax, ecx
jg 0x42e7d2
mov ax, word [0x4a1b14]
mov cx, ax
add ecx, 0x5bfab4b2
mov ax, cx
mov word [0x4a1b14], ax
mov eax, 0x4f1734a2
mov ecx, dword [esp + 0x10]
mov edx, esp
mov dword [edx], ecx
mov dword [esp + 4], eax
call fcn.00451b00
mov dword [esp + 8], eax
mov si, word [0x4a1e8e]
movsx eax, si
mov ecx, dword [0x49e480]
sar ecx, 3
sub eax, ecx
or eax, 0xb60b128f
mov ecx, dword [esp + 4]
cmp ecx, eax
je 0x42e836
mov eax, dword [0x4a0fa0]
dec eax
mov dword [0x4a0fa0], eax
imul eax, eax, 0x7d528d18
add eax, 0xecc64501
mov ecx, dword [0x49891c]
xor ecx, eax
mov dword [0x49891c], ecx
mov eax, dword [esp + 8]
dec eax
mov dword [esp + 8], eax
mov dword [0x4a13e8], 0xfa7d29f4
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
movsx eax, byte [ecx + eax]
cmp eax, 0x22
jne 0x42ea5d
mov eax, 0x856e9aca
mov ecx, dword [0x495078]
cmp eax, ecx
jle 0x42e8a7
mov eax, 0xd0b94f25
mov ecx, dword [0x49e884]
or ecx, 0x7c54db02
cmp eax, ecx
jne 0x42e8a2
mov ax, word [0x4a6b04]
mov cx, ax
or ecx, 0x4dc9
mov ax, cx
mov word [0x4a6b04], ax
jmp 0x42e8a7
mov eax, dword [esp + 0x10]
mov byte [eax], 0x22
mov cx, word [0x4a35b4]
movsx eax, cx
mov dword [0x497cf0], eax
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x10]
mov byte [edx + eax], 0
mov eax, dword [0x492ffc]
mov edx, eax
inc edx
mov dword [0x492ffc], edx
mov edx, 0xa35324f9
sub edx, eax
mov eax, dword [0x496f4c]
xor eax, 0x11b3d820
cmp edx, eax
jl 0x42e96a
mov eax, 0xe63b9bd9
mov ecx, dword [0x497284]
shl ecx, 6
mov dx, word [0x4a1ae4]
mov si, dx
inc esi
mov di, si
mov word [0x4a1ae4], di
movsx esi, dx
xor ecx, esi
mov dx, word [0x4a7074]
mov si, dx
dec esi
mov di, si
mov word [0x4a7074], di
movsx esi, dx
or ecx, esi
cmp eax, ecx
jl 0x42e965
mov eax, 0x3a4392da
mov ecx, dword [0x495df4]
xor ecx, 0xffffffff
imul ecx, ecx, 0x87014eb3
cmp eax, ecx
jg 0x42e95b
jmp 0x42e960
jmp 0x42e960
jmp 0x42e965
jmp 0x42e9a9
mov eax, dword [0x49a2dc]
cmp eax, 0x925df347
jle 0x42e9a4
mov ax, word [0x4a5bf6]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x4a5bf6], ax
movsx ecx, ax
and ecx, 0xd6400d96
mov edx, dword [0x4938fc]
or edx, ecx
mov dword [0x4938fc], edx
jmp 0x42e9a9
jmp 0x42e9ae
mov eax, dword [0x4950cc]
or eax, 0x93ca33dc
mov dword [0x4950cc], eax
mov eax, dword [esp + 8]
dec eax
mov dword [esp + 8], eax
mov cx, word [0x4a8826]
mov ax, cx
mov cx, word [0x4a6658]
mov dx, cx
and eax, edx
mov cx, ax
movsx eax, cx
and eax, 0x944434c8
mov edx, dword [0x49d384]
or edx, eax
mov dword [0x49d384], edx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
movsx eax, byte [ecx + eax]
cmp eax, 0x22
jne 0x42e9ae
mov eax, dword [0x4a1444]
or eax, 0x5ee2
mov cx, word [0x4a703a]
mov dx, cx
and edx, eax
mov cx, dx
mov word [0x4a703a], cx
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x10]
lea eax, [eax + edx + 1]
mov dword [esp + 0xc], eax
mov eax, dword [0x4a0e1c]
imul eax, eax, 0x8029bd17
and eax, 0x621e4d47
mov edx, dword [0x499200]
xor edx, eax
mov dword [0x499200], edx
jmp 0x42eb80
mov eax, 0xbbebd1eb
mov cx, word [0x4a482e]
mov dx, cx
inc edx
mov si, dx
mov word [0x4a482e], si
movsx edx, cx
mov dword [0x494a44], edx
mov edx, dword [esp + 0x10]
mov byte [edx], 0x20
mov edx, dword [0x49b394]
dec edx
mov dword [0x49b394], edx
cmp eax, edx
jge 0x42ead9
mov eax, 0xf59e8354
mov ecx, dword [0x49f9ac]
sub eax, ecx
and eax, 0x6b5bcf0
cmp eax, 0x971c67fe
jge 0x42ead4
mov eax, dword [0x4951c4]
not eax
imul eax, eax, 0x4f148b4
mov ecx, dword [0x4932c8]
and ecx, eax
mov dword [0x4932c8], ecx
jmp 0x42ead9
jmp 0x42eade
mov eax, dword [0x49d714]
mov ecx, dword [0x494700]
xor eax, ecx
xor eax, 0xb1710f88
mov dword [0x494700], eax
mov eax, dword [esp + 8]
dec eax
mov dword [esp + 8], eax
mov dx, word [0x4a2ba2]
mov ax, dx
add eax, 0xea5feef5
mov dx, ax
mov word [0x4a2ba2], dx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
movsx eax, byte [ecx + eax]
cmp eax, 0x20
jne 0x42eade
mov eax, 0x395e9deb
mov ecx, dword [0x49dcd8]
add ecx, ecx
and ecx, 0x39e9eff2
mov edx, dword [0x498694]
xor edx, ecx
mov dword [0x498694], edx
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
lea ecx, [ecx + edx + 1]
mov dword [esp + 0xc], ecx
mov ecx, dword [0x4971b0]
cmp eax, ecx
jne 0x42eb7b
mov eax, dword [0x4a05f4]
imul eax, eax, 0xe20c0e29
mov dword [0x4a05f4], eax
jmp 0x42eb80
mov eax, dword [0x4942d4]
add eax, 0xbebb7267
mov dword [0x4942d4], eax
mov eax, dword [esp + 0xc]
add esp, 0x14
pop esi
pop edi
ret