Function at 0x1d53170
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x224
mov eax, dword [0x1d89190]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
cmp byte [eax + 4], 1
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov dword [ebp - 0x224], eax
jne 0x1d531a3
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
push eax
call edx
add esp, 4
push 0x103
lea eax, [ebp - 0x217]
push 0
push eax
mov byte [ebp - 0x218], 0
call sub.MSVCR100.dll_memset
push esi
mov esi, dword [sym.imp.MSVCR100.dll__snprintf]
push str._sGameLevel.ini
lea ecx, [ebp - 0x218]
push 0x104
push ecx
call esi
xor eax, eax
push 0xff
push eax
lea edx, [ebp - 0x113]
push edx
mov dword [ebp - 0x220], 0
mov byte [ebp - 0x14], 0
mov dword [ebp - 0x13], eax
mov dword [ebp - 0xf], eax
mov dword [ebp - 0xb], eax
mov word [ebp - 7], ax
mov byte [ebp - 5], al
mov byte [ebp - 0x114], al
call sub.MSVCR100.dll_memset
push 1
push str.LevelItem_d
lea eax, [ebp - 0x14]
push 0x10
push eax
call esi
add esp, 0x38
lea ecx, [ebp - 0x218]
push ecx
push pe_nt_image_headers32
lea edx, [ebp - 0x114]
push edx
push 0x1d6e838
lea eax, [ebp - 0x14]
push eax
push str.LevelDescribe
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x114], 0
je 0x1d53447
mov edx, dword [0x1d890f4]
test edx, edx
jle 0x1d532b6
lea ecx, [edx - 1]
test ecx, ecx
js 0x1d53470
cmp ecx, edx
jge 0x1d53470
mov eax, dword [0x1d890e8]
mov esi, dword [eax + ecx*4]
lea edi, [eax + ecx*4]
lea eax, [ecx + 1]
cmp eax, edx
jg 0x1d53470
mov eax, edx
sub eax, ecx
dec eax
test eax, eax
jle 0x1d532ad
lea ecx, [eax*4]
push ecx
lea edx, [edi + 4]
push edx
push edi
call dword [sym.imp.MSVCR100.dll_memmove]
mov edx, dword [0x1d890f4]
add esp, 0xc
dec edx
mov dword [0x1d890f4], edx
jmp 0x1d532ca
push 0x18
call sub.mfc100.dll_Ordinal_1294
mov esi, eax
add esp, 4
test esi, esi
je 0x1d53475
test esi, esi
je 0x1d53475
xor ecx, ecx
mov dword [esi], 0
mov dword [esi + 4], 0
mov byte [esi + 8], 0
xor edx, edx
jmp 0x1d532f0
movzx eax, dx
mov al, byte [ebp + eax - 0x114]
cmp al, 0x2c
je 0x1d5331a
test al, al
je 0x1d5331a
test cx, cx
jne 0x1d5330b
cmp al, 0x20
je 0x1d53313
movzx edi, cx
mov byte [edi + esi + 8], al
inc ecx
inc edx
cmp dx, 0xf
jb 0x1d532f0
movzx ecx, cx
mov byte [ecx + esi + 8], 0
movzx ecx, dx
lea ecx, [ebp + ecx - 0x114]
lea esp, [esp]
mov al, byte [ecx]
test al, al
jle 0x1d5333a
cmp al, 0x30
jl 0x1d5333e
cmp al, 0x39
jle 0x1d53341
inc ecx
jmp 0x1d53330
mov dl, byte [ecx]
mov dword [ebp - 0x21c], ecx
cmp dl, 0x30
jl 0x1d53397
mov edi, edi
cmp dl, 0x39
jg 0x1d53397
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edi, eax
mov ebx, ecx
shld ecx, eax, 2
add eax, eax
add eax, eax
add edi, eax
adc ebx, ecx
shld ebx, edi, 1
movsx eax, dl
cdq
add edi, edi
add edi, eax
mov eax, dword [ebp - 0x21c]
adc ebx, edx
sub edi, 0x30
sbb ebx, 0
inc eax
mov dword [esi], edi
mov dword [esi + 4], ebx
mov dl, byte [eax]
mov dword [ebp - 0x21c], eax
cmp dl, 0x30
jge 0x1d53350
mov edi, dword [ebp - 0x224]
mov eax, dword [edi + 0x18]
inc dword [ebp - 0x220]
mov dword [ebp - 0x21c], eax
test eax, eax
js 0x1d53470
lea ebx, [eax + 1]
test ebx, ebx
js 0x1d53470
push ebx
lea ecx, [edi + 8]
call fcn.01d52bb0
mov eax, dword [edi + 0x18]
cmp ebx, eax
jge 0x1d533e7
mov edx, dword [edi + 0xc]
sub eax, ebx
add eax, eax
add eax, eax
push eax
lea eax, [edx + ebx*4]
push 0
push eax
call sub.MSVCR100.dll_memset
add esp, 0xc
movzx eax, word [ebp - 0x220]
mov ecx, dword [edi + 0xc]
mov edx, dword [ebp - 0x21c]
inc eax
push eax
mov dword [edi + 0x18], ebx
push str.LevelItem_d
mov dword [ecx + edx*4], esi
lea ecx, [ebp - 0x14]
push 0x10
push ecx
call dword [sym.imp.MSVCR100.dll__snprintf]
add esp, 0x10
lea edx, [ebp - 0x218]
push edx
push pe_nt_image_headers32
lea eax, [ebp - 0x114]
push eax
push 0x1d6e838
lea ecx, [ebp - 0x14]
push ecx
push str.LevelDescribe
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x114], 0
jne 0x1d53255
mov ecx, dword [ebp - 0x224]
mov eax, dword [ecx + 0x18]
test eax, eax
jle 0x1d53458
mov byte [ecx + 4], 1
pop edi
xor edx, edx
test eax, eax
pop esi
setg al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.01d55e87
mov esp, ebp
pop ebp
ret
call sub.mfc100.dll_Ordinal_2061
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor al, al
pop ebx
call fcn.01d55e87
mov esp, ebp
pop ebp
ret