Function at 0x100010c0
Capabilities:
Check if file exists
Get file attributes
Read .ini file
Write file on windows

Disassembly:
sub esp, 0x378
mov eax, dword [0x10082594]
xor eax, esp
mov dword [esp + 0x374], eax
push 0x1005e604
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x100010ff
test al, 0x10
jne 0x100010ff
xor eax, eax
mov ecx, dword [esp + 0x374]
xor ecx, esp
call fcn.10047cbc
add esp, 0x378
ret
push esi
push 0x104
lea eax, [esp + 0x64]
push eax
push str.dxwnd
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push eax
call esi
lea eax, [esp + 0x60]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10001125
sub eax, edx
cmp dword [0x100800b4], 0
lea eax, [esp + eax + 0x57]
mov dword [esp + 8], eax
je 0x1000130c
mov ecx, dword [str.dxwnd.ini]
mov edx, dword [0x1005e5f4]
push ebx
push ebp
push edi
mov dword [eax], ecx
mov cx, word [0x1005e5f8]
mov dword [eax + 4], edx
push 0x104
lea edx, [esp + 0x178]
push edx
push 0
mov word [eax + 8], cx
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
xor esi, esi
push esi
push str.path_i
lea eax, [esp + 0x20]
push 0x51
push eax
call fcn.10047c9e
add esp, 0x10
lea ecx, [esp + 0x6c]
push ecx
push 0x104
lea edx, [esp + 0x284]
push edx
push 0x1005e5e7
lea eax, [esp + 0x28]
push eax
push str.target
call edi
push esi
push str.flagh_i
lea ecx, [esp + 0x20]
push 0x51
push ecx
call fcn.10047c9e
add esp, 0x10
lea edx, [esp + 0x6c]
push edx
push 0
lea eax, [esp + 0x20]
push eax
push str.target
call ebp
lea ecx, [esp + 0x174]
push ecx
lea edx, [esp + 0x280]
push edx
mov ebx, eax
call fcn.10047bcf
add esp, 8
test eax, eax
jne 0x10001204
test bl, 0x10
jne 0x10001216
inc esi
cmp esi, 0x100
jl 0x10001181
jmp 0x100012fb
cmp esi, 0x100
jge 0x100012fb
push 0xf4241
call fcn.10047530
push esi
push str.Fake_registry:_build_virtual_registry_from_dxwnd.ini_entry__d_n
mov ebp, eax
call fcn.10025250
push esi
push str.registry_i
lea eax, [esp + 0x2c]
push 0x51
push eax
call fcn.10047c9e
add esp, 0x1c
lea ecx, [esp + 0x6c]
push ecx
push 0xf4240
push ebp
push 0x1005e5e7
lea edx, [esp + 0x28]
push edx
push str.target
call edi
mov eax, ebp
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10001270
sub eax, edx
je 0x100012f2
lea ebx, [esp + 0x10]
mov eax, ebp
mov dword [esp + 0x10], 0
call fcn.10001040
mov eax, dword [esp + 0x14]
mov ecx, dword [str.dxwnd.reg]
mov edx, dword [0x1005e580]
mov dword [eax], ecx
mov cx, word [0x1005e584]
mov dword [eax + 4], edx
lea edx, [esp + 0x6c]
push 0x1005e578
push edx
mov word [eax + 8], cx
call fcn.10047a23
mov edi, dword [esp + 0x18]
mov esi, eax
mov eax, edi
add esp, 8
lea edx, [eax + 1]
jmp 0x100012d0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100012d0
push esi
sub eax, edx
push eax
push 1
push edi
call fcn.100478dd
push esi
call fcn.100476ff
push edi
call fcn.100475fa
add esp, 0x18
push ebp
call fcn.100475fa
add esp, 4
mov eax, dword [esp + 0x14]
pop edi
pop ebp
mov dword [0x100800b4], 0
pop ebx
mov ecx, dword [str.dxwnd.reg]
mov edx, dword [0x1005e580]
mov dword [eax], ecx
mov cx, word [0x1005e584]
mov dword [eax + 4], edx
lea edx, [esp + 0x60]
push 0x1005e574
push edx
mov word [eax + 8], cx
call fcn.10047a23
mov ecx, dword [esp + 0x380]
add esp, 8
pop esi
xor ecx, esp
call fcn.10047cbc
add esp, 0x378
ret