Function at 0x42f3b3
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x12e0
call fcn.00485cf0
and dword [esp + 0x20], 0
push ebx
mov ebx, dword [esp + 0x12ec]
push ebp
push esi
push edi
mov edi, ecx
xor esi, esi
mov dword [esp + 0x34], edi
inc esi
mov ecx, edi
call fcn.0045717b
mov edx, eax
test esi, esi
push 0
mov ebp, 0x200
mov eax, dword [edx]
mov ecx, dword [eax + 0x60]
lea eax, [esp + 0x34]
push eax
push 0
push 0x15
mov eax, 0x600
cmovne eax, ebp
push eax
push esi
push ebx
push ebx
push ebx
push edx
call ecx
test eax, eax
je 0x42f415
cmp esi, 1
je 0x42f448
inc esi
cmp esi, 2
jl 0x42f3d6
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x48]
push 0x2000
push 0
push edx
mov eax, dword [ecx]
push 0
push ecx
call dword [eax + 0x4c]
test eax, eax
je 0x42f45f
push 0x1000
lea eax, [esp + 0x2f4]
push eax
push 0x1ec
jmp 0x42f9c8
push 0x1000
lea eax, [esp + 0x2f4]
push eax
push 0x1eb
jmp 0x42f9c8
mov ecx, dword [esp + 0x48]
mov eax, ebx
shl eax, 2
cmp ecx, eax
jl 0x42f9b6
mov esi, dword [esp + 0x4c]
mov eax, ebx
imul eax, ebx
shl eax, 2
cmp esi, eax
jl 0x42f9b6
mov ebp, dword [esp + 0x12fc]
mov eax, 0x100
shr esi, 2
shr ecx, 2
cmp ebp, 1
mov dword [esp + 0x24], esi
lea edx, [eax - 0x28]
mov dword [esp + 0x38], ecx
cmovg eax, edx
mov dword [esp + 0x14], eax
test ebx, ebx
jle 0x42f5d2
mov edi, dword [esp + 0x14]
shr eax, 1
mov dword [esp + 0x10], eax
mov eax, ecx
shl eax, 2
xor ecx, ecx
mov dword [esp + 0x3c], eax
mov eax, esi
shl eax, 2
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1c], ebx
mov ebp, dword [esp + 0x50]
add ebp, ecx
mov dword [esp + 0x18], ebx
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
call fcn.0049e53b
xor eax, dword [esp + 0x44]
xor eax, dword [esp + 0x40]
push eax
call fcn.0049e55c
and dword [esp + 0x24], 0
pop ecx
call fcn.0049e53b
cdq
idiv edi
mov esi, edx
add esi, dword [esp + 0x10]
shl esi, 0x18
call fcn.0049e53b
cdq
idiv edi
mov edi, edx
add edi, dword [esp + 0x10]
shl edi, 8
or edi, esi
call fcn.0049e53b
cdq
idiv dword [esp + 0x14]
mov esi, edx
add esi, dword [esp + 0x10]
shl esi, 0x10
or esi, edi
call fcn.0049e53b
mov edi, dword [esp + 0x14]
cdq
idiv edi
mov eax, dword [esp + 0x20]
add edx, dword [esp + 0x10]
or edx, esi
mov dword [ebp + eax*4], edx
inc eax
mov dword [esp + 0x20], eax
cmp eax, ebx
jl 0x42f507
mov edi, ebx
call fcn.0049e53b
xor eax, dword [esp + 0x40]
xor edx, edx
div ebx
mov esi, edx
call fcn.0049e53b
xor eax, dword [esp + 0x44]
cdq
idiv ebx
mov eax, dword [ebp + esi*4]
mov ecx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + esi*4], ecx
sub edi, 1
jne 0x42f565
add ebp, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov edi, dword [esp + 0x14]
jne 0x42f4e3
mov ecx, dword [esp + 0x28]
add ecx, dword [esp + 0x2c]
sub dword [esp + 0x1c], 1
mov dword [esp + 0x28], ecx
jne 0x42f4d9
mov ebp, dword [esp + 0x12fc]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
cmp ebp, 1
jle 0x42f912
and dword [esp + 0x20], 0
mov edx, dword [esp + 0x50]
mov dword [esp + 0x18], edx
test ebx, ebx
jle 0x42f912
imul ecx, ebp
mov eax, esi
mov dword [esp + 0x2c], ecx
xor ecx, ecx
imul eax, ebp
mov dword [esp + 0x14], ecx
mov dword [esp + 0x3c], eax
jmp 0x42f60c
mov edx, dword [esp + 0x18]
and dword [esp + 0x28], 0
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x42f61d
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
xor edi, edi
add eax, ecx
lea ecx, [edx + eax*4]
mov dword [esp + 0x1c], ecx
mov eax, edi
cdq
idiv ebp
test edx, edx
je 0x42f6ad
movd xmm1, edx
mov ecx, edi
sub ecx, edx
movd xmm0, ebp
add ecx, ebx
cvtdq2ps xmm1, xmm1
push ecx
lea eax, [ecx + ebp*2]
cdq
idiv ebx
cvtdq2ps xmm0, xmm0
mov eax, dword [esp + 0x1c]
add edx, esi
add edx, dword [esp + 0x14]
divss xmm1, xmm0
movss dword [esp], xmm1
push dword [eax + edx*4]
lea eax, [ecx + ebp]
cdq
idiv ebx
mov eax, dword [esp + 0x20]
add edx, esi
add edx, dword [esp + 0x18]
push dword [eax + edx*4]
mov eax, ecx
sub ecx, ebp
cdq
idiv ebx
mov eax, dword [esp + 0x24]
add edx, esi
add edx, dword [esp + 0x1c]
push dword [eax + edx*4]
mov eax, ecx
cdq
idiv ebx
mov eax, dword [esp + 0x28]
add edx, esi
add edx, dword [esp + 0x20]
push dword [eax + edx*4]
call fcn.00453b47
mov ecx, dword [esp + 0x30]
add esp, 0x14
mov dword [ecx], eax
inc edi
add ecx, 4
mov dword [esp + 0x1c], ecx
cmp edi, ebx
jl 0x42f62c
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
add edx, ebp
add eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x28], edx
mov dword [esp + 0x10], eax
cmp edx, ebx
jl 0x42f619
mov edx, dword [esp + 0x20]
add ecx, dword [esp + 0x3c]
add edx, ebp
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], ecx
cmp edx, ebx
jl 0x42f608
mov esi, dword [esp + 0x24]
and dword [esp + 0x1c], 0
and dword [esp + 0x10], 0
mov edi, dword [esp + 0x38]
imul esi, ebp
mov dword [esp + 0x2c], esi
and dword [esp + 0x14], 0
xor esi, esi
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov eax, esi
cdq
idiv ebp
test edx, edx
je 0x42f7d5
movd xmm1, edx
mov ecx, esi
sub ecx, edx
movd xmm0, ebp
add ecx, ebx
cvtdq2ps xmm1, xmm1
push ecx
lea eax, [ecx + ebp*2]
cdq
idiv ebx
cvtdq2ps xmm0, xmm0
mov eax, dword [esp + 0x1c]
imul edx, edi
divss xmm1, xmm0
add edx, dword [esp + 0x14]
add edx, dword [esp + 0x18]
movss dword [esp], xmm1
push dword [eax + edx*4]
lea eax, [ecx + ebp]
cdq
idiv ebx
mov eax, dword [esp + 0x20]
imul edx, edi
add edx, dword [esp + 0x18]
add edx, dword [esp + 0x1c]
push dword [eax + edx*4]
mov eax, ecx
sub ecx, ebp
cdq
idiv ebx
mov eax, dword [esp + 0x24]
imul edx, edi
add edx, dword [esp + 0x1c]
add edx, dword [esp + 0x20]
push dword [eax + edx*4]
mov eax, ecx
cdq
idiv ebx
mov eax, dword [esp + 0x28]
imul edx, edi
add edx, dword [esp + 0x20]
add edx, dword [esp + 0x24]
push dword [eax + edx*4]
call fcn.00453b47
mov ecx, dword [esp + 0x34]
add esp, 0x14
mov edx, dword [esp + 0x10]
add ecx, edx
add ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov dword [ebp + ecx*4], eax
mov ebp, dword [esp + 0x12fc]
mov ecx, dword [esp + 0x20]
jmp 0x42f7d9
mov edx, dword [esp + 0x10]
inc esi
add ecx, edi
mov dword [esp + 0x20], ecx
cmp esi, ebx
jl 0x42f71f
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, ebx
jl 0x42f717
mov eax, dword [esp + 0x1c]
add edx, dword [esp + 0x2c]
add eax, ebp
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x42f712
and dword [esp + 0x14], 0
mov esi, dword [esp + 0x24]
and dword [esp + 0x10], 0
mov dword [esp + 0x1c], ebx
xor edi, edi
xor ecx, ecx
mov dword [esp + 0x24], ecx
mov eax, edi
cdq
idiv ebp
test edx, edx
je 0x42f8d7
movd xmm1, edx
mov ecx, edi
sub ecx, edx
movd xmm0, ebp
add ecx, ebx
cvtdq2ps xmm1, xmm1
push ecx
lea eax, [ecx + ebp*2]
cdq
idiv ebx
cvtdq2ps xmm0, xmm0
mov eax, dword [esp + 0x1c]
imul edx, esi
divss xmm1, xmm0
add edx, dword [esp + 0x14]
add edx, dword [esp + 0x18]
movss dword [esp], xmm1
push dword [eax + edx*4]
lea eax, [ecx + ebp]
cdq
idiv ebx
mov eax, dword [esp + 0x20]
imul edx, esi
add edx, dword [esp + 0x18]
add edx, dword [esp + 0x1c]
push dword [eax + edx*4]
mov eax, ecx
sub ecx, ebp
cdq
idiv ebx
mov eax, dword [esp + 0x24]
imul edx, esi
add edx, dword [esp + 0x1c]
add edx, dword [esp + 0x20]
push dword [eax + edx*4]
mov eax, ecx
cdq
idiv ebx
mov eax, dword [esp + 0x28]
imul edx, esi
add edx, dword [esp + 0x20]
add edx, dword [esp + 0x24]
push dword [eax + edx*4]
call fcn.00453b47
mov ecx, dword [esp + 0x24]
add esp, 0x14
add ecx, dword [esp + 0x24]
add ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [edx + ecx*4], eax
mov ecx, dword [esp + 0x24]
inc edi
add ecx, esi
mov dword [esp + 0x24], ecx
cmp edi, ebx
jl 0x42f82d
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x38]
sub dword [esp + 0x1c], 1
mov dword [esp + 0x10], ecx
jne 0x42f825
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x34]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, ebx
jl 0x42f81c
mov eax, dword [esp + 0x30]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
push dword [esp + 0x12f4]
lea eax, [esp + 0xd8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov eax, dword [esp + 0x30]
lea ecx, [edi + 0x6c284]
and dword [esp + 0x2ec], 0
mov dword [esp + 0x2d4], eax
mov eax, dword [edi + 0x6c4e8]
mov dword [esp + 0x2e8], eax
mov eax, dword [edi + 0x6c288]
mov dword [esp + 0x2d8], ebx
mov dword [esp + 0x2dc], ebx
mov dword [esp + 0x2e0], ebx
mov byte [esp + 0x2e4], 0
cmp eax, dword [edi + 0x6c28c]
je 0x42f9a4
mov edi, eax
lea esi, [esp + 0xd4]
mov eax, dword [esp + 0x34]
mov ecx, 0x87
rep movsd dword es:[edi], dword [esi]
add dword [eax + 0x6c288], 0x21c
jmp 0x42f9b2
lea edx, [esp + 0xd4]
push edx
push eax
call fcn.0042a4a4
mov al, 1
jmp 0x42f9fe
push 0x1000
lea eax, [esp + 0x2f4]
push eax
push 0x1ed
call fcn.0046f468
push 0x40
lea eax, [esp + 0x64]
push eax
push 0xe
call fcn.0046f468
add esp, 0x18
mov ecx, edi
mov esi, eax
call fcn.004571f5
push 0x50000
push esi
lea ecx, [esp + 0x2f8]
push ecx
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12e0
ret 0xc