Function at 0x419350
Capabilities:
Get common file path
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x33c
mov eax, dword [0x43fd90]
xor eax, ebp
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x32c], 0
mov dword [ebp - 0x324], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x290], 4
mov dword [ebp - 0x20], 0x40
mov dword [ebp - 0x320], 0x20
mov dword [ebp - 0x334], 1
mov dword [ebp - 0x30], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0x14], 0x8c
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1e0]
sub ecx, 1
neg ecx
sbb ecx, ecx
and ecx, 0
add ecx, 1
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28c], 0
mov dword [ebp - 0x10], 0x12
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x298], 1
mov dword [ebp - 0x31c], 0xe
mov dword [ebp - 0x1c], 0x1e6e
mov dword [ebp - 4], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x294], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x328], 0
xor edx, edx
mov word [ebp - 0x288], dx
push 0x206
push 0
lea eax, [ebp - 0x286]
push eax
call fcn.0041f6d0
add esp, 0xc
xor ecx, ecx
mov word [ebp - 0x318], cx
push 0x3e
push 0
lea edx, [ebp - 0x316]
push edx
call fcn.0041f6d0
add esp, 0xc
xor eax, eax
mov word [ebp - 0x80], ax
push 0x3e
push 0
lea ecx, [ebp - 0x7e]
push ecx
call fcn.0041f6d0
add esp, 0xc
xor edx, edx
mov word [ebp - 0x2d8], dx
push 0x3e
push 0
lea eax, [ebp - 0x2d6]
push eax
call fcn.0041f6d0
add esp, 0xc
lea ecx, [ebp - 0x328]
push ecx
push 0
mov edx, dword [ebp + 8]
push edx
call fcn.00418760
add esp, 0xc
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x328]
mov dword [eax + 0x2c4], ecx
push 0x104
lea edx, [ebp - 0x288]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 0x436a70
lea eax, [ebp - 0x288]
push eax
push 0x436a90
lea ecx, [ebp - 0x288]
push ecx
call fcn.0041c8e0
add esp, 0x10
lea edx, [ebp - 0x288]
push edx
push 0x20
lea eax, [ebp - 0x2d8]
push eax
push 0x436a9c
push 0xa
lea ecx, [ebp - 0x80]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x2c8]
push eax
call fcn.004235bf
add esp, 0xc
push eax
push 0x436aa0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
movzx ecx, word [ebp - 0x2d8]
test ecx, ecx
je 0x419618
mov dword [ebp - 0x338], 0
mov dword [ebp - 0x33c], 0
mov edx, dword [ebp + 8]
movzx eax, word [edx + 0x2dc]
mov dword [ebp - 0x338], eax
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x2c8], 0x10
jne 0x41959b
mov edx, dword [ebp + 8]
movzx eax, word [edx + 0x2dc]
cmp eax, 7
jg 0x41959b
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x2c4], 2
je 0x41959b
mov dword [ebp - 0x338], 8
cmp dword [ebp - 0x338], 0
jl 0x419618
mov edx, dword [ebp - 0x338]
push edx
lea eax, [ebp - 0x2d8]
push eax
push 0x436ab4
lea ecx, [ebp - 0x318]
push ecx
call fcn.0041c8e0
add esp, 0x10
lea edx, [ebp - 0x288]
push edx
push 0
push 0x436ac0
lea eax, [ebp - 0x318]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x33c], eax
cmp dword [ebp - 0x33c], 0
jle 0x4195f4
jmp 0x419618
push 0x40
push 0
lea ecx, [ebp - 0x318]
push ecx
call fcn.0041f6d0
add esp, 0xc
mov edx, dword [ebp - 0x338]
sub edx, 1
mov dword [ebp - 0x338], edx
jmp 0x41959b
lea eax, [ebp - 0x288]
push eax
push 0x90
push 0x436ad4
lea ecx, [ebp - 0x318]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 8], eax
lea edx, [ebp - 0x288]
push edx
push 0x8c
push str.Gamma
lea eax, [ebp - 0x318]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x288]
push ecx
push 5
push str.Brightness
lea edx, [ebp - 0x318]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x288]
push eax
push 0x1f
push str.Contrast
lea ecx, [ebp - 0x318]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x28c], eax
lea edx, [ebp - 0x288]
push edx
push 0
push str.Saturation
lea eax, [ebp - 0x318]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0x288]
push ecx
push 0xe
push str.Sharpness
lea edx, [ebp - 0x318]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x31c], eax
lea eax, [ebp - 0x288]
push eax
push 0x1e73
push str.WhiteBalance
lea ecx, [ebp - 0x318]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x298], 0
lea edx, [ebp - 0x288]
push edx
push 4
push str.Rgain
lea eax, [ebp - 0x318]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x290], eax
lea ecx, [ebp - 0x288]
push ecx
push 0x40
push str.Ggain
lea edx, [ebp - 0x318]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x288]
push eax
push 0x20
push str.Bgain
lea ecx, [ebp - 0x318]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x320], eax
lea edx, [ebp - 0x288]
push edx
push 0
push str.Mirror
lea eax, [ebp - 0x318]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x288]
push ecx
push 0
push str.Vertical
lea edx, [ebp - 0x318]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x324], eax
lea eax, [ebp - 0x288]
push eax
push 0
push 0x436bb0
lea ecx, [ebp - 0x318]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edx, dword [ebp + 8]
mov dword [edx + 0x24c], eax
lea eax, [ebp - 0x288]
push eax
push 0
push 0x436bd4
lea ecx, [ebp - 0x318]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edx, dword [ebp + 8]
mov dword [edx + 0x250], eax
lea eax, [ebp - 0x288]
push eax
push 0
push 0x436bf8
lea ecx, [ebp - 0x318]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edx, dword [ebp + 8]
mov dword [edx + 0x254], eax
lea eax, [ebp - 0x288]
push eax
push 0
push 0x436c18
lea ecx, [ebp - 0x318]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edx, dword [ebp + 8]
mov dword [edx + 0x2d0], eax
lea eax, [ebp - 0x288]
push eax
push 0
push str.ForceCheckFingerLeave
lea ecx, [ebp - 0x318]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edx, dword [ebp + 8]
mov dword [edx + 0x258], eax
lea eax, [ebp - 0x288]
push eax
push 0
push str.SensorExposure
lea ecx, [ebp - 0x318]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jbe 0x419886
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0xc]
mov dword [edx + 0x2cc], eax
lea ecx, [ebp - 0x288]
push ecx
push 0
push str.SensorMirrored
lea edx, [ebp - 0x318]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004188c0
add esp, 8
lea edx, [ebp - 0x288]
push edx
push 0
push str.CalcCounts
lea eax, [ebp - 0x318]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x2e0], eax
lea edx, [ebp - 0x288]
push edx
push 0
push str.MaxLuma
lea eax, [ebp - 0x318]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x2e4], eax
lea edx, [ebp - 0x288]
push edx
push 0
push str.MinLuma
lea eax, [ebp - 0x318]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x2e8], eax
lea edx, [ebp - 0x38]
push edx
push 0x437120
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x14]
mov ecx, dword [ecx]
push eax
mov edx, dword [ecx]
call edx
mov dword [ebp - 0x330], eax
cmp dword [ebp - 0x330], 0
jge 0x419952
xor al, al
jmp 0x419a42
push 2
mov eax, dword [ebp - 0x14]
push eax
push 5
mov ecx, dword [ebp - 0x38]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x38]
push eax
mov ecx, dword [edx + 0x10]
call ecx
mov dword [ebp - 0x330], eax
push 2
mov edx, dword [ebp - 0x2c]
push edx
push 0
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x38]
push edx
mov eax, dword [ecx + 0x10]
call eax
mov dword [ebp - 0x330], eax
push 2
mov ecx, dword [ebp - 0x28c]
push ecx
push 1
mov edx, dword [ebp - 0x38]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x38]
push ecx
mov edx, dword [eax + 0x10]
call edx
mov dword [ebp - 0x330], eax
push 2
mov eax, dword [ebp - 0x24]
push eax
push 3
mov ecx, dword [ebp - 0x38]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x38]
push eax
mov ecx, dword [edx + 0x10]
call ecx
mov dword [ebp - 0x330], eax
push 2
mov edx, dword [ebp - 0x1c]
push edx
push 7
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x38]
push edx
mov eax, dword [ecx + 0x10]
call eax
mov dword [ebp - 0x330], eax
push 2
mov ecx, dword [ebp - 0x31c]
push ecx
push 4
mov edx, dword [ebp - 0x38]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x38]
push ecx
mov edx, dword [eax + 0x10]
call edx
mov dword [ebp - 0x330], eax
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x38]
push edx
mov eax, dword [ecx + 8]
call eax
cmp dword [ebp - 0x330], 0
jge 0x419a1b
xor al, al
jmp 0x419a42
mov ecx, dword [ebp - 0x18]
push ecx
push 0xd
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x1c]
call fcn.00401550
mov eax, dword [ebp - 0x324]
push eax
push 0x13
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x1c]
call fcn.00401550
mov al, 1
mov ecx, dword [ebp - 0x3c]
xor ecx, ebp
call fcn.0041f6b5
mov esp, ebp
pop ebp
ret