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

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xd0
mov qword [rsp + 0xb8], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov rax, qword [0x41359af8]
xor rax, rsp
mov qword [rsp + 0xc0], rax
mov rsi, rcx
mov qword [rsp + 0x40], rcx
mov dword [rcx + 0x11c], 0
mov dword [rcx + 0x118], 0
mov rcx, qword [rcx + 0x110]
mov rax, qword [rcx]
mov edx, 0x41
call qword [rax]
test eax, eax
jne 0x4110b608
mov dword [rsi + 0x118], 1
mov rcx, rsi
call fcn.41107ed0
test al, al
jne 0x4110b621
mov rcx, rsi
call fcn.411084e0
jmp 0x4110bf53
mov rax, qword [0x4135c018]
test rax, rax
jne 0x4110b654
mov ecx, 0x2d0
call fcn.41211580
mov qword [rsp + 0x28], rax
test rax, rax
je 0x4110b64b
mov rcx, rax
call fcn.410228e0
jmp 0x4110b64d
xor eax, eax
mov qword [0x4135c018], rax
mov rcx, rax
call fcn.4102a830
mov rdi, rax
mov rcx, rax
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4110b89f
mov ebx, dword [rsi + 0x124]
mov r9, rdi
mov r8d, ebx
lea rdx, str.StatusBtnColor
lea rcx, str.Setting
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [rsi + 0x124], eax
cmp eax, ebx
je 0x4110b6a4
mov dword [rsi + 0x11c], 1
mov r9, rdi
xor r8d, r8d
lea rdx, str.StatusWndTransparency
lea rcx, str.Setting
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [rsi + 0x12c], eax
mov r9, rdi
mov r8d, 1
lea rdx, str.StatusCnBtn
lea rcx, str.Setting
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov byte [rsi + 0x130], al
mov r9, rdi
mov r8d, 1
lea rdx, str.StatusBQBtn
lea rcx, str.Setting
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov byte [rsi + 0x131], al
mov r9, rdi
mov r8d, 1
lea rdx, str.StatusBiaoDianBtn
lea rcx, str.Setting
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov byte [rsi + 0x132], al
mov r9, rdi
mov r8d, 1
lea rdx, str.StatusKeyBtn
lea rcx, str.Setting
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov byte [rsi + 0x133], al
mov r9, rdi
mov r8d, 1
lea rdx, str.StatusUserBtn
lea rcx, str.Setting
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov byte [rsi + 0x134], al
mov r9, rdi
xor r8d, r8d
lea rdx, str.StatusJFBtn
lea rcx, str.Setting
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov byte [rsi + 0x135], al
mov r9, rdi
xor r8d, r8d
lea rdx, str.StatusCutBtn
lea rcx, str.Setting
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov byte [rsi + 0x136], al
mov r9, rdi
mov r8d, 1
lea rdx, str.StatusMenuBtn
lea rcx, str.Setting
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov byte [rsi + 0x137], al
mov r9, rdi
xor r8d, r8d
lea rdx, str.StatusHandBtn
lea rcx, str.Setting
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov byte [rsi + 0x139], al
mov r9, rdi
xor r8d, r8d
lea rdx, str.StatusSkinBoxBtn
lea rcx, str.Setting
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov byte [rsi + 0x138], al
mov r9, rdi
xor r8d, r8d
lea rdx, str.StatusVoiceBtn
lea rcx, str.Setting
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov byte [rsi + 0x13a], al
mov r9, rdi
xor r8d, r8d
lea rdx, str.StatusCalculatorBtn
lea rcx, str.Setting
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov byte [rsi + 0x13c], al
mov r9, rdi
xor r8d, r8d
lea rdx, str.StatusSearchBtn
lea rcx, str.Setting
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov byte [rsi + 0x13b], al
mov rcx, qword [rsi + 0x110]
mov rax, qword [rcx]
mov r8d, dword [rsi + 0x12c]
mov edx, 0x53
call qword [rax + 0x18]
mov edx, dword [rsi + 0x12c]
mov rcx, rsi
call fcn.410b7f70
jmp 0x4110b8f9
mov dword [rsi + 0x12c], 0
mov dword [rsi + 0x124], 0x2177c7
mov byte [rsi + 0x130], 1
mov byte [rsi + 0x131], 1
mov byte [rsi + 0x132], 1
mov byte [rsi + 0x133], 1
mov byte [rsi + 0x134], 1
mov byte [rsi + 0x135], 0
mov byte [rsi + 0x136], 0
mov byte [rsi + 0x137], 1
mov byte [rsi + 0x139], 0
mov byte [rsi + 0x138], 0
mov rax, qword [0x413609d0]
test rax, rax
jne 0x4110b92c
mov ecx, 0x1318
call fcn.41211580
mov qword [rsp + 0x28], rax
test rax, rax
je 0x4110b923
mov rcx, rax
call fcn.410f20f0
jmp 0x4110b925
xor eax, eax
mov qword [0x413609d0], rax
mov rcx, rax
call fcn.410ea5d0
test eax, eax
je 0x4110b987
mov rcx, rsi
call fcn.4110af20
mov dword [rsi + 0x11c], 1
mov rax, qword [0x413609d0]
test rax, rax
jne 0x4110b97d
mov ecx, 0x1318
call fcn.41211580
mov qword [rsp + 0x28], rax
test rax, rax
je 0x4110b974
mov rcx, rax
call fcn.410f20f0
jmp 0x4110b976
xor eax, eax
mov qword [0x413609d0], rax
xor edx, edx
mov rcx, rax
call fcn.410ea5e0
mov eax, dword [rsi + 0x124]
cmp eax, dword [rsi + 0x128]
je 0x4110b99f
mov dword [rsi + 0x11c], 1
cmp dword [rsi + 0x11c], 0
je 0x4110bf4b
cmp eax, 0x2177c7
sete r13b
mov byte [rsp + 0x20], r13b
cmp qword [rsi + 0x58], 0
je 0x4110bf4b
mov qword [rsp + 0x88], 7
mov qword [rsp + 0x80], 0
mov word [rsp + 0x70], 0
mov r9d, 0xc
lea r8, str.Button
lea edx, [r9 + 2]
lea rcx, [rsp + 0x70]
call fcn.412118b0
mov qword [rsp + 0x80], 6
lea rax, [rsp + 0x70]
cmp qword [rsp + 0x88], 8
cmovae rax, qword [rsp + 0x70]
mov word [rax + 0xc], 0
mov rcx, qword [rsi + 0x58]
mov rax, qword [rcx]
lea rdx, [rsp + 0x68]
call qword [rax + 0x30]
mov rbx, rax
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x88], 8
jb 0x4110ba51
mov rcx, qword [rsp + 0x70]
call fcn.41210d60
mov qword [rsp + 0x88], 7
mov qword [rsp + 0x80], 0
mov word [rsp + 0x70], 0
mov rdx, qword [rbx + 8]
mov rcx, qword [rdx + 8]
mov rax, qword [rcx]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], rdx
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
or r14d, 0xffffffff
mov r12, qword [rsp + 0x58]
mov qword [rsp + 0x38], r12
mov rbp, qword [rsp + 0x50]
mov rax, qword [rbx + 8]
mov rbx, qword [rax + 8]
test rbp, rbp
je 0x4110bab5
cmp rbp, rax
je 0x4110baba
call fcn.41211d60
cmp r12, rbx
je 0x4110bf4b
test rbp, rbp
jne 0x4110bacd
call fcn.41211d60
cmp r12, qword [rbp + 8]
jne 0x4110bad8
call fcn.41211d60
mov rdi, qword [r12 + 0x40]
test rdi, rdi
je 0x4110bec4
cmp r12, qword [rbp + 8]
jne 0x4110baf1
call fcn.41211d60
mov r9, qword [r12 + 0x30]
cmp r9, r9
cmovb r9, r9
cmp qword [r12 + 0x38], 8
jb 0x4110bb0c
mov rcx, qword [r12 + 0x20]
jmp 0x4110bb11
lea rcx, [r12 + 0x20]
mov r8d, 9
cmp r9, r8
cmovb r8, r9
lea rdx, str.PassLogin
test r8, r8
je 0x4110bb57
nop
nop
movzx eax, word [rdx]
cmp word [rcx], ax
jne 0x4110bb48
add rcx, 2
add rdx, 2
sub r8, 1
jne 0x4110bb30
jmp 0x4110bb57
mov r8d, 1
cmp word [rcx], ax
cmovb r8d, r14d
jmp 0x4110bb5a
xor r8d, r8d
movsxd rax, r8d
test r8d, r8d
jne 0x4110bb71
cmp r9, 9
jb 0x4110bb79
xor eax, eax
cmp r9, 9
setne al
test eax, eax
je 0x4110bec4
cmp r12, qword [rbp + 8]
jne 0x4110bb84
call fcn.41211d60
mov r9, qword [r12 + 0x30]
cmp r9, r9
cmovb r9, r9
cmp qword [r12 + 0x38], 8
jb 0x4110bb9f
mov rcx, qword [r12 + 0x20]
jmp 0x4110bba4
lea rcx, [r12 + 0x20]
mov r8d, 4
cmp r9, r8
cmovb r8, r9
lea rdx, str.Logo
test r8, r8
je 0x4110bbe7
nop
movzx eax, word [rdx]
cmp word [rcx], ax
jne 0x4110bbd8
add rcx, 2
add rdx, 2
sub r8, 1
jne 0x4110bbc0
jmp 0x4110bbe7
mov r8d, 1
cmp word [rcx], ax
cmovb r8d, r14d
jmp 0x4110bbea
xor r8d, r8d
movsxd rax, r8d
test r8d, r8d
jne 0x4110bc01
cmp r9, 4
jb 0x4110bc09
xor eax, eax
cmp r9, 4
setne al
test eax, eax
je 0x4110bec4
cmp dword [rsi + 0x124], 0x2177c7
jne 0x4110bc49
cmp r12, qword [rbp + 8]
jne 0x4110bc20
call fcn.41211d60
lea rdx, str.Logo
lea rcx, [r12 + 0x18]
call fcn.41032210
test al, al
je 0x4110bc49
mov r14d, SetErrorInfo
lea r15d, [r14 - 0x50]
mov dword [rsp + 0x34], 0x21
jmp 0x4110bc64
movzx r14d, byte [rsi + 0x124]
movzx r15d, byte [rsi + 0x125]
movzx eax, byte [rsi + 0x126]
mov dword [rsp + 0x34], eax
mov qword [rsp + 0xb0], 7
mov qword [rsp + 0xa8], 0
mov word [rsp + 0x98], 0
mov r9d, 0xa
lea r8, str.image
lea edx, [r9 + 4]
lea rcx, [rsp + 0x98]
call fcn.412118b0
mov qword [rsp + 0xa8], 5
lea rax, [rsp + 0x98]
cmp qword [rsp + 0xb0], 8
cmovae rax, qword [rsp + 0x98]
mov word [rax + 0xa], 0
mov rax, qword [rdi]
lea rdx, [rsp + 0x90]
mov rcx, rdi
call qword [rax + 0x30]
mov rdi, rax
cmp qword [rsp + 0xb0], 8
jb 0x4110bcfc
mov rcx, qword [rsp + 0x98]
call fcn.41210d60
mov qword [rsp + 0xb0], 7
mov qword [rsp + 0xa8], 0
mov word [rsp + 0x98], 0
test r13b, r13b
jne 0x4110be52
cmp r12, qword [rbp + 8]
jne 0x4110bd32
call fcn.41211d60
cmp qword [r12 + 0x38], 8
jb 0x4110bd41
mov rdx, qword [r12 + 0x20]
jmp 0x4110bd46
lea rdx, [r12 + 0x20]
mov r8, rdi
mov rcx, rsi
call fcn.4110b060
test rdi, rdi
je 0x4110beb4
mov eax, dword [rsi + 0x124]
mov dword [rsi + 0x128], eax
mov rcx, rdi
call fcn.41067ca0
mov rsi, rax
test rax, rax
je 0x4110be94
mov ebx, 0xff000000
mov rcx, rdi
call fcn.410d5c60
mov dword [rsp + 0x30], eax
mov rcx, rdi
call fcn.410d5cd0
mov r13d, eax
xor ebp, ebp
mov eax, dword [rsp + 0x30]
test eax, eax
jle 0x4110be9f
mov r12d, dword [rsp + 0x34]
nop
nop
xor edi, edi
test r13d, r13d
jle 0x4110be2c
nop
nop
nop
lea r9, [rsp + 0x60]
mov r8d, edi
mov edx, ebp
mov rcx, qword [rsi + 8]
call sub.gdiplus.dll_GdipBitmapGetPixel
test eax, eax
je 0x4110bddc
mov dword [rsi + 0x10], eax
jmp 0x4110bde0
mov ebx, dword [rsp + 0x60]
mov eax, ebx
shr eax, 0x18
je 0x4110be20
mov r9d, eax
shl r9d, 8
movzx eax, r12b
or r9d, eax
shl r9d, 8
movzx eax, r15b
or r9d, eax
shl r9d, 8
movzx eax, r14b
or r9d, eax
mov r8d, edi
mov edx, ebp
mov rcx, qword [rsi + 8]
call sub.gdiplus.dll_GdipBitmapSetPixel
test eax, eax
je 0x4110be20
mov dword [rsi + 0x10], eax
add edi, 1
cmp edi, r13d
jl 0x4110bdc0
mov eax, dword [rsp + 0x30]
add ebp, 1
cmp ebp, eax
jl 0x4110bdb0
mov r12, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x50]
movzx r13d, byte [rsp + 0x20]
or r14d, 0xffffffff
jmp 0x4110bec4
cmp r12, qword [rbp + 8]
jne 0x4110be5d
call fcn.41211d60
cmp qword [r12 + 0x38], 8
jb 0x4110be6c
mov rdx, qword [r12 + 0x20]
jmp 0x4110be71
lea rdx, [r12 + 0x20]
mov rcx, rsi
call fcn.411081b0
test rdi, rdi
je 0x4110bec0
test rax, rax
je 0x4110beba
mov rdx, rax
mov rcx, rdi
call fcn.410d64c0
or r14d, 0xffffffff
jmp 0x4110bec4
mov rsi, qword [rsp + 0x40]
or r14d, 0xffffffff
jmp 0x4110bec4
mov rsi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x50]
mov r13b, byte [rsp + 0x20]
or r14d, 0xffffffff
jmp 0x4110bec4
or r14d, 0xffffffff
jmp 0x4110bec4
or r14d, 0xffffffff
jmp 0x4110bec4
or r14d, 0xffffffff
cmp byte [r12 + 0x49], 0
je 0x4110bedb
call fcn.41211d60
mov rbx, qword [rsp + 0x28]
jmp 0x4110baa3
mov rax, qword [r12 + 0x10]
cmp byte [rax + 0x49], 0
jne 0x4110bf1b
mov r12, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rax]
cmp byte [rax + 0x49], 0
jne 0x4110bf11
nop
nop
nop
mov r12, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rax]
cmp byte [rax + 0x49], 0
je 0x4110bf00
mov rbx, qword [rsp + 0x28]
jmp 0x4110baa3
mov rax, qword [r12 + 8]
cmp byte [rax + 0x49], 0
jne 0x4110bf39
cmp r12, qword [rax + 0x10]
jne 0x4110bf39
mov r12, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x49], 0
je 0x4110bf26
mov r12, rax
mov qword [rsp + 0x38], rax
mov rbx, qword [rsp + 0x28]
jmp 0x4110baa3
mov rcx, rsi
call fcn.410ff9f0
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.41211b80
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret