Function at 0x1003d2a8
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1003d6fa
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1c
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ebx
mov ebx, dword [0x10065658]
test ebx, ebx
je 0x1003d325
mov eax, dword [0x100657c0]
test eax, eax
je 0x1003d325
mov dword [ebp - 0x28], ebx
je 0x1003d2f1
mov eax, dword [ebx]
test eax, eax
je 0x1003d559
mov eax, dword [0x100657b0]
test eax, eax
je 0x1003d305
mov eax, dword [ebx + 4]
test eax, eax
je 0x1003d5bb
push dword [0x10062c38]
push 0x10055160
push dword [ebx]
call fcn.10046d47
add esp, 0xc
call fcn.10048be3
mov ebx, dword [0x10065658]
test ebx, ebx
je 0x1003d341
lea eax, [ebp + 8]
push 4
push eax
mov ecx, ebx
push str.IDirect3D9P
call fcn.1002c134
mov ebx, dword [0x10065658]
test ebx, ebx
je 0x1003d35d
lea eax, [ebp + 0xc]
push 4
push eax
mov ecx, ebx
push str.UINT
call fcn.1002c134
mov ebx, dword [0x10065658]
test ebx, ebx
je 0x1003d379
lea eax, [ebp + 0x10]
push 4
push eax
mov ecx, ebx
push str.DWORD
call fcn.1002c134
mov ebx, dword [0x10065658]
test ebx, ebx
je 0x1003d38f
lea eax, [ebp + 0x14]
push 4
push eax
mov ecx, ebx
push str.D3DADAPTER_IDENTIFIER9P
call fcn.1002c134
mov eax, dword [ebp + 8]
test eax, eax
je 0x1003d6d9
push 0xff
push 0
push 0x10061760
call fcn.100507c0
add esp, 0xc
movq mm1, qword [0x100543d8]
movq mm2, qword [0x100543e0]
xor eax, eax
movq mm0, qword [eax + str.9O_L_nhhv4c_997_tijo]
pxor mm0, mm2
movq qword [eax + 0x10061760], mm0
add eax, 8
paddb mm2, mm1
cmp eax, 0x28
jb 0x1003d3be
emms
mov byte [0x10061788], 0x65
mov eax, 0x6d
mov byte [0x10061789], al
mov byte [0x1006178a], 0x73
mov byte [0x1006178b], 0x2e
mov byte [0x1006178c], 0x63
mov byte [0x1006178d], 0x6f
mov byte [0x1006178e], al
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 8]
push 0x10061860
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [eax + 4]
call dword [edx + 0x14]
mov dword [0x10065660], eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x10065658]
test eax, eax
je 0x1003d458
mov ecx, dword [0x10065658]
push 4
push 0x10061860
push str.string
call fcn.1002c134
mov eax, dword [0x10065658]
test eax, eax
je 0x1003d478
mov ecx, dword [0x10065658]
push 4
push 0x10061a60
push str.string
call fcn.1002c134
mov eax, dword [0x10065710]
test eax, eax
je 0x1003d48b
mov eax, dword [0x10065710]
mov dword [0x10061c88], eax
mov eax, dword [0x10065714]
test eax, eax
je 0x1003d49e
mov eax, dword [0x10065714]
mov dword [0x10061c8c], eax
mov edi, 0x10061a60
mov esi, str.NVIDIA_NVPerfHUD
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x1003d4c8
or dl, dl
je 0x1003d4c4
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x1003d4c8
add edi, 2
add esi, 2
or dl, dl
jne 0x1003d4a8
xor eax, eax
jmp 0x1003d4cd
sbb eax, eax
or eax, 1
test eax, eax
je 0x1003d4f1
push 0x10061760
push 0x10061860
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x10061760
push 0x10061a60
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edx, 0x10061c98
xor eax, eax
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
push 0x44c
push 0x10061860
push dword [ebp + 0x14]
call fcn.1005083c
add esp, 0xc
mov eax, dword [0x10065658]
test eax, eax
je 0x1003d538
mov ecx, dword [0x10065658]
push 4
push 0x10065660
push str.HRESULT
call fcn.1002c134
mov eax, dword [0x10065660]
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10
mov dword [ebx + 0x118], 0
push 0x10063940
push str._slog_DX9.out
push 0x10065f20
call fcn.1004665a
push 0x10054e68
push 0x10065f20
call fcn.1004670e
add esp, 0x14
mov ebx, dword [ebp - 0x28]
mov dword [ebx], eax
test eax, eax
jne 0x1003d2f1
push 0x10
push 0x1005456c
push str.fopen
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
push eax
push eax
call fcn.100468bc
mov ebx, dword [ebp - 0x28]
jmp 0x1003d2f1
add ebx, 0x108
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
mov edi, dword [ebp - 0x28]
movzx ebx, word [edi + 0x10e]
movzx ecx, word [edi + 0x10a]
movzx edx, word [edi + 0x110]
movzx eax, word [edi + 0x112]
lea esi, [edi + 8]
movzx edi, word [edi + 0x114]
push edi
push eax
push edx
push ecx
push ebx
push 0x10063940
push str._sPerflogDX__d__d__d._d._d.csv
push esi
call fcn.1004665a
push 0x10054e68
mov eax, dword [ebp - 0x28]
add eax, 8
push eax
call fcn.1004670e
add esp, 0x28
mov ebx, dword [ebp - 0x28]
mov dword [ebx + 4], eax
test eax, eax
je 0x1003d644
push eax
push str.used_vram___vram_usage_of_texture__vertex_data_nfps___frames_per_second_npps___polys_per_second_nppf___polys_fer_frame_noverdraw___effective_overdraw_per_frame_nstrst___IDirect3DDevice9::SetRenderState_per_frame_nsttxstgst___IDirect3DDevice9::SetTextureStageState_per_frame_nppc___polys_per_DrawPrimitve_nsttx___IDirect3DDevice9::SetTexture_per_frame_nstvp___IDirect3DDevice9::SetViewport_per_frame_nsvs___IDirect3DDevice9::SetVertexShader_per_frame_nsss___IDirect3DDevice9::SetStreamSource_per_frame_n_n
call fcn.100468f6
push dword [ebx + 4]
push str._used_vram___fps___pps___ppf___overdraw___strst___sttxstgst___ppc___sttx___stvp___svs___sss__n_n
call fcn.100468f6
add esp, 0x10
jmp 0x1003d305
add ebx, 0x108
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
mov edi, dword [ebp - 0x28]
movzx ebx, word [edi + 0x10e]
movzx ecx, word [edi + 0x10a]
movzx edx, word [edi + 0x110]
movzx eax, word [edi + 0x112]
lea esi, [edi + 8]
movzx edi, word [edi + 0x114]
push edi
push eax
push edx
push ecx
push ebx
push 0x10063940
push str._sPerflogDX__d__d__d._d._d.csv
push esi
call fcn.1004665a
push 0x10054e68
mov eax, dword [ebp - 0x28]
add eax, 8
push eax
call fcn.1004670e
add esp, 0x28
mov ebx, dword [ebp - 0x28]
mov dword [ebx + 4], eax
test eax, eax
jne 0x1003d624
push 0x10
push 0x1005456c
push str.fopen
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
push eax
push eax
call fcn.100468bc
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebx + 4]
jmp 0x1003d624
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10