Function at 0x47f3d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x6c
mov eax, dword [ebp + 8]
mov dword [ecx], fcn.0047ebf0
mov byte [ecx + 0xc], 0
mov dword [ecx + 4], eax
mov ecx, dword [0x63a0c0]
test ecx, ecx
je 0x47f531
mov dword [esp + 4], 0x16
mov dword [esp], str.GPU_DUMP_DEVICE_KERNEL
call dword [method.QString.fromAscii_helper_char_const__int_]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x2c]
mov dword [esp], eax
call dword [method.QProcessEnvironment.systemEnvironment__]
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x2c]
mov dword [esp], eax
call dword [method.QProcessEnvironment.contains_QString_const__const]
sub esp, 4
lea ecx, [ebp - 0x2c]
mov esi, eax
call dword [method.QProcessEnvironment.QProcessEnvironment__]
mov edx, dword [ebp - 0x28]
mov ecx, dword [edx]
test ecx, ecx
je 0x47f513
cmp ecx, 0xffffffff
je 0x47f456
lock sub dword [edx], 1
je 0x47f510
mov eax, esi
test al, al
jne 0x47f506
cmp byte [0x63a070], 0
jne 0x47f48e
xor eax, eax
nop
lea esi, [esi]
xor byte [eax + str._n_rqebkf_FZNBNB_UIFVZF_XV9ywCvvm], al
add eax, 1
cmp eax, 0x7ab
jne 0x47f470
mov byte [0x54f7ca], 0
mov byte [0x63a070], 1
mov dword [esp], 0x3840
call sub.libstdc_6.dll_operator_new___unsigned_int_
mov dword [ebx + 8], eax
lea eax, [ebp - 0x30]
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x24], 0
mov dword [ebp - 0x30], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [0x63a0a8]
mov esi, dword [ebp - 0x30]
sub esp, 0xc
test esi, esi
jne 0x47f7a0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 8
mov edx, dword [ebp - 0x28]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], edx
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
jmp 0x47f456
mov dword [esp + 4], 6
mov dword [esp], 0x55890f
call dword [method.QString.fromAscii_helper_char_const__int_]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
mov dword [esp + 4], 0
lea ecx, [ebp - 0x28]
mov dword [esp], eax
call dword [method.QLibrary.QLibrary_QString_const__QObject_]
mov eax, dword [ebp - 0x2c]
sub esp, 8
mov edx, dword [eax]
test edx, edx
je 0x47f57a
cmp edx, 0xffffffff
je 0x47f593
lock sub dword [eax], 1
jne 0x47f593
mov eax, dword [ebp - 0x2c]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
lea ecx, [ebp - 0x28]
call dword [method.QLibrary.load__]
test al, al
je 0x47f792
mov dword [esp], str.clCreateImage2D
lea ecx, [ebp - 0x28]
mov esi, dword [method.QLibrary.resolve_char_const_]
call esi
sub esp, 4
mov dword [0x63a0c0], eax
lea ecx, [ebp - 0x28]
mov dword [esp], str.clCreateProgramWithSource
call esi
sub esp, 4
mov dword [0x63a0bc], eax
lea ecx, [ebp - 0x28]
mov dword [esp], str.clCreateKernel
call esi
sub esp, 4
mov dword [0x63a0b8], eax
lea ecx, [ebp - 0x28]
mov dword [esp], str.clCreateCommandQueue
call esi
sub esp, 4
mov dword [0x63a0b4], eax
lea ecx, [ebp - 0x28]
mov dword [esp], str.clGetProgramBuildInfo
call esi
sub esp, 4
lea ecx, [ebp - 0x28]
mov dword [esp], str.clSetKernelArg
call esi
sub esp, 4
mov dword [0x63a0b0], eax
lea ecx, [ebp - 0x28]
mov dword [esp], str.clReleaseCommandQueue
call esi
sub esp, 4
mov dword [0x63a0ac], eax
lea ecx, [ebp - 0x28]
mov dword [esp], str.clGetPlatformIDs
call esi
sub esp, 4
mov dword [0x63a0a8], eax
lea ecx, [ebp - 0x28]
mov dword [esp], str.clReleaseKernel
call esi
sub esp, 4
mov dword [0x63a0a4], eax
lea ecx, [ebp - 0x28]
mov dword [esp], str.clReleaseContext
call esi
sub esp, 4
mov dword [0x63a0a0], eax
lea ecx, [ebp - 0x28]
mov dword [esp], str.clGetDeviceIDs
call esi
sub esp, 4
mov dword [0x63a09c], eax
lea ecx, [ebp - 0x28]
mov dword [esp], str.clReleaseProgram
call esi
sub esp, 4
mov dword [0x63a098], eax
lea ecx, [ebp - 0x28]
mov dword [esp], str.clBuildProgram
call esi
sub esp, 4
mov dword [0x63a094], eax
lea ecx, [ebp - 0x28]
mov dword [esp], str.clCreateContext
call esi
sub esp, 4
mov dword [0x63a090], eax
lea ecx, [ebp - 0x28]
mov dword [esp], str.clCreateBuffer
call esi
sub esp, 4
mov dword [0x63a08c], eax
lea ecx, [ebp - 0x28]
mov dword [esp], str.clEnqueueNDRangeKernel
call esi
sub esp, 4
mov dword [0x63a088], eax
lea ecx, [ebp - 0x28]
mov dword [esp], str.clEnqueueReadBuffer
call esi
sub esp, 4
lea ecx, [ebp - 0x28]
mov dword [esp], str.clEnqueueWriteImage
call esi
sub esp, 4
mov dword [0x63a084], eax
lea ecx, [ebp - 0x28]
mov dword [esp], str.clFlush
call esi
sub esp, 4
mov dword [0x63a080], eax
lea ecx, [ebp - 0x28]
mov dword [esp], str.clReleaseMemObject
call esi
sub esp, 4
mov dword [0x63a07c], eax
lea ecx, [ebp - 0x28]
mov dword [esp], str.clGetPlatformInfo
call esi
sub esp, 4
lea ecx, [ebp - 0x28]
mov dword [esp], str.clGetDeviceInfo
call esi
sub esp, 4
lea ecx, [ebp - 0x28]
mov dword [esp], str.clWaitForEvents
call esi
sub esp, 4
mov dword [0x63a078], eax
lea ecx, [ebp - 0x28]
mov dword [esp], str.clReleaseEvent
call esi
mov esi, dword [0x63a0c0]
sub esp, 4
mov dword [0x63a074], eax
lea ecx, [ebp - 0x28]
call dword [method.QLibrary.QLibrary__]
test esi, esi
je 0x47f506
jmp 0x47f3f9
lea ecx, [ebp - 0x28]
call dword [method.QLibrary.QLibrary__]
jmp 0x47f506
lea eax, [esi*4]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [esp], esi
mov edi, eax
mov dword [esp + 8], 0
mov dword [esp + 4], eax
call dword [0x63a0a8]
mov edx, 0x66666667
mov esi, dword [ebp + 0xc]
sub esp, 0xc
mov eax, edx
imul dword [ebp + 0xc]
mov eax, edx
mov edx, dword [ebp + 0xc]
sar eax, 2
sar edx, 0x1f
sub eax, edx
lea edx, [eax + eax*4]
add edx, edx
sub esi, edx
xor edx, edx
test eax, eax
setg dl
sub eax, edx
xor edx, edx
test esi, esi
setg dl
sub esi, edx
cmp eax, dword [ebp - 0x30]
jge 0x47f506
lea edi, [edi + eax*4]
lea eax, [ebp - 0x2c]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 4], 4
mov dword [esp + 0x14], eax
mov dword [esp + 8], 0
mov eax, dword [edi]
mov dword [esp], eax
call dword [0x63a09c]
mov edx, dword [ebp - 0x2c]
sub esp, 0x18
cmp esi, edx
jge 0x47f506
lea eax, [edx*4]
mov dword [ebp - 0x40], edx
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, dword [ebp - 0x40]
mov dword [esp + 0x14], 0
mov dword [ebp - 0x3c], eax
mov dword [esp + 0x10], eax
mov dword [esp + 4], 4
mov dword [esp + 8], 0
mov dword [esp + 0xc], edx
mov eax, dword [edi]
lea edi, [ebp - 0x34]
mov dword [esp], eax
call dword [0x63a09c]
mov eax, dword [ebp - 0x3c]
sub esp, 0x18
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], eax
call dword [0x63a090]
mov edx, dword [ebp - 0x34]
sub esp, 0x18
mov dword [ebx + 0x14], eax
test edx, edx
jne 0x47f506
mov edx, dword [ebp - 0x3c]
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov edx, dword [edx + esi*4]
mov dword [esp], eax
mov dword [esp + 4], edx
call dword [0x63a0b4]
mov edx, dword [ebp - 0x3c]
mov dword [ebx + 0x1c], eax
sub esp, 0x14
mov eax, dword [ebp - 0x2c]
mov ecx, ebx
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.0047ecd0
sub esp, 8
test eax, eax
mov dword [ebx + 0x18], eax
je 0x47f506
lea eax, [ebp - 0x28]
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x2d
mov dword [esp + 0x10], 0x50
mov dword [esp + 0xc], eax
mov dword [esp + 4], 4
mov dword [esp + 8], 0
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x28], 0x10b6
mov dword [ebp - 0x24], 0x10d2
mov dword [esp], eax
call dword [0x63a0c0]
sub esp, 0x24
test eax, eax
mov dword [ebx + 0x30], eax
je 0x47f506
lea eax, [ebp - 0x28]
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x2d0
mov dword [esp + 0x10], 0x500
mov dword [esp + 0xc], eax
mov dword [esp + 4], 4
mov dword [esp + 8], 0
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x28], 0x10b8
mov dword [esp], eax
call dword [0x63a0c0]
mov dword [ebx + 0x28], eax
lea eax, [ebp - 0x28]
sub esp, 0x24
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x2d0
mov dword [esp + 0x10], 0x500
mov dword [esp + 0xc], eax
mov dword [esp + 4], 4
mov dword [esp + 8], 0
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
call dword [0x63a0c0]
sub esp, 0x24
mov dword [ebx + 0x2c], eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xe1000
mov dword [esp + 4], 2
mov dword [esp + 8], 0
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
call dword [0x63a08c]
mov ecx, dword [ebx + 0x28]
sub esp, 0x18
mov dword [ebx + 0x24], eax
test ecx, ecx
je 0x47f506
mov edx, dword [ebx + 0x2c]
test edx, edx
je 0x47f506
test eax, eax
je 0x47f506
mov byte [ebx + 0xc], 1
mov dword [ebx + 0x10], 0
jmp 0x47f506