Function at 0x533143
Capabilities:
Check if file exists
Get file attributes
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2b0
push ebx
push esi
push edi
mov dword [ebp - 0x108], 0x20
mov dword [ebp - 0x10c], 0
mov ecx, 0x41
xor eax, eax
lea edi, [ebp - 0x104]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x104]
push eax
call fcn.00529440
add esp, 4
push str.UFD_ALL_FORCEID_
lea ecx, [ebp - 0x104]
push ecx
call fcn.0054bea0
add esp, 8
lea edi, [ebp - 0x104]
mov edx, dword [ebp + 0xc]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov eax, ecx
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x673ea0]
mov dword [ebp - 0x2b0], ecx
mov edx, dword [ebp - 0x2b0]
sub edx, 1
mov dword [ebp - 0x2b0], edx
cmp dword [ebp - 0x2b0], 5
ja case.default.0x5331e9
mov eax, dword [ebp - 0x2b0]
jmp dword [eax*4 + 0x533790]
push str.SM325AC.FID
lea ecx, [ebp - 0x104]
push ecx
call fcn.0054bea0
add esp, 8
push str.SM325AC_
mov edx, dword [ebp + 0xc]
push edx
call fcn.0054bea0
add esp, 8
jmp 0x5332f2
push str.SM3252A.FID
lea eax, [ebp - 0x104]
push eax
call fcn.0054bea0
add esp, 8
push str.SM3252A_
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0054bea0
add esp, 8
jmp 0x5332f2
push str.SM3252B.FID
lea edx, [ebp - 0x104]
push edx
call fcn.0054bea0
add esp, 8
push str.SM3252B_
mov eax, dword [ebp + 0xc]
push eax
call fcn.0054bea0
add esp, 8
jmp 0x5332f2
push str.SM3211BC.FID
lea ecx, [ebp - 0x104]
push ecx
call fcn.0054bea0
add esp, 8
push str.SM3211BC_
mov edx, dword [ebp + 0xc]
push edx
call fcn.0054bea0
add esp, 8
jmp 0x5332f2
push str.SM3211BC1.FID
lea eax, [ebp - 0x104]
push eax
call fcn.0054bea0
add esp, 8
push str.SM3211BC1_
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0054bea0
add esp, 8
jmp 0x5332f2
push str.SM3252C.FID
lea edx, [ebp - 0x104]
push edx
call fcn.0054bea0
add esp, 8
push str.SM3252C_
mov eax, dword [ebp + 0xc]
push eax
call fcn.0054bea0
add esp, 8
jmp 0x5332f2
mov ecx, 0x41
xor eax, eax
lea edi, [ebp - 0x104]
rep stosd dword es:[edi], eax
lea edi, [ebp - 0x104]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
add ecx, 0xffffffff
test ecx, ecx
je 0x533773
lea ecx, [ebp - 0x104]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x533773
mov dword [ebp - 0x2a4], 0
mov dword [ebp - 0x218], 9
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x260], 0
mov dword [ebp - 0x110], 0x10
cmp dword [0x673ea0], 0
jl 0x533370
cmp dword [0x673ea0], 7
jg 0x533370
mov dword [ebp - 0x110], 8
mov dword [ebp - 0x25c], 0
jmp 0x53338b
mov edx, dword [ebp - 0x25c]
add edx, 1
mov dword [ebp - 0x25c], edx
cmp dword [ebp - 0x25c], 8
jge 0x5333db
mov eax, dword [ebp - 0x25c]
imul eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x108]
add ecx, eax
mov edx, dword [ebp + 8]
xor eax, eax
mov al, byte [edx + ecx]
test eax, eax
je 0x5333d9
cmp dword [ebp - 0x218], 9
jne 0x5333ca
mov ecx, dword [ebp - 0x25c]
mov dword [ebp - 0x218], ecx
mov edx, dword [ebp - 0x2a8]
add edx, 1
mov dword [ebp - 0x2a8], edx
jmp 0x53337c
cmp dword [0x673ea0], 8
jl 0x5333f7
cmp dword [0x673ea0], 0x16
jg 0x5333f7
mov dword [ebp - 0x108], 0x30
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x108]
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x108]
lea edx, [eax + edx*4]
mov eax, dword [ebp + 8]
xor ebx, ebx
mov bl, byte [eax + edx]
cmp ecx, ebx
jne 0x5334bc
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x108]
xor edx, edx
mov dl, byte [ecx + 1]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x108]
lea eax, [ecx + eax + 1]
mov ecx, dword [ebp - 0x110]
xor ebx, ebx
mov bl, byte [eax + ecx*4]
cmp edx, ebx
jne 0x5334bc
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x108]
xor eax, eax
mov al, byte [edx + 2]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x108]
lea ecx, [edx + ecx + 2]
mov edx, dword [ebp - 0x110]
xor ebx, ebx
mov bl, byte [ecx + edx*4]
cmp eax, ebx
jne 0x5334bc
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x108]
xor ecx, ecx
mov cl, byte [eax + 3]
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x108]
lea edx, [eax + edx + 3]
mov eax, dword [ebp - 0x110]
xor ebx, ebx
mov bl, byte [edx + eax*4]
cmp ecx, ebx
jne 0x5334bc
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x108]
xor edx, edx
mov dl, byte [ecx]
test edx, edx
je 0x5334bc
mov dword [ebp - 0x260], 1
mov eax, dword [ebp - 0x218]
imul eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x108]
add ecx, eax
mov edx, dword [ebp + 8]
xor eax, eax
mov al, byte [edx + ecx + 3]
push eax
mov ecx, dword [ebp - 0x218]
imul ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 0x108]
add edx, ecx
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax + edx + 2]
push ecx
mov edx, dword [ebp - 0x218]
imul edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x108]
add eax, edx
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx + eax + 1]
push edx
mov eax, dword [ebp - 0x218]
imul eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x108]
add ecx, eax
mov edx, dword [ebp + 8]
xor eax, eax
mov al, byte [edx + ecx]
push eax
push str.FLASH__.2X_.2X_.2X_.2XCENO
lea ecx, [ebp - 0x258]
push ecx
call fcn.0054c6e3
add esp, 0x18
lea edx, [ebp - 0x104]
push edx
push 0
lea eax, [ebp - 0x258]
push eax
push 0x5cc2d0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [ebp - 0x2a4]
cmp ecx, dword [ebp - 0x2a8]
jle 0x533581
xor eax, eax
jmp 0x533789
mov edx, dword [ebp - 0x218]
imul edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x108]
add eax, edx
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx + eax + 3]
push edx
mov eax, dword [ebp - 0x218]
imul eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x108]
add ecx, eax
mov edx, dword [ebp + 8]
xor eax, eax
mov al, byte [edx + ecx + 2]
push eax
mov ecx, dword [ebp - 0x218]
imul ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 0x108]
add edx, ecx
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax + edx + 1]
push ecx
mov edx, dword [ebp - 0x218]
imul edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x108]
add eax, edx
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx + eax]
push edx
push str.FLASH__.2X_.2X_.2X_.2XMODE
lea eax, [ebp - 0x258]
push eax
call fcn.0054c6e3
add esp, 0x18
lea ecx, [ebp - 0x104]
push ecx
push 0x40
lea edx, [ebp - 0x2a0]
push edx
push 0x6858e0
lea eax, [ebp - 0x258]
push eax
push 0x5cc2f4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0x2a0]
push ecx
call fcn.0054c571
add esp, 4
mov edx, dword [ebp + 0x10]
mov dword [edx], eax
mov eax, dword [ebp - 0x218]
imul eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x108]
add ecx, eax
mov edx, dword [ebp + 8]
xor eax, eax
mov al, byte [edx + ecx + 3]
push eax
mov ecx, dword [ebp - 0x218]
imul ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 0x108]
add edx, ecx
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax + edx + 2]
push ecx
mov edx, dword [ebp - 0x218]
imul edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x108]
add eax, edx
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx + eax + 1]
push edx
mov eax, dword [ebp - 0x218]
imul eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x108]
add ecx, eax
mov edx, dword [ebp + 8]
xor eax, eax
mov al, byte [edx + ecx]
push eax
push str.FLASH__.2X_.2X_.2X_.2XFILE
lea ecx, [ebp - 0x258]
push ecx
call fcn.0054c6e3
add esp, 0x18
lea edx, [ebp - 0x104]
push edx
push 0x104
lea eax, [ebp - 0x214]
push eax
push 0x6858e4
lea ecx, [ebp - 0x258]
push ecx
push str.FORCEID
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [ebp - 0x214]
push edx
mov eax, dword [ebp + 0xc]
push eax
call fcn.0054bea0
add esp, 8
mov ecx, dword [ebp + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x533761
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [ebp - 0x2ac], eax
mov eax, dword [ebp - 0x2ac]
and eax, 0x20
test eax, eax
je 0x53374f
mov dword [ebp - 0x10c], 1
jmp 0x53375f
mov dword [ebp - 0x10c], 0
mov ecx, dword [ebp + 0xc]
mov byte [ecx], 0
jmp 0x533771
mov dword [ebp - 0x10c], 0
mov edx, dword [ebp + 0xc]
mov byte [edx], 0
jmp 0x533783
mov eax, dword [ebp + 0xc]
mov byte [eax], 0
mov dword [ebp - 0x10c], 0
mov eax, dword [ebp - 0x10c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret