Function at 0x409f80
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45fbdb
mov eax, dword fs:[0]
push eax
sub esp, 0x438
mov eax, dword [0x47aba0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x430], ecx
xor eax, eax
mov word [ebp - 0x21c], ax
push 0x206
push 0
lea ecx, [ebp - 0x21a]
push ecx
call fcn.00446670
add esp, 0xc
push 0x46ceb4
push 0x104
lea edx, [ebp - 0x21c]
push edx
push 0x46cecc
push str.Title
push 0x46cf08
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x434], eax
mov dword [ebp - 0x438], str.Odin3.__Android__SLP_
mov ecx, dword [ebp - 0x438]
mov dl, byte [ecx]
mov byte [ebp - 0x439], dl
mov eax, dword [ebp - 0x434]
cmp dl, byte [eax]
jne 0x40a06a
cmp byte [ebp - 0x439], 0
je 0x40a05e
mov ecx, dword [ebp - 0x438]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x43a], dl
mov eax, dword [ebp - 0x434]
cmp dl, byte [eax + 1]
jne 0x40a06a
add dword [ebp - 0x438], 2
add dword [ebp - 0x434], 2
cmp byte [ebp - 0x43a], 0
jne 0x40a00c
mov dword [ebp - 0x440], 0
jmp 0x40a075
sbb ecx, ecx
sbb ecx, 0xffffffff
mov dword [ebp - 0x440], ecx
mov edx, dword [ebp - 0x440]
mov dword [ebp - 0x444], edx
cmp dword [ebp - 0x444], 0
jne 0x40a0ab
push 0
push 0
push str.Odin3.ini
call fcn.0042f48a
push 0
push 0
push 0x10
call fcn.0040d900
mov ecx, dword [eax + 0x20]
call fcn.0040d7f0
push 0x46cf70
push 0x104
lea eax, [ebp - 0x424]
push eax
push 0x46cf88
push 0x46cf8c
push 0x46cfb0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x424]
push ecx
call fcn.00444cf7
add esp, 4
mov edx, dword [ebp - 0x430]
mov dword [edx + 0x330], eax
push 0x104
push 0
lea eax, [ebp - 0x424]
push eax
call fcn.00446670
add esp, 0xc
push 0x46cfc0
push 0x104
lea ecx, [ebp - 0x424]
push ecx
push 0x46cfd8
push 0x46cfdc
push 0x46d004
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [ebp - 0x424]
push edx
call fcn.00444cf7
add esp, 4
mov ecx, dword [ebp - 0x430]
mov dword [ecx + 0x334], eax
push 0x104
push 0
lea edx, [ebp - 0x424]
push edx
call fcn.00446670
add esp, 0xc
push 0x46d014
push 0x104
lea eax, [ebp - 0x424]
push eax
push 0x46d02c
push 0x46d030
push 0x46d048
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x424]
push ecx
call fcn.00444cf7
add esp, 4
test eax, eax
jne 0x40a1ba
push 0
push 0x402
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0040d650
mov edx, dword [ebp - 0x430]
mov dword [edx + 0x78], 0
jmp 0x40a1e0
push 1
push 0x402
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0040d650
mov eax, dword [ebp - 0x430]
mov dword [eax + 0x78], 1
push 0x104
push 0
lea ecx, [ebp - 0x424]
push ecx
call fcn.00446670
add esp, 0xc
push 0x46d05c
push 0x104
lea edx, [ebp - 0x424]
push edx
push 0x46d074
push 0x46d078
push 0x46d090
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x424]
push eax
call fcn.00444cf7
add esp, 4
test eax, eax
jne 0x40a257
push 0
push 0x403
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0040d650
mov ecx, dword [ebp - 0x430]
mov dword [ecx + 0x7c], 0
jmp 0x40a27d
push 1
push 0x403
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0040d650
mov edx, dword [ebp - 0x430]
mov dword [edx + 0x7c], 1
push 0x104
push 0
lea eax, [ebp - 0x424]
push eax
call fcn.00446670
add esp, 0xc
push 0x46d0a4
push 0x104
lea ecx, [ebp - 0x424]
push ecx
push 0x46d0bc
push 0x46d0c0
push 0x46d0d8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [ebp - 0x424]
push edx
call fcn.00444cf7
add esp, 4
test eax, eax
jne 0x40a2f7
push 0
push 0x404
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0040d650
mov eax, dword [ebp - 0x430]
mov dword [eax + 0x80], 0
jmp 0x40a320
push 1
push 0x404
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0040d650
mov ecx, dword [ebp - 0x430]
mov dword [ecx + 0x80], 1
push 0x104
push 0
lea edx, [ebp - 0x424]
push edx
call fcn.00446670
add esp, 0xc
push 0x46d0ec
push 0x104
lea eax, [ebp - 0x424]
push eax
push 0x46d104
push 0x46d108
push 0x46d124
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x424]
push ecx
call fcn.00444cf7
add esp, 4
test eax, eax
jne 0x40a39a
push 0
push 0x409
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0040d650
mov edx, dword [ebp - 0x430]
mov dword [edx + 0x88], 0
jmp 0x40a3c3
push 1
push 0x409
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0040d650
mov eax, dword [ebp - 0x430]
mov dword [eax + 0x88], 1
push 0x104
push 0
lea ecx, [ebp - 0x424]
push ecx
call fcn.00446670
add esp, 0xc
push 0x46d138
push 0x104
lea edx, [ebp - 0x424]
push edx
push 0x46d150
push 0x46d154
push str.CPOption
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x424]
push eax
call fcn.00444cf7
add esp, 4
test eax, eax
jne 0x40a43d
push 0
push 0x40a
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0040d650
mov ecx, dword [ebp - 0x430]
mov dword [ecx + 0x8c], 0
jmp 0x40a466
push 1
push 0x40a
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0040d650
mov edx, dword [ebp - 0x430]
mov dword [edx + 0x8c], 1
push 0x104
push 0
lea eax, [ebp - 0x424]
push eax
call fcn.00446670
add esp, 0xc
push 0x46d188
push 0x104
lea ecx, [ebp - 0x424]
push ecx
push 0x46d1a0
push 0x46d1a4
push 0x46d1b8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [ebp - 0x424]
push edx
call fcn.00444cf7
add esp, 4
test eax, eax
jne 0x40a4e0
push 0
push 0x427
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0040d650
mov eax, dword [ebp - 0x430]
mov dword [eax + 0xa8], 0
jmp 0x40a509
push 1
push 0x427
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0040d650
mov ecx, dword [ebp - 0x430]
mov dword [ecx + 0xa8], 1
push 0x104
push 0
lea edx, [ebp - 0x424]
push edx
call fcn.00446670
add esp, 0xc
push 0x46d1cc
push 0x104
lea eax, [ebp - 0x424]
push eax
push 0x46d1e4
push 0x46d1e8
push 0x46d1fc
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x424]
push ecx
call fcn.00444cf7
add esp, 4
test eax, eax
jne 0x40a583
push 0
push 0x426
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0040d650
mov edx, dword [ebp - 0x430]
mov dword [edx + 0xb0], 0
jmp 0x40a5ac
push 1
push 0x426
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0040d650
mov eax, dword [ebp - 0x430]
mov dword [eax + 0xb0], 1
push 0x104
push 0
lea ecx, [ebp - 0x424]
push ecx
call fcn.00446670
add esp, 0xc
push 0x46d210
push 0x104
lea edx, [ebp - 0x424]
push edx
push 0x46d228
push 0x46d22c
push str.APOption
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x424]
push eax
call fcn.00444cf7
add esp, 4
test eax, eax
jne 0x40a626
push 0
push 0x45a
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0040d650
mov ecx, dword [ebp - 0x430]
mov dword [ecx + 0xb4], 0
jmp 0x40a64f
push 1
push 0x45a
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0040d650
mov edx, dword [ebp - 0x430]
mov dword [edx + 0xb4], 1
push 0x104
push 0
lea eax, [ebp - 0x424]
push eax
call fcn.00446670
add esp, 0xc
push 0x46d250
push 0x104
lea ecx, [ebp - 0x424]
push ecx
push 0x46d268
push 0x46d26c
push 0x46d274
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [ebp - 0x424]
push edx
call fcn.00444cf7
add esp, 4
test eax, eax
jne 0x40a6c9
push 0
push 0x408
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0040d650
mov eax, dword [ebp - 0x430]
mov dword [eax + 0x27c], 0
jmp 0x40a6fd
push 1
push 0x408
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0040d650
mov ecx, dword [ebp - 0x430]
mov dword [ecx + 0x27c], 1
mov ecx, dword [ebp - 0x430]
call fcn.0040c1e0
push 0x104
push 0
lea edx, [ebp - 0x424]
push edx
call fcn.00446670
add esp, 0xc
push 0x46d288
push 0x104
lea eax, [ebp - 0x424]
push eax
push 0x46d2a0
push 0x46d2a4
push 0x46d2bc
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x424]
push ecx
call fcn.00444cf7
add esp, 4
test eax, eax
jne 0x40a75e
mov edx, dword [ebp - 0x430]
mov dword [edx + 0x38c], 0
jmp 0x40a76e
mov eax, dword [ebp - 0x430]
mov dword [eax + 0x38c], 1
push 0x104
push 0
lea ecx, [ebp - 0x424]
push ecx
call fcn.00446670
add esp, 0xc
push 0x46d2d8
push 0x104
lea edx, [ebp - 0x424]
push edx
push 0x46d2f0
push 0x46d2f4
push 0x46d2fc
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x424]
push eax
call fcn.00444cf7
add esp, 4
test eax, eax
jne 0x40a7cf
mov ecx, dword [ebp - 0x430]
mov dword [ecx + 0x390], 0
jmp 0x40a7df
mov edx, dword [ebp - 0x430]
mov dword [edx + 0x390], 1
push 0x104
push 0
lea eax, [ebp - 0x424]
push eax
call fcn.00446670
add esp, 0xc
push 0x46d318
push 0x104
lea ecx, [ebp - 0x424]
push ecx
push 0x46d330
push 0x46d334
push 0x46d340
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [ebp - 0x424]
push edx
call fcn.00444cf7
add esp, 4
test eax, eax
jne 0x40a840
mov eax, dword [ebp - 0x430]
mov dword [eax + 0x394], 0
jmp 0x40a850
mov ecx, dword [ebp - 0x430]
mov dword [ecx + 0x394], 1
push 0x104
push 0
lea edx, [ebp - 0x424]
push edx
call fcn.00446670
add esp, 0xc
push 0x46d35c
push 0x104
lea eax, [ebp - 0x424]
push eax
push 0x46d374
push 0x46d378
push 0x46d380
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x424]
push ecx
call fcn.00444cf7
add esp, 4
test eax, eax
jne 0x40a8b1
mov edx, dword [ebp - 0x430]
mov dword [edx + 0x398], 0
jmp 0x40a8c1
mov eax, dword [ebp - 0x430]
mov dword [eax + 0x398], 1
push 0x104
push 0
lea ecx, [ebp - 0x424]
push ecx
call fcn.00446670
add esp, 0xc
push 0x46d39c
push 0x104
lea edx, [ebp - 0x424]
push edx
push 0x46d3b4
push 0x46d3b8
push str.ButtonOption
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x424]
push eax
call fcn.00444cf7
add esp, 4
test eax, eax
jne 0x40a922
mov ecx, dword [ebp - 0x430]
mov dword [ecx + 0x39c], 0
jmp 0x40a932
mov edx, dword [ebp - 0x430]
mov dword [edx + 0x39c], 1
push 0x104
push 0
lea eax, [ebp - 0x424]
push eax
call fcn.00446670
add esp, 0xc
push 0x46d3e8
push 0x104
lea ecx, [ebp - 0x424]
push ecx
push 0x46d400
push 0x46d404
push 0x46d420
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [ebp - 0x424]
push edx
call fcn.00444cf7
add esp, 4
test eax, eax
jne 0x40aa78
mov eax, dword [ebp - 0x430]
mov dword [eax + 0x3a0], 0
push 0
push 0x427
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0042bc66
push 0
push 0x402
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0042bc66
push 0
push 0x403
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0042bc66
push 0
push 0x404
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0042bc66
push 0
push 0x409
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0042bc66
push 0
push 0x40a
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0042bc66
push 0
push 0x426
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0042bc66
push 0
push 0x45a
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0042bc66
push 0
push 0x408
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0042bc66
jmp 0x40aa88
mov ecx, dword [ebp - 0x430]
mov dword [ecx + 0x3a0], 1
push 0x104
push 0
lea edx, [ebp - 0x424]
push edx
call fcn.00446670
add esp, 0xc
push 0x46d430
push 0x104
lea eax, [ebp - 0x424]
push eax
push 0x46d448
push 0x46d44c
push str.Option
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x424]
push ecx
call fcn.00444cf7
add esp, 4
test eax, eax
jne 0x40ab09
push 0
push 0x40a
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0042bc66
push 0
push 0x409
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0042bc66
push 0x104
push 0
lea edx, [ebp - 0x424]
push edx
call fcn.00446670
add esp, 0xc
push str..Odin3.ini
push 0x104
lea eax, [ebp - 0x424]
push eax
push 0x46d48c
push 0x46d490
push 0x46d498
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x424]
push ecx
call fcn.00444cf7
add esp, 4
test eax, eax
jne 0x40ab8f
push 1
push 0x421
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0042bc24
push 0
push 0x423
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0042bc24
jmp 0x40ac63
push 0
push 0
push 0x13a0
mov ecx, dword [ebp - 0x430]
call fcn.00405080
push 0
push 0x421
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0042bc24
push 1
push 0x423
mov ecx, dword [ebp - 0x430]
call fcn.0042ba44
mov ecx, eax
call fcn.0042bc24
lea ecx, [ebp - 0x42c]
call fcn.00401ef0
mov dword [ebp - 4], 0
push 0x6f
lea ecx, [ebp - 0x42c]
call fcn.00405490
push 0
mov ecx, dword [ebp - 0x430]
call fcn.0040d8c0
mov dword [ebp - 0x428], eax
cmp dword [ebp - 0x428], 0
je 0x40ac51
lea ecx, [ebp - 0x42c]
call fcn.0040cea0
movzx edx, al
test edx, edx
jne 0x40ac51
push 0
push 0
push 0x800
mov ecx, dword [ebp - 0x428]
call fcn.0040d890
lea ecx, [ebp - 0x42c]
call fcn.00401ba0
push eax
push 0x20
push 0
mov ecx, dword [ebp - 0x428]
call fcn.0040d890
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x42c]
call fcn.00401d90
push 0x104
push 0
lea eax, [ebp - 0x424]
push eax
call fcn.00446670
add esp, 0xc
mov ecx, dword [ebp - 0x430]
call fcn.0040c520
push 0
mov ecx, dword [ebp - 0x430]
call fcn.00428418
mov ecx, dword [ebp - 0x430]
mov edx, dword [ebp - 0x430]
mov eax, dword [edx + 0x7c]
mov dword [ecx + 0x368], eax
mov ecx, dword [ebp - 0x430]
mov edx, dword [ebp - 0x430]
mov eax, dword [edx + 0x80]
mov dword [ecx + 0x36c], eax
mov ecx, dword [ebp - 0x430]
mov edx, dword [ebp - 0x430]
mov eax, dword [edx + 0x88]
mov dword [ecx + 0x370], eax
mov ecx, dword [ebp - 0x430]
mov edx, dword [ebp - 0x430]
mov eax, dword [edx + 0x8c]
mov dword [ecx + 0x374], eax
mov ecx, dword [ebp - 0x430]
mov edx, dword [ebp - 0x430]
mov eax, dword [edx + 0xa8]
mov dword [ecx + 0x378], eax
mov ecx, dword [ebp - 0x430]
mov edx, dword [ebp - 0x430]
mov eax, dword [edx + 0x27c]
mov dword [ecx + 0x37c], eax
mov ecx, dword [ebp - 0x430]
mov edx, dword [ebp - 0x430]
mov eax, dword [edx + 0xb0]
mov dword [ecx + 0x384], eax
mov ecx, dword [ebp - 0x430]
mov edx, dword [ebp - 0x430]
mov eax, dword [edx + 0xb4]
mov dword [ecx + 0x388], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00443e25
mov esp, ebp
pop ebp
ret