Function at 0x40af60
Capabilities:
Delete file
Read .ini file
Read file on windows

Disassembly:
mov eax, 0x448c
call fcn.0042f270
mov eax, dword [0x451c10]
xor eax, esp
mov dword [esp + 0x4488], eax
push ebx
push ebp
mov ebp, dword [esp + 0x4498]
push esi
mov esi, dword [sym.imp.USER32.dll_LoadStringA]
push edi
push 0x14
push 0x453454
push 1
push ebp
call esi
push 0x14
push 0x4534a8
push 1
push ebp
call esi
lea eax, [esp + 0x4214]
push eax
call fcn.00402b50
xor esi, esi
xor edi, edi
add esp, 4
mov dword [0x45640c], esi
mov dword [esp + 0x10], edi
xor ebx, ebx
cmp dword [esp + 0x422c], 0x10
mov eax, dword [esp + 0x4218]
jae 0x40afd9
lea eax, [esp + 0x4218]
movsx eax, byte [eax + esi]
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x40b014
cmp edi, 7
jge 0x40b014
fld qword [0x4458e0]
fild dword [esp + 0x10]
call fcn.0042efa0
fimul dword [esp + 0x14]
fiadd dword [0x45640c]
call fcn.0042d5b0
inc edi
mov dword [0x45640c], eax
mov dword [esp + 0x10], edi
jmp 0x40b036
mov ecx, dword [0x45640c]
push ecx
call fcn.0042edce
add esp, 4
call fcn.0042ede0
cdq
mov ecx, 0x7fff
idiv ecx
add dword [0x45640c], edx
inc esi
cmp esi, 0xc
jl 0x40afc1
mov eax, dword [0x456448]
cmp eax, ebx
je 0x40b054
push eax
call fcn.0042cf8a
add esp, 4
mov dword [0x456448], ebx
push 0x24
call fcn.0042cfb0
push eax
mov dword [0x456448], eax
call fcn.0042f1ea
mov eax, dword [0x456448]
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x10]
imul edx, edx, 0x64
lea esi, [edx + ecx + 0x2e631]
imul esi, esi, 0x64
add esi, dword [eax + 0xc]
add esp, 8
cmp esi, 0x13500cf
jl 0x40b09e
call fcn.0042ede0
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0xa
jl 0x40b0a6
cmp esi, 0x135025f
jl 0x40b0d2
push str.Code_smc.se
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [esp + 0x422c], 0x10
jb 0x40b0cb
mov edx, dword [esp + 0x4218]
push edx
call fcn.0042cf8a
add esp, 4
xor eax, eax
jmp 0x40b4f4
push 0x44546c
push str.Code_smc.se
mov dword [0x456408], ebx
call fcn.0042dacf
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x40b111
cmp dword [esp + 0x422c], 0x10
jb 0x40b0cb
mov eax, dword [esp + 0x4218]
push eax
call fcn.0042cf8a
add esp, 4
xor eax, eax
jmp 0x40b4f4
push 0x27
lea ecx, [esp + 0x4235]
push ebx
push ecx
mov byte [esp + 0x423c], bl
call fcn.0042cf10
push esi
push 1
lea edx, [esp + 0x48]
push 0x41e0
push edx
call fcn.0042d9ee
push esi
call fcn.0042d6d2
push 0x27
lea eax, [esp + 0x427d]
push ebx
push eax
mov byte [esp + 0x4284], bl
call fcn.0042cf10
push 0x143d4b9b
call fcn.0042edce
add esp, 0x30
mov esi, 0x1078
lea esp, [esp]
call fcn.0042ede0
sub esi, 1
jne 0x40b170
lea esi, [esp + 0x4258]
mov edi, 0x20
call fcn.0042ede0
cdq
mov ecx, 0x1078
idiv ecx
cmp dword [esp + edx*4 + 0x34], ebx
lea eax, [esp + edx*4 + 0x34]
je 0x40b1a2
mov dl, byte [eax]
mov byte [esi], dl
inc esi
sub edi, 1
jne 0x40b186
cmp dword [esp + 0x422c], 0x10
mov ecx, dword [esp + 0x4218]
jae 0x40b1bf
lea ecx, [esp + 0x4218]
lea edx, [esp + 0x4230]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x40b1c6
xor esi, esi
jmp 0x40b1e0
movsx eax, byte [esp + esi + 0x4230]
add dword [0x456408], eax
cmp eax, ebx
jne 0x40b205
call fcn.0042ede0
cdq
mov ecx, 0x64
idiv ecx
add dword [0x456408], edx
inc esi
cmp esi, 0x20
jl 0x40b1e0
mov esi, dword [esp + 0x422c]
mov edi, dword [esp + 0x4218]
mov eax, edi
cmp esi, 0x10
jae 0x40b227
lea eax, [esp + 0x4218]
lea ecx, [esp + 0x4258]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40b250
test dl, dl
je 0x40b24c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40b250
add eax, 2
add ecx, 2
test dl, dl
jne 0x40b230
xor eax, eax
jmp 0x40b255
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x40b272
cmp esi, 0x10
jb 0x40b0cb
push edi
call fcn.0042cf8a
add esp, 4
xor eax, eax
jmp 0x40b4f4
mov edx, dword [esp + 0x44ac]
push edx
push ebp
call fcn.0040ae70
add esp, 8
test eax, eax
je 0x40b0f0
push ebx
call fcn.0042ee02
push eax
call fcn.0042edce
add esp, 8
push ebx
call dword [sym.imp.USER32.dll_ShowCursor]
mov esi, 1
push esi
call dword [sym.imp.WINMM.dll_timeBeginPeriod]
call dword [sym.imp.WINMM.dll_timeGetTime]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push str..OiddInfo.ini
push 8
lea ecx, [esp + 0x43a0]
push ecx
push 0x4454bd
push str.COM_PORT
push str.GAME
mov dword [0x4567b8], ebx
call edi
xor eax, eax
mov cl, byte [esp + eax + 0x4398]
mov byte [eax + 0x453500], cl
add eax, esi
test cl, cl
jne 0x40b2e1
push 0x453503
call fcn.0042ecb4
add esp, 4
and eax, 0x80000001
jns 0x40b30d
dec eax
or eax, 0xfffffffe
inc eax
sub eax, esi
neg eax
sbb eax, eax
inc eax
mov dword [0x454be0], eax
xor eax, eax
jmp 0x40b320
mov dword [esp + eax*8 + 0x4280], esi
add eax, esi
cmp eax, 0x23
jl 0x40b320
mov ebx, dword [sym.imp.USER32.dll_PeekMessageA]
push 0
push 0
push 0
push 0
lea edx, [esp + 0x28]
push edx
call ebx
test eax, eax
je 0x40b378
push 0
push 0
push 0
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x40b4d4
lea ecx, [esp + 0x18]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x40b334
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ebp, eax
cmp dword [0x453848], ebp
jae 0x40b334
mov ecx, dword [0x4534e0]
call fcn.00409ca0
mov eax, dword [0x4534e0]
cmp word [eax + 0x20], 4
jne 0x40b4a2
push str..OiddInfo.ini
push 0xff
lea ecx, [esp + 0x4288]
push ecx
push 0x4454bd
push str.GAME_ID
push str.OIDD
call edi
xor eax, eax
jmp 0x40b3d0
mov cl, byte [esp + eax + 0x4280]
mov byte [eax + 0x4534e4], cl
inc eax
test cl, cl
jne 0x40b3d0
push str..OiddInfo.ini
push 8
lea edx, [esp + 0x4288]
push edx
push 0x4454bd
push str.COM_PORT
push str.OIDD
call edi
xor eax, eax
jmp 0x40b410
mov cl, byte [esp + eax + 0x4280]
mov byte [eax + 0x453500], cl
inc eax
test cl, cl
jne 0x40b410
push 0x38
call fcn.0042cfb0
add esp, 4
test eax, eax
je 0x40b439
mov ecx, eax
call fcn.00404bd0
jmp 0x40b43b
xor eax, eax
push 0x4b00
push 0x453500
mov ecx, eax
mov dword [0x45349c], eax
call fcn.00404ed0
push 0x1abc
mov esi, eax
call fcn.0042cfb0
add esp, 4
test eax, eax
je 0x40b46d
mov ecx, eax
call fcn.00403cb0
jmp 0x40b46f
xor eax, eax
mov ecx, dword [0x45349c]
push 0x4534e4
push ecx
mov ecx, eax
mov dword [0x453488], eax
call fcn.00404720
test esi, esi
je 0x40b498
mov ecx, dword [0x453488]
call fcn.00403dd0
jmp 0x40b4a2
mov dword [0x45361c], 0xca
cmp dword [0x451120], 0
je 0x40b4b6
mov ecx, dword [0x4534e0]
call fcn.004099e0
mov ecx, dword [0x4534e0]
call fcn.00409960
call fcn.0040a590
add ebp, 0x1e
mov dword [0x453848], ebp
jmp 0x40b334
cmp dword [esp + 0x422c], 0x10
mov esi, dword [esp + 0x20]
jb 0x40b4f2
mov edx, dword [esp + 0x4218]
push edx
call fcn.0042cf8a
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x4498]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0042cefe
add esp, 0x448c
ret 0x10