Function at 0x42f260
Capabilities:
Encode data using xor

Disassembly:
push edi
push esi
sub esp, 0x28c
mov eax, 0x654e176e
mov ecx, dword [0x4895f4]
sar ecx, 4
and ecx, 0x21f0dc6
cmp eax, ecx
jne 0x42f293
mov eax, dword [0x488d98]
add eax, 0x4526982
mov dword [0x488d98], eax
mov eax, dword [0x4948d8]
cmp eax, 0
je 0x42f2a6
jmp 0x42f6bb
mov eax, dword [0x48a8c4]
imul eax, eax, 0xd738ab0a
mov ecx, 0x62df6348
sub ecx, eax
mov eax, dword [0x482e4c]
imul eax, ecx
mov dword [0x482e4c], eax
mov eax, dword [0x489c14]
mov ecx, eax
dec ecx
mov dword [0x489c14], ecx
mov ecx, 0x8a98c1f9
sub ecx, eax
or ecx, 0xd462
mov dx, word [0x49167e]
mov ax, dx
imul eax, ecx
mov dx, ax
mov word [0x49167e], dx
mov eax, dword [0x487618]
not eax
and eax, 0xc4000014
mov dword [0x4851d0], eax
mov eax, dword [0x486dc4]
imul eax, eax, 0xa072ebbb
mov dword [0x486dc4], eax
mov eax, dword [0x48c190]
mov ecx, eax
dec ecx
mov dword [0x48c190], ecx
mov ecx, dword [0x48584c]
sub eax, ecx
mov ecx, dword [0x48858c]
xor ecx, eax
mov dword [0x48858c], ecx
mov eax, esp
lea ecx, [esp + 0x28]
mov dword [eax + 4], ecx
mov dword [eax], 0x104
mov dword [esp + 0x24], ecx
call fcn.0044f150
mov eax, dword [0x486d30]
mov dword [0x4847f0], eax
mov eax, esp
mov ecx, dword [esp + 0x24]
mov dword [eax], ecx
call fcn.00453000
mov dword [esp + 0x140], eax
mov dword [0x48d348], 0x4961ae07
mov eax, dword [0x481644]
mov ecx, esp
mov dword [ecx], 0x3e8
call eax
sub esp, 4
mov dx, word [0x493bec]
mov ax, dx
and eax, 0x4474
mov dx, ax
mov word [0x493bec], dx
mov eax, dword [esp + 0x140]
mov byte [esp + eax + 0x28], 0
mov eax, dword [0x48c498]
add eax, 0x8f05b16c
mov dword [0x48c498], eax
mov eax, dword [0x4948f8]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x24]
mov dword [ecx], eax
call fcn.00456160
mov word [0x49238a], 0x7b3f
mov ecx, esp
mov dword [ecx + 4], 2
mov dword [ecx], 0x46fd
mov dword [esp + 0x20], eax
call fcn.0044b9d0
mov dword [esp + 0x288], eax
mov eax, dword [0x48b6f8]
and eax, 0x1c59
mov dx, word [0x4932ec]
mov cx, dx
sub ecx, eax
mov dx, cx
mov word [0x4932ec], dx
mov eax, dword [esp + 0x288]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x24]
mov dword [ecx], eax
call fcn.00456160
mov dx, word [0x492dc4]
movsx ecx, dx
mov esi, dword [0x4866c8]
imul esi, ecx
mov dword [0x4866c8], esi
mov ecx, dword [esp + 0x288]
mov esi, esp
mov dword [esi + 4], ecx
mov dword [esi], 2
mov dword [esp + 0x1c], eax
call fcn.0041e2a0
mov dx, word [0x48ee22]
movsx eax, dx
mov ecx, 0x7d7dd72c
sub ecx, eax
mov eax, dword [0x485028]
dec eax
mov dword [0x485028], eax
mov dx, word [0x48f3c8]
mov si, dx
dec esi
mov dx, si
mov word [0x48f3c8], dx
movsx esi, dx
sub eax, esi
sub eax, 0xb31f2129
cmp ecx, eax
jg 0x42f4e3
mov eax, 0xa4785070
mov ecx, dword [0x489c20]
mov edx, dword [0x4828a8]
inc edx
mov dword [0x4828a8], edx
and ecx, edx
cmp eax, ecx
jle 0x42f4de
mov eax, dword [0x488d60]
add eax, 0xbc2d0bfd
mov dword [0x488d60], eax
jmp 0x42f4e3
mov eax, 0x91587a53
mov ecx, dword [0x4815a4]
mov edx, esp
lea esi, [esp + 0x148]
mov dword [edx + 4], esi
lea esi, [esp + 0x28]
mov dword [edx], esi
mov dword [esp + 0x18], eax
call ecx
sub esp, 8
mov dword [esp + 0x144], eax
mov di, word [0x49093c]
movsx eax, di
xor eax, 0xffffffff
mov ecx, dword [esp + 0x18]
cmp ecx, eax
je 0x42f550
mov eax, dword [0x48d464]
not eax
and eax, 0x15a0
xor eax, 0x8ac7
mov cx, word [0x4925e4]
mov dx, cx
sub edx, eax
mov cx, dx
mov word [0x4925e4], cx
mov eax, 0xffffffff
cmp dword [esp + 0x144], eax
je 0x42f689
mov ax, word [0x4936b8]
mov cx, ax
xor ecx, 0xa628
mov ax, cx
mov word [0x4936b8], ax
mov eax, dword [0x48c068]
mov ecx, eax
dec ecx
mov dword [0x48c068], ecx
mov dword [0x486a7c], eax
mov eax, dword [esp + 0x140]
mov byte [esp + eax + 0x28], 0
mov eax, dword [0x48d0a0]
mov ecx, dword [0x48af94]
and ecx, eax
mov dword [0x48af94], ecx
lea eax, [esp + 0x174]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x28]
mov dword [ecx], eax
mov dword [esp + 0x14], eax
call fcn.00456160
mov ecx, dword [0x489bbc]
mov edx, dword [0x48b768]
inc edx
mov dword [0x48b768], edx
xor ecx, edx
mov si, word [0x48ffd2]
mov dx, si
or edx, ecx
mov si, dx
mov word [0x48ffd2], si
mov ecx, dword [0x481594]
mov edx, esp
mov edi, dword [esp + 0x14]
mov dword [edx], edi
mov dword [esp + 0x10], eax
call ecx
sub esp, 4
mov si, word [0x493436]
mov cx, si
xor ecx, 0xa8f8
mov si, cx
mov word [0x493436], si
mov dword [esp + 0xc], eax
mov eax, dword [0x4815a0]
mov ecx, dword [esp + 0x144]
mov edx, esp
lea esi, [esp + 0x148]
mov dword [edx + 4], esi
mov dword [edx], ecx
call eax
sub esp, 8
cmp eax, 0
jne 0x42f57a
mov eax, dword [0x4861ac]
add eax, 0x18775f3c
mov dword [0x4861ac], eax
mov eax, dword [0x48159c]
mov ecx, dword [esp + 0x144]
mov edx, esp
mov dword [edx], ecx
call eax
sub esp, 4
mov ecx, dword [0x481f54]
and ecx, 0x9d433c95
mov dword [0x481f54], ecx
mov dword [esp + 8], eax
mov eax, dword [0x488c60]
add eax, 0x72553e71
mov dword [0x488c60], eax
mov eax, esp
lea ecx, [esp + 0x28]
mov dword [eax], ecx
mov dword [eax + 4], 0x118
call fcn.0041bac0
mov eax, dword [0x48419c]
and eax, 0xe1d0be4
mov dword [0x48419c], eax
add esp, 0x28c
pop esi
pop edi
ret