Function at 0x402690
Capabilities:
Enumerate files on windows
Log keystrokes via polling

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4084a0
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xf70
mov eax, dword [0x40c004]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
cmp byte [edi + 0x28], 0
jne 0x4026e6
cmp byte [0x40c0a8], 0
je 0x40363b
cmp byte [0x40cd7e], 0
je 0x402885
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0xd
call esi
bt ax, 0xf
jae 0x402721
mov ecx, dword [0x40cfc8]
mov eax, ecx
and eax, 0x2000
or eax, 0
jne 0x402735
or ecx, 0x2000
jmp 0x402842
mov eax, dword [0x40cfcc]
and dword [0x40cfc8], 0xffffdfff
mov dword [0x40cfcc], eax
push 0x20
call esi
bt ax, 0xf
jae 0x402769
mov edx, dword [0x40cfcc]
xor eax, eax
mov ecx, edx
and ecx, 1
or eax, ecx
jne 0x40277a
mov eax, dword [0x40cfc8]
or edx, 1
mov dword [0x40cfc8], eax
mov dword [0x40cfcc], edx
jmp 0x402852
mov eax, dword [0x40cfc8]
and dword [0x40cfcc], 0xfffffffe
mov dword [0x40cfc8], eax
push 8
call esi
bt ax, 0xf
jae 0x4027a2
mov ecx, dword [0x40cfc8]
mov eax, ecx
and eax, 0x100
or eax, 0
jne 0x4027b6
or ecx, 0x100
jmp 0x402842
mov eax, dword [0x40cfcc]
and dword [0x40cfc8], 0xfffffeff
mov dword [0x40cfcc], eax
push 0x1b
call esi
bt ax, 0xf
jae 0x4027db
mov ecx, dword [0x40cfc8]
mov eax, ecx
and eax, 0x8000000
or eax, 0
jne 0x4027ef
or ecx, 0x8000000
jmp 0x402842
mov eax, dword [0x40cfcc]
and dword [0x40cfc8], 0xf7ffffff
mov dword [0x40cfcc], eax
push 1
call esi
bt ax, 0xf
jae 0x40280f
mov ecx, dword [0x40cfc8]
mov eax, ecx
and eax, 2
or eax, 0
jne 0x402820
or ecx, 2
jmp 0x402842
mov eax, dword [0x40cfcc]
and dword [0x40cfc8], 0xfffffffd
mov dword [0x40cfcc], eax
push 2
call esi
bt ax, 0xf
jae 0x40286f
mov ecx, dword [0x40cfc8]
mov eax, ecx
and eax, 4
or eax, 0
jne 0x40363b
or ecx, 4
mov eax, dword [0x40cfcc]
mov dword [0x40cfc8], ecx
mov dword [0x40cfcc], eax
mov dword [edi + 0x198], 0
mov byte [0x40cd7d], 0
mov byte [0x40cd7e], 0
jmp 0x40363b
mov eax, dword [0x40cfcc]
and dword [0x40cfc8], 0xfffffffb
mov dword [0x40cfcc], eax
jmp 0x40363b
cmp byte [0x40cd7c], 0
je 0x4028dc
mov eax, dword [0x40cf90]
movss xmm0, dword [eax + 8]
addss xmm0, dword [0x40c770]
comiss xmm0, dword [0x4099b0]
movss dword [0x40c770], xmm0
jb 0x40363b
mov dword [edi + 0x198], 0
mov byte [0x40cd7d], 0
mov dword [0x40c770], 0
mov byte [0x40cd7c], 0
jmp 0x40363b
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x402912
mov ecx, dword [0x40cfc8]
mov eax, ecx
and eax, 2
or eax, 0
jne 0x402923
mov eax, dword [0x40cfcc]
or ecx, 2
mov dword [0x40cfc8], ecx
mov dl, 1
mov dword [0x40cfcc], eax
jmp 0x402925
mov eax, dword [0x40cfcc]
and dword [0x40cfc8], 0xfffffffd
mov dword [0x40cfcc], eax
xor dl, dl
mov eax, dword [0x40cf88]
mov byte [ebp - 0xf75], dl
cmp eax, dword [edi + 0x140]
jl 0x402a0b
cmp eax, dword [edi + 0x148]
jg 0x402a0b
mov eax, dword [0x40cf8c]
cmp eax, dword [edi + 0x144]
jl 0x402a0b
cmp eax, dword [edi + 0x14c]
jg 0x402a0b
mov eax, dword [edi + 0x168]
lea esi, [edi + 0x168]
mov eax, dword [eax]
cmp dword [eax + 0x20], 1
jne 0x40297f
cmp dword [eax + 0x24], 0
je 0x4029d9
cmp byte [edi + 0x16c], 0
jne 0x4029d9
sub esp, 0x18
mov ecx, esp
push str.MENU_UPDOWN
call fcn.00405dd0
movss xmm2, dword [0x4099ac]
call fcn.00406b40
mov ecx, dword [esi]
mov eax, dword [ecx]
mov dword [eax + 0x20], 1
mov eax, dword [ecx]
mov ecx, dword [eax + 0x28]
cmp ecx, 1
jge 0x4029bc
mov dword [eax + 0x20], ecx
mov ecx, dword [esi]
mov dl, byte [ebp - 0xf75]
mov eax, dword [ecx]
mov dword [eax + 0x24], 0
mov eax, dword [ecx]
mov ecx, dword [eax + 0x2c]
test ecx, ecx
jns 0x4029d9
mov dword [eax + 0x24], ecx
test dl, dl
je 0x402a4e
cmp byte [edi + 0x16c], 0
jne 0x402a02
sub esp, 0x18
mov ecx, esp
push str.MENU_CONFIRM
call fcn.00405dd0
movss xmm2, dword [0x4099ac]
call fcn.00406b40
mov byte [edi + 0x16c], 1
jmp 0x402a4e
mov ecx, dword [edi + 0x168]
lea esi, [edi + 0x168]
mov eax, dword [ecx]
mov dword [eax + 0x20], 0
mov eax, dword [ecx]
mov ecx, dword [eax + 0x28]
test ecx, ecx
jns 0x402a2c
mov dword [eax + 0x20], ecx
mov ecx, dword [esi]
mov eax, dword [ecx]
mov dword [eax + 0x24], 0
mov eax, dword [ecx]
mov ecx, dword [eax + 0x2c]
test ecx, ecx
jns 0x402a43
mov dword [eax + 0x24], ecx
test dl, dl
je 0x402a4e
mov byte [edi + 0x16c], 0
cmp byte [edi + 0x16c], 0
je 0x402acc
mov ecx, dword [esi]
mov eax, dword [ecx]
mov dword [eax + 0x20], 0
mov eax, dword [ecx]
mov ecx, dword [eax + 0x28]
test ecx, ecx
jns 0x402a6e
mov dword [eax + 0x20], ecx
mov ecx, dword [esi]
mov eax, dword [ecx]
mov dword [eax + 0x24], 1
mov eax, dword [ecx]
mov ecx, dword [eax + 0x2c]
cmp ecx, 1
jge 0x402a86
mov dword [eax + 0x24], ecx
push 0
lea eax, [edi + 0xb8]
mov ecx, edi
push eax
call fcn.00404a10
mov eax, dword [edi + 0x180]
cmp eax, dword [edi + 0xc8]
je 0x402acc
sub esp, 0x18
mov ecx, esp
push str.MENU_TYPE
call fcn.00405dd0
movss xmm2, dword [0x4099ac]
call fcn.00406b40
mov eax, dword [edi + 0xc8]
mov dword [edi + 0x180], eax
mov eax, dword [0x40cf88]
cmp eax, dword [edi + 0x130]
jl 0x402baf
cmp eax, dword [edi + 0x138]
jg 0x402baf
mov eax, dword [0x40cf8c]
cmp eax, dword [edi + 0x134]
jl 0x402baf
cmp eax, dword [edi + 0x13c]
jg 0x402baf
mov eax, dword [edi + 0x170]
lea esi, [edi + 0x170]
mov eax, dword [eax]
cmp dword [eax + 0x20], 1
jne 0x402b20
cmp dword [eax + 0x24], 0
je 0x402b74
cmp byte [edi + 0x174], 0
jne 0x402b74
sub esp, 0x18
mov ecx, esp
push str.MENU_UPDOWN
call fcn.00405dd0
movss xmm2, dword [0x4099ac]
call fcn.00406b40
mov ecx, dword [esi]
mov eax, dword [ecx]
mov dword [eax + 0x20], 1
mov eax, dword [ecx]
mov ecx, dword [eax + 0x28]
cmp ecx, 1
jge 0x402b5d
mov dword [eax + 0x20], ecx
mov ecx, dword [esi]
mov eax, dword [ecx]
mov dword [eax + 0x24], 0
mov eax, dword [ecx]
mov ecx, dword [eax + 0x2c]
test ecx, ecx
jns 0x402b74
mov dword [eax + 0x24], ecx
cmp byte [ebp - 0xf75], 0
je 0x402c25
cmp byte [edi + 0x174], 0
jne 0x402ba6
sub esp, 0x18
mov ecx, esp
push str.MENU_CONFIRM
call fcn.00405dd0
movss xmm2, dword [0x4099ac]
call fcn.00406b40
mov byte [edi + 0x174], 1
jmp 0x402c25
mov ecx, dword [edi + 0x170]
lea esi, [edi + 0x170]
mov eax, dword [ecx]
mov dword [eax + 0x20], 0
mov eax, dword [ecx]
mov ecx, dword [eax + 0x28]
test ecx, ecx
jns 0x402bd0
mov dword [eax + 0x20], ecx
mov ecx, dword [esi]
mov eax, dword [ecx]
mov dword [eax + 0x24], 0
mov eax, dword [ecx]
mov ecx, dword [eax + 0x2c]
test ecx, ecx
jns 0x402be7
mov dword [eax + 0x24], ecx
cmp byte [ebp - 0xf75], 0
je 0x402c25
cmp byte [edi + 0x174], 1
jne 0x402c1e
cmp byte [edi + 0x16c], 0
jne 0x402c1e
sub esp, 0x18
mov ecx, esp
push str.MENU_CANCEL
call fcn.00405dd0
movss xmm2, dword [0x4099ac]
call fcn.00406b40
mov byte [edi + 0x174], 0
cmp byte [edi + 0x174], 0
je 0x402ca3
mov ecx, dword [esi]
mov eax, dword [ecx]
mov dword [eax + 0x20], 0
mov eax, dword [ecx]
mov ecx, dword [eax + 0x28]
test ecx, ecx
jns 0x402c45
mov dword [eax + 0x20], ecx
mov ecx, dword [esi]
mov eax, dword [ecx]
mov dword [eax + 0x24], 1
mov eax, dword [ecx]
mov ecx, dword [eax + 0x2c]
cmp ecx, 1
jge 0x402c5d
mov dword [eax + 0x24], ecx
push 1
lea eax, [edi + 0xd0]
mov ecx, edi
push eax
call fcn.00404a10
mov eax, dword [edi + 0x184]
cmp eax, dword [edi + 0xe0]
je 0x402ca3
sub esp, 0x18
mov ecx, esp
push str.MENU_TYPE
call fcn.00405dd0
movss xmm2, dword [0x4099ac]
call fcn.00406b40
mov eax, dword [edi + 0xe0]
mov dword [edi + 0x184], eax
mov al, byte [edi + 0x16c]
cmp byte [edi + 0x16d], al
je 0x402ce5
test al, al
jne 0x402cd9
cmp byte [edi + 0x174], al
jne 0x402cd9
sub esp, 0x18
mov ecx, esp
push str.MENU_CANCEL
call fcn.00405dd0
movss xmm2, dword [0x4099ac]
call fcn.00406b40
mov al, byte [edi + 0x16c]
mov byte [edi + 0x16d], al
mov eax, dword [0x40cf88]
cmp eax, dword [edi + 0x100]
jl 0x402e4f
cmp eax, dword [edi + 0x108]
jg 0x402e4f
mov eax, dword [0x40cf8c]
cmp eax, dword [edi + 0x104]
jl 0x402e4f
cmp eax, dword [edi + 0x10c]
jg 0x402e4f
mov ecx, dword [edi + 0x150]
mov eax, dword [ecx]
mov dword [eax + 0x20], 1
mov eax, dword [ecx]
mov ecx, dword [eax + 0x28]
cmp ecx, 1
jge 0x402d3b
mov dword [eax + 0x20], ecx
mov dl, byte [ebp - 0xf75]
test dl, dl
je 0x402e70
lea ecx, [ebp - 0x418]
call fcn.00405c20
test eax, eax
setne cl
mov byte [ebp - 0xf76], cl
test eax, eax
je 0x402e47
lea eax, [ebp - 0x418]
push eax
push 0x409544
push 0x40c778
call fcn.004017f0
mov eax, dword [edi + 0x160]
add esp, 0xc
test eax, eax
je 0x402d9f
push 0x18
push eax
call fcn.004076c4
add esp, 8
mov dword [edi + 0x160], 0
mov esi, 0x40c778
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x402da7
sub esi, ecx
mov edx, 2
inc esi
xor ecx, ecx
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004076f5
add esp, 4
mov dword [ebp - 0xf7c], eax
push esi
push 0x40c778
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_mbstowcs]
add esp, 0xc
push 0x10
call dword [sym.imp.gdiplus.dll_GdipAlloc]
mov esi, eax
test esi, esi
je 0x402e39
lea eax, [ebp - 0xf74]
mov dword [ebp - 0xf74], 0
push eax
push dword [ebp - 0xf7c]
xorps xmm0, xmm0
movups xmmword [esi], xmm0
mov dword [esi], vtable.Gdiplus::Bitmap.0
call dword [sym.imp.gdiplus.dll_GdipCreateBitmapFromFile]
mov cl, byte [ebp - 0xf76]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0xf74]
mov dword [esi + 4], eax
mov dword [edi + 0x188], esi
mov byte [edi + 0x165], cl
jmp 0x402e6a
mov cl, byte [ebp - 0xf76]
xor esi, esi
mov dword [edi + 0x188], esi
mov byte [edi + 0x165], cl
jmp 0x402e6a
mov ecx, dword [edi + 0x150]
mov eax, dword [ecx]
mov dword [eax + 0x20], 0
mov eax, dword [ecx]
mov ecx, dword [eax + 0x28]
test ecx, ecx
jns 0x402e6a
mov dword [eax + 0x20], ecx
mov dl, byte [ebp - 0xf75]
mov eax, dword [0x40cf88]
cmp eax, dword [edi + 0x110]
jl 0x402f06
cmp eax, dword [edi + 0x118]
jg 0x402f06
mov eax, dword [0x40cf8c]
cmp eax, dword [edi + 0x114]
jl 0x402f06
cmp eax, dword [edi + 0x11c]
jg 0x402f06
mov ecx, dword [edi + 0x154]
mov eax, dword [ecx]
mov dword [eax + 0x20], 1
mov eax, dword [ecx]
mov ecx, dword [eax + 0x28]
cmp ecx, 1
jge 0x402ebe
mov dword [eax + 0x20], ecx
test dl, dl
je 0x402f21
lea eax, [ebp - 0x618]
push eax
lea eax, [ebp - 0x418]
push eax
call fcn.00404940
mov byte [ebp - 0xf76], al
test al, al
je 0x402efe
lea eax, [ebp - 0x418]
push eax
push 0x409544
push 0x40cd80
call fcn.004017f0
mov al, byte [ebp - 0xf76]
add esp, 0xc
mov byte [edi + 0x164], al
jmp 0x402f21
mov ecx, dword [edi + 0x154]
mov eax, dword [ecx]
mov dword [eax + 0x20], 0
mov eax, dword [ecx]
mov ecx, dword [eax + 0x28]
test ecx, ecx
jns 0x402f21
mov dword [eax + 0x20], ecx
mov eax, dword [0x40cf88]
cmp eax, dword [edi + 0x120]
jl 0x4030c2
cmp eax, dword [edi + 0x128]
jg 0x4030c2
mov eax, dword [0x40cf8c]
cmp eax, dword [edi + 0x124]
jl 0x4030c2
cmp eax, dword [edi + 0x12c]
jg 0x4030c2
mov eax, dword [edi + 0x158]
mov eax, dword [eax]
cmp dword [eax + 0x20], 1
jne 0x402f6f
cmp dword [eax + 0x24], 0
je 0x402fc2
sub esp, 0x18
mov ecx, esp
push str.MENU_UPDOWN
call fcn.00405dd0
movss xmm2, dword [0x4099ac]
call fcn.00406b40
mov ecx, dword [edi + 0x158]
mov eax, dword [ecx]
mov dword [eax + 0x20], 1
mov eax, dword [ecx]
mov ecx, dword [eax + 0x28]
cmp ecx, 1
jge 0x402fa7
mov dword [eax + 0x20], ecx
mov ecx, dword [edi + 0x158]
mov eax, dword [ecx]
mov dword [eax + 0x24], 0
mov eax, dword [ecx]
mov ecx, dword [eax + 0x2c]
test ecx, ecx
jns 0x402fc2
mov dword [eax + 0x24], ecx
cmp byte [ebp - 0xf75], 0
je 0x4030f8
sub esp, 0x18
mov ecx, esp
push str.MENU_CONFIRM
call fcn.00405dd0
movss xmm2, dword [0x4099ac]
call fcn.00406b40
mov ecx, dword [edi + 0x158]
mov eax, dword [ecx]
mov dword [eax + 0x20], 0
mov eax, dword [ecx]
mov ecx, dword [eax + 0x28]
test ecx, ecx
jns 0x403006
mov dword [eax + 0x20], ecx
mov ecx, dword [edi + 0x158]
mov eax, dword [ecx]
mov dword [eax + 0x24], 1
mov eax, dword [ecx]
mov ecx, dword [eax + 0x2c]
cmp ecx, 1
jge 0x403022
mov dword [eax + 0x24], ecx
cmp byte [edi + 0x164], 0
lea esi, [edi + 0x165]
je 0x403058
cmp byte [esi], 0
je 0x40304f
cmp byte [0x40cd7d], 0
jne 0x403105
mov byte [0x40cd7d], 1
jmp 0x40363b
mov byte [0x40cd7e], 1
jmp 0x40308d
push str.Please_select_your_content_folder.
push 0x409544
push 0x40c978
mov byte [0x40cd7e], 1
call fcn.004017f0
add esp, 0xc
push 0x409400
push 0x409544
push 0x40cb78
call fcn.004017f0
add esp, 0xc
cmp byte [esi], 0
jne 0x4030f8
push str.Please_select_your_contents_preview_image.
push 0x409544
push 0x40c978
call fcn.004017f0
add esp, 0xc
push 0x409400
push 0x409544
push 0x40cb78
call fcn.004017f0
add esp, 0xc
jmp 0x4030f8
mov ecx, dword [edi + 0x158]
mov eax, dword [ecx]
mov dword [eax + 0x20], 0
mov eax, dword [ecx]
mov ecx, dword [eax + 0x28]
test ecx, ecx
jns 0x4030dd
mov dword [eax + 0x20], ecx
mov ecx, dword [edi + 0x158]
mov eax, dword [ecx]
mov dword [eax + 0x24], 0
mov eax, dword [ecx]
mov ecx, dword [eax + 0x2c]
test ecx, ecx
jns 0x4030f8
mov dword [eax + 0x24], ecx
cmp byte [0x40cd7d], 0
je 0x40362f
inc dword [edi + 0x198]
cmp dword [edi + 0x198], 1
jg 0x40363b
push 0x40cd80
lea ecx, [ebp - 0xe30]
mov byte [edi + 0x28], 0
mov byte [0x40c0a8], 0
call fcn.00405dd0
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0xe1c]
mov eax, edx
mov ecx, dword [ebp - 0xe20]
sub eax, ecx
push 5
push str.cars
cmp eax, 5
jb 0x403180
cmp edx, 0x10
lea esi, [ebp - 0xe30]
lea eax, [ecx + 5]
cmovae esi, dword [ebp - 0xe30]
add esi, ecx
mov dword [ebp - 0xe20], eax
push esi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 5], 0
jmp 0x40319a
mov byte [ebp - 0xf7c], 0
lea ecx, [ebp - 0xe30]
push dword [ebp - 0xf7c]
push 5
call fcn.00406220
cmp dword [ebp - 0xe1c], 0x10
lea eax, [ebp - 0xe30]
push 0
cmovae eax, dword [ebp - 0xe30]
push eax
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__access_s]
mov edx, 0x40cd80
mov dword [ebp - 0xf74], eax
add esp, 8
lea esi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x4031c8
sub edx, esi
lea ecx, [ebp - 0xe30]
push edx
push 0x40cd80
call fcn.00405ee0
mov edx, dword [ebp - 0xe1c]
mov eax, edx
mov ecx, dword [ebp - 0xe20]
sub eax, ecx
push 7
push str.levels
cmp eax, 7
jb 0x403228
cmp edx, 0x10
lea esi, [ebp - 0xe30]
lea eax, [ecx + 7]
cmovae esi, dword [ebp - 0xe30]
add esi, ecx
mov dword [ebp - 0xe20], eax
push esi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 7], 0
jmp 0x403242
mov byte [ebp - 0xf7c], 0
lea ecx, [ebp - 0xe30]
push dword [ebp - 0xf7c]
push 7
call fcn.00406220
cmp dword [ebp - 0xe1c], 0x10
lea eax, [ebp - 0xe30]
push 0
cmovae eax, dword [ebp - 0xe30]
push eax
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__access_s]
add esp, 8
mov byte [ebp - 0xf76], 0
cmp dword [ebp - 0xf74], 0
mov byte [ebp - 0xf75], 0
je 0x4032be
test eax, eax
je 0x4032be
push str.File_structure_is_incorrect.
push 0x409544
push 0x40c978
mov byte [0x40cd7e], 1
call fcn.004017f0
add esp, 0xc
push str.You_need_to_pack_like_this___MyCarcarsMyCar__
push 0x409544
push 0x40cb78
call fcn.004017f0
add esp, 0xc
mov byte [0x40c0a8], 1
jmp 0x4035d1
push 0x40cd80
lea eax, [ebp - 0xe18]
push str._scars.
push eax
call fcn.004017f0
add esp, 0xc
lea eax, [ebp - 0xf70]
push eax
lea eax, [ebp - 0xe18]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov esi, eax
lea eax, [ebp - 0xf70]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x4033dc
test byte [ebp - 0xf70], 0x10
je 0x4033b3
mov ecx, 0x4095b4
lea eax, [ebp - 0xf44]
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x403340
test dl, dl
je 0x40333c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x403340
add eax, 2
add ecx, 2
test dl, dl
jne 0x403320
xor eax, eax
jmp 0x403345
sbb eax, eax
or eax, 1
test eax, eax
je 0x4033b3
mov ecx, 0x4095b8
lea eax, [ebp - 0xf44]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x403374
test dl, dl
je 0x403370
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x403374
add eax, 2
add ecx, 2
test dl, dl
jne 0x403354
xor eax, eax
jmp 0x403379
sbb eax, eax
or eax, 1
test eax, eax
je 0x4033b3
lea eax, [ebp - 0xf44]
push eax
push 0x40cd80
lea eax, [ebp - 0x218]
push str._scars_sParameters.txt
push eax
call fcn.004017f0
lea eax, [ebp - 0x218]
push 0x4095d8
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
add esp, 0x18
test eax, eax
jne 0x4033cb
lea eax, [ebp - 0xf70]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x403303
jmp 0x4033dc
push eax
mov byte [ebp - 0xf76], 1
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
push 0x40cd80
lea eax, [ebp - 0xe18]
push str._slevels.
push eax
call fcn.004017f0
add esp, 0xc
lea eax, [ebp - 0xf70]
push eax
lea eax, [ebp - 0xe18]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov esi, eax
lea eax, [ebp - 0xf70]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x403500
test byte [ebp - 0xf70], 0x10
je 0x4034d7
mov ecx, 0x4095b4
lea eax, [ebp - 0xf44]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x403460
test dl, dl
je 0x40345c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x403460
add eax, 2
add ecx, 2
test dl, dl
jne 0x403440
xor eax, eax
jmp 0x403465
sbb eax, eax
or eax, 1
test eax, eax
je 0x4034d7
mov ecx, 0x4095b8
lea eax, [ebp - 0xf44]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x403494
test dl, dl
je 0x403490
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x403494
add eax, 2
add ecx, 2
test dl, dl
jne 0x403474
xor eax, eax
jmp 0x403499
sbb eax, eax
or eax, 1
test eax, eax
je 0x4034d7
lea eax, [ebp - 0xf44]
push eax
push eax
push 0x40cd80
lea eax, [ebp - 0x218]
push str._slevels_s_s.inf
push eax
call fcn.004017f0
add esp, 0x14
lea eax, [ebp - 0x218]
push 0x4095d8
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
add esp, 8
test eax, eax
jne 0x4034ef
lea eax, [ebp - 0xf70]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x403421
jmp 0x403500
push eax
mov byte [ebp - 0xf75], 1
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
cmp byte [ebp - 0xf76], 0
je 0x403532
cmp byte [ebp - 0xf75], 0
lea esi, [edi + 0xe8]
mov ecx, esi
je 0x403526
mov eax, str.Car__Track
mov edx, 0xb
jmp 0x403551
mov eax, 0x40960c
mov edx, 3
jmp 0x403551
cmp byte [ebp - 0xf75], 0
je 0x4035d1
lea esi, [edi + 0xe8]
mov eax, str.Track
mov ecx, esi
mov edx, 5
push edx
push eax
call fcn.00405ee0
push 0x40cd80
push 0x409544
push 0x40cd80
call fcn.004017f0
lea eax, [edi + 0xb8]
add esp, 0xc
lea ecx, [edi + 0x30]
cmp ecx, eax
je 0x40358f
cmp dword [eax + 0x14], 0x10
mov edx, eax
jb 0x403586
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.00405ee0
lea eax, [edi + 0xd0]
lea ecx, [edi + 0x48]
cmp ecx, eax
je 0x4035af
cmp dword [eax + 0x14], 0x10
mov edx, eax
jb 0x4035a6
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.00405ee0
lea ecx, [edi + 0x60]
cmp ecx, esi
je 0x4035c9
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x4035c0
mov eax, dword [esi]
push dword [esi + 0x10]
push eax
call fcn.00405ee0
lea ecx, [edi + 0x28]
call fcn.004044e0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xe1c]
cmp ecx, 0x10
jb 0x403614
mov edx, dword [ebp - 0xe30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40360a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x40360a
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004076c4
add esp, 8
mov dword [ebp - 0xe20], 0
mov dword [ebp - 0xe1c], 0xf
mov byte [ebp - 0xe30], 0
push dword [0x40cf94]
call dword [sym.imp.fmodex.dll_public:_enum_FMOD_RESULT___stdcall_FMOD::System::update_void_]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00407686
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret