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

Disassembly:
mov eax, 0x54b0
call fcn.0042bdd0
mov eax, dword [0x44d6b0]
xor eax, esp
mov dword [esp + 0x54ac], eax
push esi
push edi
mov edi, dword [esp + 0x54bc]
push 0x8fc
mov dword [esp + 0x10], edi
call dword [sym.imp.KERNEL32.dll_Sleep]
mov esi, dword [sym.imp.USER32.dll_LoadStringA]
push 0x14
push 0x44ee8c
push 1
push edi
call esi
push 0x14
push 0x44eee0
push 1
push edi
call esi
mov eax, dword [esp + 0x54c8]
push eax
push edi
call fcn.0040a800
add esp, 8
test eax, eax
je 0x40ae8e
push ebx
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push str..OiddInfo.ini
push 0xff
lea ecx, [esp + 0x53c4]
push ecx
push 0x4414a4
push str.GAME_ID
push str.OIDD
call ebp
mov eax, dword [0x4418e8]
mov edx, dword [str.A240307001]
mov cx, word [0x4418ec]
push str..OiddInfo.ini
push 8
mov dword [0x44ef20], eax
lea eax, [esp + 0x53c4]
push eax
push 0x4414a4
mov dword [0x44ef1c], edx
mov dl, byte [0x4418ee]
push str.COM_PORT
push str.OIDD
mov word [0x44ef24], cx
mov byte [0x44ef26], dl
call ebp
xor ebx, ebx
xor eax, eax
jmp 0x40a9a0
mov cl, byte [esp + eax + 0x53bc]
mov byte [eax + 0x44ef38], cl
inc eax
test cl, cl
jne 0x40a9a0
push 0x38
call fcn.00429f50
add esp, 4
cmp eax, ebx
je 0x40a9c9
mov ecx, eax
call fcn.00404690
jmp 0x40a9cb
xor eax, eax
push 0x4b00
push 0x44ef38
mov ecx, eax
mov dword [0x44eed4], eax
call fcn.004049a0
push 0x1abc
mov dword [esp + 0x1c], eax
call fcn.00429f50
add esp, 4
cmp eax, ebx
je 0x40a9ff
mov ecx, eax
call fcn.00403820
jmp 0x40aa01
xor eax, eax
mov ecx, dword [0x44eed4]
push 0x44ef1c
push ecx
mov ecx, eax
mov dword [0x44eec0], eax
call fcn.004041d0
mov ecx, dword [0x44eec0]
xor eax, eax
push 0x451ee0
mov dword [0x451ee0], eax
mov dword [0x451ee4], eax
mov dword [0x451ee8], eax
mov dword [0x451eec], eax
mov byte [0x451ef0], al
call fcn.00403770
xor edx, edx
mov dword [0x451ef4], edx
xor eax, eax
mov edi, edi
test al, 7
jne 0x40aa6c
cmp eax, ebx
je 0x40aa6c
mov cl, byte [eax + 0x451ee0]
test cl, cl
je 0x40aa75
movzx ecx, cl
shr ecx, 1
imul edx, ecx
jmp 0x40aa75
movzx ecx, byte [eax + 0x451ee0]
add edx, ecx
inc eax
cmp eax, 0x11
jl 0x40aa50
mov dword [0x451ef4], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.0042bcbe
mov edi, dword [sym.imp.WINMM.dll_timeGetTime]
add esp, 4
call edi
push eax
call fcn.0042bcbe
push ebx
call fcn.0042bcf2
push eax
call fcn.0042bcbe
push 0x2c
call fcn.00429f50
add esp, 0x10
cmp eax, ebx
je 0x40aac1
mov ecx, eax
call fcn.00408960
jmp 0x40aac3
xor eax, eax
push 0x3ac
mov dword [0x44ef18], eax
call fcn.00429f50
add esp, 4
cmp eax, ebx
je 0x40aae2
mov ecx, eax
call fcn.00420020
jmp 0x40aae4
xor eax, eax
mov ecx, eax
mov dword [0x44ed40], eax
call fcn.00421540
mov ecx, dword [0x44ed40]
call fcn.004203b0
mov eax, dword [0x44ed40]
dec dword [eax + 0x3a8]
add eax, 0x3a8
cmp dword [eax], ebx
jle 0x40ace7
mov eax, dword [0x451f2c]
cmp eax, ebx
je 0x40ab2b
push eax
call fcn.00429f2a
add esp, 4
mov dword [0x451f2c], ebx
push 0x24
call fcn.00429f50
push eax
mov dword [0x451f2c], eax
call fcn.0042bd43
mov eax, dword [0x451f2c]
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x10]
imul edx, edx, 0x64
lea edx, [edx + ecx + 0x2e631]
imul edx, edx, 0x64
add edx, dword [eax + 0xc]
add esp, 8
cmp edx, 0x1357662
jl 0x40ab87
call fcn.0042bcd0
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x14
jg 0x40ab87
push str.Codemc.se
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
xor eax, eax
jmp 0x40ae8c
push 0x44146c
push str.Codemc.se
mov dword [0x4506b0], ebx
call fcn.0042aa6f
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x40ace7
push esi
push 1
lea edx, [esp + 0x40]
push 0x4000
push edx
call fcn.0042a98e
push esi
call fcn.0042a672
add esp, 0x14
lea ecx, [esp + 0x4038]
mov dword [esp + 0x10], ebx
call fcn.00429890
xor esi, esi
cmp esi, 0x3f5
jne 0x40ac07
mov ecx, dword [esp + 0x100c]
mov edx, dword [0x451ef4]
lea eax, [esp + 0x10]
push eax
push ecx
push edx
lea ecx, [esp + 0x4044]
call fcn.00429400
mov dword [esp + 0x100c], eax
jmp 0x40ac2e
cmp esi, 0x3f4
je 0x40ac2e
mov ecx, dword [esp + esi*4 + 0x38]
lea eax, [esp + 0x10]
push eax
push ecx
push 0x1f0f771
lea ecx, [esp + 0x4044]
call fcn.00429400
mov dword [esp + esi*4 + 0x38], eax
inc esi
cmp esi, 0x1000
jl 0x40abd6
movzx ecx, word [esp + 0x4b0]
movzx edx, word [esp + 0x1f0]
movzx eax, word [esp + 0x320]
mov word [0x44d060], cx
movzx ecx, word [esp + 0x2188]
mov word [str.123456789], dx
movzx edx, word [esp + 0x11d0]
mov word [0x44d05e], ax
movzx eax, word [esp + 0x1278]
mov word [0x44d066], cx
movzx ecx, word [esp + 0x32f0]
mov word [0x44d062], dx
movzx edx, word [esp + 0x2300]
mov word [0x44d064], ax
movzx eax, word [esp + 0x3164]
mov word [0x44d06c], cx
lea ecx, [esp + 0x4038]
mov word [0x44d068], dx
mov word [0x44d06a], ax
call fcn.00427d90
cmp dword [esp + 0x100c], 0x131f1ef
je 0x40acee
push ebx
call dword [sym.imp.USER32.dll_PostQuitMessage]
lea ecx, [esp + 0x4038]
call fcn.004299f0
xor eax, eax
jmp 0x40ae8c
mov ecx, dword [0x451f2c]
mov eax, dword [ecx + 0x10]
cdq
mov esi, 0xa
idiv esi
mov eax, dword [esp + 0x14]
imul edx, edx, 0x64
add edx, dword [ecx + 0xc]
imul edx, edx, 0x64
add edx, dword [ecx + 8]
imul edx, edx, 0x64
add edx, dword [ecx + 4]
imul edx, edx, 0x64
add edx, dword [ecx]
mov dword [0x452250], edx
mov edx, dword [esp + 0x54d0]
push edx
push eax
call fcn.00409e00
add esp, 8
test eax, eax
je 0x40acdb
push ebx
call dword [sym.imp.USER32.dll_ShowCursor]
push 1
call dword [sym.imp.WINMM.dll_timeBeginPeriod]
call edi
push str..OiddInfo.ini
push 8
lea ecx, [esp + 0x53c4]
push ecx
push 0x4414a4
push str.COM_PORT
push str.GAME
mov dword [0x4522a0], ebx
call ebp
xor eax, eax
mov edi, edi
mov cl, byte [esp + eax + 0x53bc]
mov byte [eax + 0x44ef38], cl
inc eax
test cl, cl
jne 0x40ad70
push 0x44ef3b
call fcn.0042bba4
add esp, 4
and eax, 0x80000001
jns 0x40ad9b
dec eax
or eax, 0xfffffffe
inc eax
mov edi, dword [sym.imp.USER32.dll_PeekMessageA]
mov ebp, dword [sym.imp.USER32.dll_GetMessageA]
dec eax
neg eax
sbb eax, eax
inc eax
mov dword [0x44f288], ebx
mov ebx, dword [sym.imp.USER32.dll_TranslateMessage]
mov dword [0x4506b4], eax
mov edi, edi
push 0
push 0
push 0
push 0
lea edx, [esp + 0x2c]
push edx
call edi
test eax, eax
je 0x40adfc
push 0
push 0
push 0
lea eax, [esp + 0x28]
push eax
call ebp
test eax, eax
je 0x40ae7a
lea ecx, [esp + 0x1c]
push ecx
call ebx
lea edx, [esp + 0x1c]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x40adc0
call dword [sym.imp.WINMM.dll_timeGetTime]
mov esi, eax
cmp dword [0x44fac0], esi
jae 0x40adc0
mov ecx, dword [0x44ef18]
call fcn.00409620
mov eax, dword [0x44ef18]
cmp word [eax + 0x1e], 5
jne 0x40ae48
cmp dword [esp + 0x18], 0
je 0x40ae37
mov ecx, dword [0x44eec0]
call fcn.00403950
jmp 0x40ae48
mov dword [0x44f054], 0xca
mov byte [0x451ed5], 1
cmp dword [0x44c150], 0
je 0x40ae5c
mov ecx, dword [0x44ef18]
call fcn.004093b0
mov ecx, dword [0x44ef18]
call fcn.00409330
call fcn.00409e50
add esi, 0x1c
mov dword [0x44fac0], esi
jmp 0x40adc0
mov esi, dword [esp + 0x24]
lea ecx, [esp + 0x4038]
call fcn.004299f0
mov eax, esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x54b4]
pop edi
pop esi
xor ecx, esp
call fcn.00429e93
add esp, 0x54b0
ret 0x10