Function at 0x41b390
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xab4
mov eax, dword [0x43d064]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov dword [ebp - 0xab4], ecx
push 1
mov ecx, dword [ebp - 0xab4]
add ecx, 0xf3c
mov eax, dword [ebp - 0xab4]
mov edx, dword [eax + 0xf3c]
mov eax, dword [edx + 0x50]
call eax
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jl 0x41bd85
mov ecx, dword [ebp - 0xab4]
add ecx, 0x6e8
push ecx
push 0x104
lea edx, [ebp - 0x420]
push edx
call fcn.004023ae
add esp, 0xc
push 0x208
push 0
lea eax, [ebp - 0x630]
push eax
call fcn.00401f60
add esp, 0xc
mov ecx, dword [ebp - 0xab4]
cmp dword [ecx + 0x2e34], 0
jne 0x41b465
mov edx, dword [ebp - 0xab4]
movzx eax, word [edx + 0x2e1a]
push eax
mov ecx, dword [ebp - 0xab4]
movzx edx, word [ecx + 0x2e18]
push edx
push 0x4379f0
push 0x104
lea eax, [ebp - 0x630]
push eax
call fcn.00402385
add esp, 0x14
mov ecx, dword [ebp - 0xab4]
mov dword [ecx + 0x2e30], 0
jmp 0x41b5be
mov edx, dword [ebp - 0xab4]
add edx, 0x4808
push edx
push 0x104
lea eax, [ebp - 0x630]
push eax
push str.KM313110.DAT
push 0x437a2c
mov ecx, dword [ebp - 0xab4]
add ecx, 0x2bcc
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp eax, 0xc
jne 0x41b589
push 3
push 0x437a38
lea edx, [ebp - 0x630]
push edx
call fcn.00402656
add esp, 0xc
test eax, eax
jne 0x41b589
mov eax, dword [ebp - 0xab4]
add eax, 0x4808
push eax
push 0
push str.Color
mov ecx, dword [ebp - 0xab4]
add ecx, 0x2bcc
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edx, dword [ebp - 0xab4]
mov word [edx + 0x2e24], ax
push 8
push 0
lea eax, [ebp - 0x638]
push eax
call fcn.00401f60
add esp, 0xc
push 1
lea ecx, [ebp - 0x62a]
push ecx
push 4
lea edx, [ebp - 0x638]
push edx
call fcn.004024b5
add esp, 0x10
lea eax, [ebp - 0x638]
push eax
call fcn.0040277b
add esp, 4
mov ecx, dword [ebp - 0xab4]
mov word [ecx + 0x2e18], ax
push 8
push 0
lea edx, [ebp - 0x638]
push edx
call fcn.00401f60
add esp, 0xc
push 2
lea eax, [ebp - 0x628]
push eax
push 4
lea ecx, [ebp - 0x638]
push ecx
call fcn.004024b5
add esp, 0x10
lea edx, [ebp - 0x638]
push edx
call fcn.0040277b
add esp, 4
mov ecx, dword [ebp - 0xab4]
mov word [ecx + 0x2e1a], ax
jmp 0x41b5be
mov edx, dword [ebp - 0xab4]
movzx eax, word [edx + 0x2e1a]
push eax
mov ecx, dword [ebp - 0xab4]
movzx edx, word [ecx + 0x2e18]
push edx
push str.KM3_1d_2d10.DAT
push 0x104
lea eax, [ebp - 0x630]
push eax
call fcn.00402385
add esp, 0x14
mov ecx, dword [ebp - 0xab4]
add ecx, 0x4808
push ecx
push 0
push 0x437a6c
mov edx, dword [ebp - 0xab4]
add edx, 0x2bcc
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, 1
jne 0x41b5fa
mov eax, dword [ebp - 0xab4]
mov dword [eax + 0x2998], 1
mov ecx, dword [ebp - 0xab4]
add ecx, 0x4808
push ecx
push 0
push 0x437a74
mov edx, dword [ebp - 0xab4]
add edx, 0x2bcc
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, 1
jne 0x41b636
mov eax, dword [ebp - 0xab4]
mov dword [eax + 0x258c], 1
mov dword [ebp - 0x424], 1
mov ecx, dword [ebp - 0xab4]
add ecx, 0x4808
push ecx
push 0x104
lea edx, [ebp - 0x218]
push edx
push 0x437a7c
push 0x437a80
mov eax, dword [ebp - 0xab4]
add eax, 0x2bcc
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x218]
push ecx
call fcn.00402006
add esp, 4
test eax, eax
jbe 0x41b7c4
mov edx, dword [ebp - 0xab4]
add edx, 0x4808
push edx
push 0
push 0x437a90
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, 1
jne 0x41b7c4
mov dword [ebp - 0x640], 0
jmp 0x41b6d1
mov ecx, dword [ebp - 0x640]
add ecx, 1
mov dword [ebp - 0x640], ecx
mov edx, dword [ebp - 0xab4]
mov eax, dword [ebp - 0x640]
cmp eax, dword [edx + 0x2350]
jge 0x41b700
mov edx, 1
mov ecx, dword [ebp - 0x640]
shl edx, cl
or edx, dword [ebp - 0x424]
mov dword [ebp - 0x424], edx
jmp 0x41b6c2
mov dword [ebp - 0x63c], 0
mov dword [ebp - 0x644], 0
jmp 0x41b725
mov eax, dword [ebp - 0x644]
add eax, 1
mov dword [ebp - 0x644], eax
mov ecx, dword [ebp - 0xab4]
mov edx, dword [ebp - 0x644]
cmp edx, dword [ecx + 0x255c]
jge 0x41b79a
mov eax, dword [ebp - 0x644]
shl eax, 5
mov ecx, dword [ebp - 0xab4]
lea edx, [ecx + eax + 0x235c]
push edx
mov ecx, dword [ebp - 0xab4]
call fcn.00416d30
mov dword [ebp - 0x648], eax
mov eax, dword [ebp - 0x648]
mov ecx, dword [ebp - 0x63c]
shl eax, cl
or eax, dword [ebp - 0x424]
mov dword [ebp - 0x424], eax
mov ecx, dword [ebp - 0x648]
and ecx, 0x10
je 0x41b795
mov edx, dword [ebp - 0x63c]
add edx, 3
mov dword [ebp - 0x63c], edx
jmp 0x41b716
mov eax, dword [ebp - 0x424]
and eax, 0x10
je 0x41b7bf
mov ecx, dword [ebp - 0x424]
and ecx, 0x60
jne 0x41b7bf
mov edx, dword [ebp - 0x424]
or edx, 0x40
mov dword [ebp - 0x424], edx
jmp 0x41b873
mov eax, dword [ebp - 0xab4]
add eax, 0x235c
push eax
call fcn.004036a0
add esp, 4
test eax, eax
jbe 0x41b829
mov ecx, dword [ebp - 0xab4]
add ecx, 0x235c
push ecx
mov ecx, dword [ebp - 0xab4]
call fcn.00416d30
or eax, dword [ebp - 0x424]
mov dword [ebp - 0x424], eax
mov edx, dword [ebp - 0x424]
and edx, 0x100
je 0x41b829
mov eax, dword [ebp - 0xab4]
mov ecx, dword [eax + 0x234c]
sub ecx, 1
mov edx, dword [ebp - 0xab4]
mov dword [edx + 0x234c], ecx
mov dword [ebp - 0x64c], 0
jmp 0x41b844
mov eax, dword [ebp - 0x64c]
add eax, 1
mov dword [ebp - 0x64c], eax
mov ecx, dword [ebp - 0xab4]
mov edx, dword [ebp - 0x64c]
cmp edx, dword [ecx + 0x234c]
jge 0x41b873
mov eax, 1
mov ecx, dword [ebp - 0x64c]
shl eax, cl
or eax, dword [ebp - 0x424]
mov dword [ebp - 0x424], eax
jmp 0x41b835
mov ecx, dword [ebp - 0xab4]
cmp dword [ecx + 0x2354], 0
je 0x41b894
mov edx, dword [ebp - 0x424]
or edx, 0x800
mov dword [ebp - 0x424], edx
mov eax, dword [ebp - 0xab4]
cmp dword [eax + 0x2358], 0
je 0x41b8b5
mov ecx, dword [ebp - 0x424]
or ecx, 0x100
mov dword [ebp - 0x424], ecx
mov edx, dword [ebp - 0xab4]
cmp dword [edx + 0x2560], 0
je 0x41b8d5
mov eax, dword [ebp - 0x424]
or eax, 0x1000
mov dword [ebp - 0x424], eax
mov ecx, dword [ebp - 0xab4]
cmp dword [ecx + 0x2564], 0
je 0x41b90a
mov edx, dword [ebp - 0xab4]
add edx, 0x2568
push edx
mov ecx, dword [ebp - 0xab4]
call fcn.00416d30
or eax, dword [ebp - 0x424]
mov dword [ebp - 0x424], eax
jmp 0x41b96d
mov eax, dword [ebp - 0xab4]
add eax, 0x4808
push eax
push 0
push 0x437a98
mov ecx, dword [ebp - 0xab4]
add ecx, 0x2bcc
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, 1
je 0x41b95b
mov edx, dword [ebp - 0xab4]
add edx, 0x4808
push edx
push 0
push str.LeftTray
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, 1
jne 0x41b96d
mov ecx, dword [ebp - 0x424]
or ecx, 0x80000
mov dword [ebp - 0x424], ecx
mov edx, dword [ebp - 0xab4]
cmp dword [edx + 0x2588], 0
je 0x41b98d
mov eax, dword [ebp - 0x424]
or eax, 0x200000
mov dword [ebp - 0x424], eax
mov ecx, dword [ebp - 0xab4]
cmp dword [ecx + 0x258c], 0
je 0x41ba20
mov dword [ebp - 0x650], 0
jmp 0x41b9bb
mov edx, dword [ebp - 0x650]
add edx, 1
mov dword [ebp - 0x650], edx
mov eax, dword [ebp - 0xab4]
mov ecx, dword [ebp - 0x650]
cmp ecx, dword [eax + 0x2990]
jge 0x41b9ff
mov edx, dword [ebp - 0x650]
shl edx, 5
mov eax, dword [ebp - 0xab4]
lea ecx, [eax + edx + 0x2590]
push ecx
mov ecx, dword [ebp - 0xab4]
call fcn.00416d30
or eax, dword [ebp - 0x424]
mov dword [ebp - 0x424], eax
jmp 0x41b9ac
mov edx, dword [ebp - 0x424]
and edx, 0x410000
jne 0x41ba1e
mov eax, dword [ebp - 0x424]
or eax, 0x400000
mov dword [ebp - 0x424], eax
jmp 0x41ba83
mov ecx, dword [ebp - 0xab4]
add ecx, 0x4808
push ecx
push 0
push 0x437ac0
mov edx, dword [ebp - 0xab4]
add edx, 0x2bcc
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, 1
je 0x41ba71
mov eax, dword [ebp - 0xab4]
add eax, 0x4808
push eax
push 0
push str.RightTray
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, 1
jne 0x41ba83
mov edx, dword [ebp - 0x424]
or edx, 0x10000
mov dword [ebp - 0x424], edx
mov eax, dword [ebp - 0xab4]
cmp dword [eax + 0x2994], 0
je 0x41baa4
mov ecx, dword [ebp - 0x424]
or ecx, 0x800000
mov dword [ebp - 0x424], ecx
mov edx, dword [ebp - 0xab4]
cmp dword [edx + 0x2998], 0
je 0x41bac9
mov eax, dword [ebp - 0x424]
or eax, 0x4000000
mov dword [ebp - 0x424], eax
jmp 0x41bb90
push 3
push 0x437ae8
mov ecx, dword [ebp - 0xab4]
add ecx, 0x2bcc
push ecx
call fcn.00402656
add esp, 0xc
test eax, eax
je 0x41bb7e
push 3
push 0x437af0
mov edx, dword [ebp - 0xab4]
add edx, 0x2bcc
push edx
call fcn.00402656
add esp, 0xc
test eax, eax
je 0x41bb7e
push 3
push 0x437af8
mov eax, dword [ebp - 0xab4]
add eax, 0x2bcc
push eax
call fcn.00402656
add esp, 0xc
test eax, eax
je 0x41bb7e
push 4
push str.TASK
mov ecx, dword [ebp - 0xab4]
add ecx, 0x2bcc
push ecx
call fcn.00402656
add esp, 0xc
test eax, eax
je 0x41bb7e
push 8
push str.Copystar
mov edx, dword [ebp - 0xab4]
add edx, 0x2bcc
push edx
call fcn.00402656
add esp, 0xc
test eax, eax
je 0x41bb7e
mov eax, dword [ebp - 0xab4]
movzx ecx, word [eax + 0x2e18]
cmp ecx, 2
jne 0x41bb90
mov edx, dword [ebp - 0x424]
or edx, 0x2000000
mov dword [ebp - 0x424], edx
mov eax, dword [ebp - 0xab4]
mov ecx, dword [ebp - 0x424]
mov dword [eax + 0x2e1c], ecx
push 0x437b20
push 0x104
lea edx, [ebp - 0x420]
push edx
call fcn.00402588
add esp, 0xc
lea eax, [ebp - 0x630]
push eax
push 0x104
lea ecx, [ebp - 0x420]
push ecx
call fcn.00402588
add esp, 0xc
push 0
push 1
mov ecx, dword [ebp - 0xab4]
add ecx, 0xf3c
mov edx, dword [ebp - 0xab4]
mov eax, dword [edx + 0xf3c]
mov edx, dword [eax + 0xc]
call edx
mov eax, dword [ebp - 0xab4]
cmp dword [eax + 0x2e20], 0
je 0x41bc3d
mov ecx, dword [ebp - 0xab4]
cmp dword [ecx + 0x234c], 0
jne 0x41bc3d
mov edx, dword [ebp - 0xab4]
mov eax, dword [ebp - 0xab4]
mov ecx, dword [eax + 0x2e20]
mov dword [edx + 0x2e1c], ecx
mov edx, dword [ebp - 0xab4]
mov dword [edx + 0x2e20], 0
mov eax, dword [ebp - 0xab4]
movzx ecx, word [eax + 0x2e24]
push ecx
mov edx, dword [ebp - 0xab4]
mov eax, dword [edx + 0x2e1c]
push eax
lea ecx, [ebp - 0x420]
push ecx
mov ecx, dword [ebp - 0xab4]
add ecx, 0xf3c
mov edx, dword [ebp - 0xab4]
mov eax, dword [edx + 0xf3c]
mov edx, dword [eax + 4]
call edx
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0x40100
jb 0x41bc9d
mov eax, dword [ebp - 0xab4]
mov dword [eax + 0x2e30], 1
jmp 0x41bd74
cmp dword [ebp - 8], 0
jne 0x41bd64
push 0x104
lea ecx, [ebp - 0xab0]
push ecx
push 0x437b24
mov ecx, dword [ebp - 0xab4]
add ecx, 0x40c8
call fcn.0042e720
lea edx, [ebp - 0xab0]
push edx
call fcn.00402006
add esp, 4
test eax, eax
ja 0x41bcf5
push 0x437b3c
push 0x104
lea eax, [ebp - 0xab0]
push eax
call fcn.004023ae
add esp, 0xc
push 0x12c
lea ecx, [ebp - 0x8a8]
push ecx
push str.BLN_ERR_NO_SYSTEMFILE
mov ecx, dword [ebp - 0xab4]
add ecx, 0x40c8
call fcn.0042e720
lea edx, [ebp - 0x8a8]
push edx
call fcn.00402006
add esp, 4
test eax, eax
ja 0x41bd43
push str.Some_of_system_file_is_missing.
push 0x104
lea eax, [ebp - 0x8a8]
push eax
call fcn.004023ae
add esp, 0xc
push 0x30
lea ecx, [ebp - 0xab0]
push ecx
lea edx, [ebp - 0x8a8]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, 0x80004005
jmp 0x41bd8a
mov eax, dword [ebp - 0xab4]
mov dword [eax + 0x2e30], 0
mov ecx, dword [ebp - 0xab4]
call fcn.00417b10
xor eax, eax
jmp 0x41bd8a
mov eax, 0x80004005
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.00401f44
mov esp, ebp
pop ebp
ret