Function at 0x100746d0
Capabilities:
Check if file exists
Copy file
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
mov eax, dword [0x101bd92c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x20c], ax
lea eax, [ebp - 0x20a]
mov esi, ecx
push eax
mov dword [ebp - 0x210], esi
call fcn.10098090
lea ebx, [esi + 0x90]
add esp, 0xc
cmp dword [ebx + 0x14], 8
jb 0x1007471c
mov eax, dword [ebx]
jmp 0x1007471e
mov eax, ebx
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push eax
call edi
test eax, eax
jne 0x10074762
add esi, 0xa8
cmp dword [esi + 0x14], 8
jb 0x1007473b
mov eax, dword [esi]
jmp 0x1007473d
mov eax, esi
push eax
call edi
test eax, eax
je 0x10074762
cmp dword [ebx + 0x14], 8
jb 0x1007474e
mov eax, dword [ebx]
jmp 0x10074750
mov eax, ebx
cmp dword [esi + 0x14], 8
jb 0x10074758
mov esi, dword [esi]
push 0
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov edi, dword [ebp - 0x210]
mov eax, dword [edi + 0x1c]
mov eax, dword [eax]
mov esi, dword [eax]
cmp esi, eax
je 0x10074863
mov ebx, dword [esi + 0x14]
lea edx, [ebx + 8]
mov ecx, edx
lea edi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10074782
sub ecx, edi
mov edi, dword [ebp - 0x210]
sar ecx, 1
test ecx, ecx
jle 0x10074818
cmp dword [edi + 0xa4], 8
lea eax, [edi + 0x90]
jb 0x100747ac
mov eax, dword [eax]
push eax
push 0x104
lea eax, [ebp - 0x20c]
push eax
push 0x10191c04
push edx
push str.Setting
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov ecx, 0x10191c04
lea eax, [ebp - 0x20c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100747fb
test dx, dx
je 0x100747f7
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100747fb
add eax, 4
add ecx, 4
test dx, dx
jne 0x100747d5
xor eax, eax
jmp 0x10074800
sbb eax, eax
or eax, 1
test eax, eax
je 0x10074818
lea eax, [ebp - 0x20c]
push eax
call fcn.100946c9
mov ecx, dword [ebx + 4]
add esp, 4
mov dword [ecx], eax
cmp byte [esi + 0xd], 0
jne 0x10074858
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
jne 0x1007483d
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x10074858
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
je 0x10074831
jmp 0x10074858
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x10074856
cmp esi, dword [eax + 8]
jne 0x10074856
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x10074846
mov esi, eax
mov eax, dword [edi + 0x1c]
cmp esi, dword [eax]
jne 0x10074777
mov eax, dword [edi + 0x18]
mov eax, dword [eax]
mov esi, dword [eax]
cmp esi, eax
je 0x10074965
mov ebx, dword [esi + 0x14]
lea edx, [ebx + 8]
mov ecx, edx
lea edi, [ecx + 2]
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10074880
sub ecx, edi
mov edi, dword [ebp - 0x210]
sar ecx, 1
test ecx, ecx
jle 0x1007491a
cmp dword [edi + 0xa4], 8
lea eax, [edi + 0x90]
jb 0x100748ae
mov eax, dword [eax]
push eax
push 0x104
lea eax, [ebp - 0x20c]
push eax
push 0x10191c04
push edx
push str.Setting
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov ecx, 0x10191c04
lea eax, [ebp - 0x20c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100748fd
test dx, dx
je 0x100748f9
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100748fd
add eax, 4
add ecx, 4
test dx, dx
jne 0x100748d7
xor eax, eax
jmp 0x10074902
sbb eax, eax
or eax, 1
test eax, eax
je 0x1007491a
lea eax, [ebp - 0x20c]
push eax
call fcn.100946c9
mov ecx, dword [ebx + 4]
add esp, 4
mov byte [ecx], al
cmp byte [esi + 0xd], 0
jne 0x1007495a
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
jne 0x1007493f
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x1007495a
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
je 0x10074933
jmp 0x1007495a
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x10074958
cmp esi, dword [eax + 8]
jne 0x10074958
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x10074948
mov esi, eax
mov eax, dword [edi + 0x18]
cmp esi, dword [eax]
jne 0x10074872
mov eax, dword [edi + 0x20]
mov eax, dword [eax]
mov esi, dword [eax]
cmp esi, eax
je 0x10074a72
mov ebx, dword [esi + 0x14]
lea edx, [ebx + 8]
mov ecx, edx
lea edi, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10074980
sub ecx, edi
mov edi, dword [ebp - 0x210]
sar ecx, 1
test ecx, ecx
jle 0x10074a21
cmp dword [edi + 0xa4], 8
lea eax, [edi + 0x90]
jb 0x100749ae
mov eax, dword [eax]
push eax
push 0x104
lea eax, [ebp - 0x20c]
push eax
push str.nothing
push edx
push str.Setting
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov ecx, str.nothing
lea eax, [ebp - 0x20c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100749fd
test dx, dx
je 0x100749f9
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100749fd
add eax, 4
add ecx, 4
test dx, dx
jne 0x100749d7
xor eax, eax
jmp 0x10074a02
sbb eax, eax
or eax, 1
test eax, eax
je 0x10074a21
mov edx, dword [ebx + 4]
lea ecx, [ebp - 0x20c]
nop
movzx eax, word [ecx]
mov word [edx], ax
lea ecx, [ecx + 2]
lea edx, [edx + 2]
test ax, ax
jne 0x10074a10
cmp byte [esi + 0xd], 0
jne 0x10074a67
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
jne 0x10074a4c
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x10074a67
lea ebx, [ebx]
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
je 0x10074a40
jmp 0x10074a67
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x10074a65
cmp esi, dword [eax + 8]
jne 0x10074a65
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x10074a55
mov esi, eax
mov eax, dword [edi + 0x20]
cmp esi, dword [eax]
jne 0x10074974
mov ecx, edi
call fcn.10078660
cmp dword [edi + 0xd4], 8
lea eax, [edi + 0xc0]
jb 0x10074a8a
mov eax, dword [eax]
push eax
push 0x10191d98
push str.ModifySetConfig
push str.SetModify
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov eax, dword [edi + 0x58]
mov eax, dword [eax]
mov esi, dword [eax]
cmp esi, eax
je 0x10074b19
nop
push dword [esi + 0x10]
mov ecx, edi
call fcn.100779f0
test eax, eax
je 0x10074acb
mov edx, dword [eax + 4]
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 4]
mov eax, dword [edx]
mov dword [ecx], eax
cmp byte [esi + 0xd], 0
jne 0x10074b12
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
jne 0x10074af0
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x10074b12
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
je 0x10074ae4
jmp 0x10074b12
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x10074b10
lea esp, [esp]
cmp esi, dword [eax + 8]
jne 0x10074b10
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x10074b00
mov esi, eax
mov eax, dword [edi + 0x58]
cmp esi, dword [eax]
jne 0x10074ab0
mov eax, dword [edi + 0x54]
mov eax, dword [eax]
mov esi, dword [eax]
cmp esi, eax
je 0x10074b99
jmp 0x10074b30
push dword [esi + 0x10]
mov ecx, edi
call fcn.100779f0
test eax, eax
je 0x10074b4b
mov edx, dword [eax + 4]
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 4]
mov al, byte [edx]
mov byte [ecx], al
cmp byte [esi + 0xd], 0
jne 0x10074b92
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
jne 0x10074b70
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x10074b92
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
je 0x10074b64
jmp 0x10074b92
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x10074b90
lea esp, [esp]
cmp esi, dword [eax + 8]
jne 0x10074b90
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x10074b80
mov esi, eax
mov eax, dword [edi + 0x54]
cmp esi, dword [eax]
jne 0x10074b30
push 0x93
mov ecx, edi
call fcn.100775c0
push eax
push 0x93
mov ecx, edi
call fcn.10077bd0
push 0x92
mov ecx, edi
call fcn.100775c0
push eax
push 0x92
mov ecx, edi
call fcn.10077bd0
push 0x90
mov ecx, edi
call fcn.100775c0
push eax
push 0x90
mov ecx, edi
call fcn.10077bd0
push 0x91
mov ecx, edi
call fcn.100775c0
push eax
push 0x91
mov ecx, edi
call fcn.10077bd0
push 0x8e
mov ecx, edi
call fcn.100775c0
push eax
push 0x8e
mov ecx, edi
call fcn.10077bd0
push 0x8f
mov ecx, edi
call fcn.100775c0
push eax
push 0x8f
mov ecx, edi
call fcn.10077bd0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
mov eax, 1
pop ebx
call fcn.1009174c
mov esp, ebp
pop ebp
ret