Function at 0x455fe0
Capabilities:
Check for time delay via gettickcount
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa84
mov eax, dword [0x49b470]
xor eax, esp
mov dword [esp + 0xa80], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
cmp eax, 0x63
jne 0x456021
push 0x4b3848
lea eax, [esp + 0x68c]
push str._s_save_file00.dat
push eax
call fcn.0045f116
add esp, 0xc
jmp 0x45603d
inc eax
push eax
push 0x4b3848
lea ecx, [esp + 0x690]
push str._s_save_file_02d.dat
push ecx
call fcn.0045f116
add esp, 0x10
push 0
push 0x80
push 3
push 0
push 0
push DirectSoundCreate
lea edx, [esp + 0x6a0]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x45837c
cmp dword [ebp + 0xc], 1
mov eax, dword [0x4b5acc]
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
jne 0x45609e
push 0
call fcn.004053e0
cmp eax, 0xffffffff
jne 0x456099
mov eax, dword [0x4b3c9c]
push 1
push 0x48ba48
push 0x495a90
push eax
call edi
cmp eax, 1
jne 0x4560cf
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push 0
mov ebx, eax
push ebx
push 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_LockFile]
test eax, eax
jne 0x4560ed
mov ecx, dword [0x4b3c9c]
push eax
push 0x4938a8
push 0x495ab0
push ecx
call edi
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa80]
xor ecx, esp
call fcn.0045f0aa
mov esp, ebp
pop ebp
ret
mov eax, dword [0x4b5af0]
test eax, eax
jne 0x4560fc
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push ebx
push 8
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
push 0
push 0
push 0
mov edi, eax
push esi
mov dword [esp + 0x2c], edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea edx, [esp + 0x24]
push edx
push ebx
push edi
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push 0
push ebx
push 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_UnlockFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [edi], 1
je 0x45618b
mov eax, dword [0x4b3c9c]
push 0
push 0x4944a0
push 0x495ac8
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [0x4b5af0]
test eax, eax
jne 0x45616a
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push edi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa80]
xor ecx, esp
call fcn.0045f0aa
mov esp, ebp
pop ebp
ret
call fcn.0042f4f0
xor esi, esi
mov ecx, esi
call fcn.0045aef0
inc esi
cmp esi, 0x13
jl 0x456192
xor eax, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
lea eax, [edi + 0x10]
mov edx, 0x4b5be4
mov dword [0x4b5df4], 1
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x4561d5
lea eax, [edi + 0x50]
mov edx, 0x4b5524
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x4561f0
lea eax, [edi + 0x70]
lea edx, [esp + 0x48]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x456203
lea eax, [edi + 0x90]
mov edx, 0x4b5b70
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x456220
lea eax, [edi + 0xa0]
mov edx, 0x4b5ba4
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x456237
lea eax, [edi + 0xc0]
lea edx, [esp + 0x188]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x456250
mov ecx, dword [edi + 0xe0]
mov edx, dword [edi + 0xe4]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], edx
mov edx, dword [0x4b5e4c]
lea ecx, [edi + 0xe8]
lea ebx, [ebx]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x456280
mov eax, dword [0x4b5e4c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x456292
sub eax, edx
mov edx, dword [0x4b5b84]
mov esi, eax
add esi, 4
shr esi, 2
add esi, 0x3a
lea ecx, [edi + esi*4]
nop
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x4562b0
mov eax, dword [0x4b5b84]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4562c2
sub eax, edx
add eax, 4
shr eax, 2
add esi, eax
mov eax, dword [edi + esi*4]
inc esi
mov dword [esp + 0x34], eax
mov dword [0x4b5e04], eax
mov eax, dword [edi + esi*4]
inc esi
mov dword [0x4b5e08], eax
lea eax, [edi + esi*4]
mov edx, 0x4b5e0c
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x4562f3
mov ecx, dword [edi + esi*4 + 0x10]
add esi, 4
inc esi
lea eax, [edi + esi*4]
mov edx, 0x4b5e20
mov dword [0x4b5e1c], ecx
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x456315
mov edx, dword [edi + esi*4 + 0x10]
add esi, 4
inc esi
mov dword [0x4b5e30], edx
lea eax, [edi + esi*4]
mov edx, 0x4b5e34
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x456337
mov eax, dword [edi + esi*4 + 0x10]
add esi, 4
mov dword [0x4b5e44], eax
mov ecx, dword [edi + esi*4 + 4]
inc esi
mov dword [0x4b5e48], ecx
mov edx, dword [edi + esi*4 + 4]
inc esi
mov dword [0x4b3cd8], edx
mov eax, dword [edi + esi*4 + 4]
inc esi
mov ecx, dword [edi + esi*4 + 8]
add esi, 2
push 0x4b5b68
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], ecx
call fcn.00450b20
add esp, 4
add esi, 2
lea eax, [edi + esi*4]
mov edx, 0x495a4c
mov ecx, eax
mov bl, byte [ecx]
cmp bl, byte [edx]
jne 0x4563b1
test bl, bl
je 0x4563ad
mov bl, byte [ecx + 1]
cmp bl, byte [edx + 1]
jne 0x4563b1
add ecx, 2
add edx, 2
test bl, bl
jne 0x456391
xor ecx, ecx
jmp 0x4563b6
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
je 0x4566ab
mov edi, edi
mov edx, 0x4953f4
mov ecx, eax
mov bl, byte [ecx]
cmp bl, byte [edx]
jne 0x4563e7
test bl, bl
je 0x4563e3
mov bl, byte [ecx + 1]
cmp bl, byte [edx + 1]
jne 0x4563e7
add ecx, 2
add edx, 2
test bl, bl
jne 0x4563c7
xor ecx, ecx
jmp 0x4563ec
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x45647a
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4563f7
sub eax, ecx
push 0
add eax, 4
shr eax, 2
push 0
add esi, eax
push 0x2a
push 0x4b5b68
mov eax, 0x4953f4
call fcn.004506e0
push 0
lea ebx, [edi + esi*4]
add eax, 0xf4
push ebx
push 0x24
mov dword [esp + 0x2c], eax
push eax
mov eax, 0x4953f4
call fcn.004506e0
mov eax, ebx
add esp, 0x20
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x456441
sub eax, ecx
mov ecx, dword [esp + 0x10]
add eax, 4
shr eax, 2
add esi, eax
mov edx, dword [edi + esi*4]
push 0
lea eax, [esp + 0x18]
push eax
push 0x25
push ecx
mov eax, 0x4953f4
mov dword [esp + 0x24], edx
call fcn.004506e0
add esp, 0x10
inc esi
jmp 0x456674
mov edx, 0x4953b4
mov ecx, eax
mov bl, byte [ecx]
cmp bl, byte [edx]
jne 0x4564a1
test bl, bl
je 0x45649d
mov bl, byte [ecx + 1]
cmp bl, byte [edx + 1]
jne 0x4564a1
add ecx, 2
add edx, 2
test bl, bl
jne 0x456481
xor ecx, ecx
jmp 0x4564a6
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x456596
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4564b1
sub eax, ecx
push 0
add eax, 4
shr eax, 2
push 0
add esi, eax
push 0x2a
push 0x4b5b68
mov eax, 0x4953b4
call fcn.004506e0
lea ecx, [edi + esi*4]
push 0
push ecx
lea ebx, [eax + 0xf4]
push 0x24
push ebx
mov eax, 0x4953b4
mov dword [esp + 0x34], ecx
call fcn.004506e0
mov eax, dword [esp + 0x34]
add esp, 0x20
lea ecx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x456500
sub eax, ecx
add eax, 4
shr eax, 2
add esi, eax
lea eax, [edi + esi*4]
push 0
push eax
mov dword [esp + 0x1c], eax
push 0x24
push ebx
mov eax, 0x4953b4
call fcn.004506e0
mov eax, dword [esp + 0x24]
add esp, 0x10
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x456532
sub eax, ecx
add eax, 4
shr eax, 2
add esi, eax
mov edx, dword [edi + esi*4]
push 0
lea eax, [esp + 0x18]
push eax
push 0x25
push ebx
mov eax, 0x4953b4
mov dword [esp + 0x24], edx
call fcn.004506e0
inc esi
lea eax, [edi + esi*4]
push 0
push eax
mov dword [esp + 0x2c], eax
push 0x24
push ebx
mov eax, 0x4953b4
call fcn.004506e0
mov eax, dword [esp + 0x34]
add esp, 0x20
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x456580
sub eax, ecx
add eax, 4
shr eax, 2
add esi, eax
jmp 0x456674
mov edx, 0x495490
mov ecx, eax
lea ecx, [ecx]
mov bl, byte [ecx]
cmp bl, byte [edx]
jne 0x4565c0
test bl, bl
je 0x4565bc
mov bl, byte [ecx + 1]
cmp bl, byte [edx + 1]
jne 0x4565c0
add ecx, 2
add edx, 2
test bl, bl
jne 0x4565a0
xor ecx, ecx
jmp 0x4565c5
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x456609
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4565d0
sub eax, edx
add eax, 4
push 0
shr eax, 2
lea edx, [esp + 0x18]
push edx
add esi, eax
mov ecx, dword [edi + esi*4]
push 0x25
push 0x4b5b68
mov eax, 0x495490
mov dword [esp + 0x24], ecx
call fcn.004506e0
add esp, 0x10
inc esi
jmp 0x456674
mov edx, 0x494bfc
mov ecx, eax
mov bl, byte [ecx]
cmp bl, byte [edx]
jne 0x456630
test bl, bl
je 0x45662c
mov bl, byte [ecx + 1]
cmp bl, byte [edx + 1]
jne 0x456630
add ecx, 2
add edx, 2
test bl, bl
jne 0x456610
xor ecx, ecx
jmp 0x456635
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x456674
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x456640
sub eax, edx
add eax, 4
shr eax, 2
add esi, eax
push 0
lea eax, [esp + 0x18]
push eax
push 0x25
push 0x4b5b68
mov eax, 0x494bfc
mov dword [esp + 0x24], 0
call fcn.004506e0
add esp, 0x10
lea eax, [edi + esi*4]
mov edx, 0x495a4c
mov ecx, eax
mov bl, byte [ecx]
cmp bl, byte [edx]
jne 0x45669e
test bl, bl
je 0x45669a
mov bl, byte [ecx + 1]
cmp bl, byte [edx + 1]
jne 0x45669e
add ecx, 2
add edx, 2
test bl, bl
jne 0x45667e
xor ecx, ecx
jmp 0x4566a3
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x4563c0
push 0x4b5b6c
call fcn.00450b20
add esp, 4
inc esi
lea eax, [edi + esi*4]
mov edx, 0x495a50
mov ecx, eax
mov bl, byte [ecx]
cmp bl, byte [edx]
jne 0x4566e3
test bl, bl
je 0x4566df
mov bl, byte [ecx + 1]
cmp bl, byte [edx + 1]
jne 0x4566e3
add ecx, 2
add edx, 2
test bl, bl
jne 0x4566c3
xor ecx, ecx
jmp 0x4566e8
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
je 0x456934
lea ebx, [esp + 0x88]
mov ecx, eax
sub ebx, eax
jmp 0x456700
mov dl, byte [ecx]
mov byte [ecx + ebx], dl
inc ecx
test dl, dl
jne 0x456700
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x456710
sub eax, edx
add eax, 4
shr eax, 2
add esi, eax
mov al, byte [edi + esi*4]
mov byte [esp + 0x14], al
movsx eax, al
add eax, 0xffffffdf
inc esi
cmp eax, 9
ja case.0x45673f.34
movzx ecx, byte [eax + 0x4583a8]
jmp dword [ecx*4 + 0x458394]
mov edx, dword [esp + 0x14]
push 0
lea ebx, [edi + esi*4]
push ebx
push edx
push 0x4b5b6c
lea eax, [esp + 0x98]
call fcn.004506e0
mov eax, ebx
add esp, 0x10
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x456770
sub eax, edx
add eax, 4
shr eax, 2
add esi, eax
jmp case.0x45673f.34
mov eax, dword [edi + esi*4]
mov edx, dword [esp + 0x14]
push 0
lea ecx, [esp + 0x14]
push ecx
mov dword [esp + 0x18], eax
push edx
jmp 0x4567ae
fld dword [edi + esi*4]
mov ecx, dword [esp + 0x14]
push 0
fstp dword [esp + 0x14]
lea eax, [esp + 0x14]
push eax
push ecx
push 0x4b5b6c
lea eax, [esp + 0x98]
call fcn.004506e0
add esp, 0x10
inc esi
jmp case.0x45673f.34
mov edx, dword [esp + 0x14]
push 0
push 0
push edx
push 0x4b5b6c
lea eax, [esp + 0x98]
call fcn.004506e0
lea ebx, [edi + esi*4]
lea edx, [esp + 0x48]
add esp, 0x10
mov dword [esp + 0x10], eax
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x4567f4
lea ecx, [esp + 0x38]
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x456824
test dl, dl
je 0x456820
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x456824
add eax, 2
add ecx, 2
test dl, dl
jne 0x456804
xor eax, eax
jmp 0x456829
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne case.0x45673f.34
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x456836
sub eax, edx
add eax, 4
shr eax, 2
add esi, eax
mov al, byte [edi + esi*4]
inc esi
cmp al, 0x24
jne 0x456885
mov eax, dword [esp + 0x10]
push 0
lea ebx, [edi + esi*4]
push ebx
add eax, 0xf4
push 0x24
push eax
lea eax, [esp + 0x48]
call fcn.004506e0
mov eax, ebx
add esp, 0x10
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x456872
sub eax, edx
add eax, 4
shr eax, 2
add esi, eax
jmp 0x4568c2
cmp al, 0x25
jne 0x45689e
mov edx, dword [esp + 0x10]
push 0
lea ecx, [edi + esi*4]
push ecx
push 0x25
add edx, 0xf4
push edx
jmp 0x4568b5
cmp al, 0x21
jne case.0x45673f.34
mov ecx, dword [esp + 0x10]
push 0
lea eax, [edi + esi*4]
push eax
push 0x21
add ecx, 0xf4
push ecx
lea eax, [esp + 0x48]
call fcn.004506e0
add esp, 0x10
inc esi
lea ebx, [edi + esi*4]
lea edx, [esp + 0x38]
mov ecx, ebx
jmp 0x4568d0
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4568f0
test al, al
je 0x4568ec
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4568f0
add ecx, 2
add edx, 2
test al, al
jne 0x4568d0
xor eax, eax
jmp 0x4568f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x456831
lea eax, [edi + esi*4]
mov edx, 0x495a50
mov ecx, eax
mov bl, byte [ecx]
cmp bl, byte [edx]
jne 0x456927
test bl, bl
je 0x456923
mov bl, byte [ecx + 1]
cmp bl, byte [edx + 1]
jne 0x456927
add ecx, 2
add edx, 2
test bl, bl
jne 0x456907
xor ecx, ecx
jmp 0x45692c
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x4566f0
push 0x4b5ba0
call fcn.00450b20
add esp, 4
inc esi
lea eax, [edi + esi*4]
mov edx, 0x495a54
mov ecx, eax
lea esp, [esp]
mov bl, byte [ecx]
cmp bl, byte [edx]
jne 0x456970
test bl, bl
je 0x45696c
mov bl, byte [ecx + 1]
cmp bl, byte [edx + 1]
jne 0x456970
add ecx, 2
add edx, 2
test bl, bl
jne 0x456950
xor ecx, ecx
jmp 0x456975
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
je 0x456bb4
lea ebx, [esp + 0x88]
mov ecx, eax
sub ebx, eax
mov dl, byte [ecx]
mov byte [ecx + ebx], dl
inc ecx
test dl, dl
jne 0x456988
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x456995
sub eax, edx
add eax, 4
shr eax, 2
add esi, eax
mov al, byte [edi + esi*4]
mov byte [esp + 0x14], al
movsx eax, al
add eax, 0xffffffdf
inc esi
cmp eax, 9
ja case.0x4569c4.34
movzx edx, byte [eax + 0x4583c8]
jmp dword [edx*4 + 0x4583b4]
mov eax, dword [esp + 0x14]
push 0
lea ebx, [edi + esi*4]
push ebx
push eax
push 0x4b5ba0
lea eax, [esp + 0x98]
call fcn.004506e0
mov eax, ebx
add esp, 0x10
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4569f0
sub eax, edx
add eax, 4
shr eax, 2
add esi, eax
jmp case.0x4569c4.34
mov ecx, dword [edi + esi*4]
mov eax, dword [esp + 0x14]
push 0
lea edx, [esp + 0x14]
push edx
mov dword [esp + 0x18], ecx
push eax
jmp 0x456a2e
fld dword [edi + esi*4]
mov edx, dword [esp + 0x14]
push 0
fstp dword [esp + 0x14]
lea ecx, [esp + 0x14]
push ecx
push edx
push 0x4b5ba0
lea eax, [esp + 0x98]
call fcn.004506e0
add esp, 0x10
inc esi
jmp case.0x4569c4.34
mov eax, dword [esp + 0x14]
push 0
push 0
push eax
push 0x4b5ba0
lea eax, [esp + 0x98]
call fcn.004506e0
lea ebx, [edi + esi*4]
lea edx, [esp + 0x48]
add esp, 0x10
mov dword [esp + 0x10], eax
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x456a74
lea ecx, [esp + 0x38]
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x456aa4
test dl, dl
je 0x456aa0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x456aa4
add eax, 2
add ecx, 2
test dl, dl
jne 0x456a84
xor eax, eax
jmp 0x456aa9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne case.0x4569c4.34
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x456ab6
sub eax, edx
add eax, 4
shr eax, 2
add esi, eax
mov al, byte [edi + esi*4]
inc esi
cmp al, 0x24
jne 0x456b06
mov ecx, dword [esp + 0x10]
push 0
lea ebx, [edi + esi*4]
push ebx
add ecx, 0xf4
push 0x24
push ecx
lea eax, [esp + 0x48]
call fcn.004506e0
mov eax, ebx
add esp, 0x10
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x456af3
sub eax, edx
add eax, 4
shr eax, 2
add esi, eax
jmp 0x456b42
cmp al, 0x25
jne 0x456b1e
mov eax, dword [esp + 0x10]
push 0
lea edx, [edi + esi*4]
push edx
push 0x25
add eax, 0xf4
push eax
jmp 0x456b35
cmp al, 0x21
jne case.0x4569c4.34
mov edx, dword [esp + 0x10]
push 0
lea ecx, [edi + esi*4]
push ecx
push 0x21
add edx, 0xf4
push edx
lea eax, [esp + 0x48]
call fcn.004506e0
add esp, 0x10
inc esi
lea ebx, [edi + esi*4]
lea edx, [esp + 0x38]
mov ecx, ebx
jmp 0x456b50
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x456b70
test al, al
je 0x456b6c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x456b70
add ecx, 2
add edx, 2
test al, al
jne 0x456b50
xor eax, eax
jmp 0x456b75
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x456ab1
lea eax, [edi + esi*4]
mov edx, 0x495a54
mov ecx, eax
mov bl, byte [ecx]
cmp bl, byte [edx]
jne 0x456ba7
test bl, bl
je 0x456ba3
mov bl, byte [ecx + 1]
cmp bl, byte [edx + 1]
jne 0x456ba7
add ecx, 2
add edx, 2
test bl, bl
jne 0x456b87
xor ecx, ecx
jmp 0x456bac
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x45697d
mov ecx, dword [edi + esi*4 + 4]
inc esi
inc esi
xor eax, eax
mov dword [0x4b5e9c], ecx
test ecx, ecx
jle 0x456c55
movzx edx, word [edi + esi*4]
mov ecx, dword [eax*4 + 0x4b5ea4]
mov word [ecx], dx
movzx edx, word [edi + esi*4 + 4]
mov ecx, dword [eax*4 + 0x4b5ea4]
inc esi
mov word [ecx + 2], dx
movzx edx, word [edi + esi*4 + 4]
mov ecx, dword [eax*4 + 0x4b5ea4]
inc esi
mov word [ecx + 4], dx
movzx edx, word [edi + esi*4 + 4]
mov ecx, dword [eax*4 + 0x4b5ea4]
inc esi
mov word [ecx + 6], dx
mov ecx, dword [eax*4 + 0x4b5ea4]
inc esi
lea ebx, [edi + esi*4]
add ecx, 0x10
lea esp, [esp]
mov dl, byte [ebx]
mov byte [ecx], dl
inc ebx
inc ecx
test dl, dl
jne 0x456c20
mov ecx, dword [eax*4 + 0x4b5ea4]
add ecx, 0x10
lea ebx, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x456c37
sub ecx, ebx
add ecx, 4
shr ecx, 2
inc eax
add esi, ecx
cmp eax, dword [0x4b5e9c]
jl 0x456bca
inc esi
lea eax, [edi + esi*4]
mov dword [esp + 0x14], 0
mov edi, 0x495a68
mov ecx, eax
mov dl, byte [ecx]
cmp dl, byte [edi]
jne 0x456c88
test dl, dl
je 0x456c84
mov dl, byte [ecx + 1]
cmp dl, byte [edi + 1]
jne 0x456c88
add ecx, 2
add edi, 2
test dl, dl
jne 0x456c68
xor ecx, ecx
jmp 0x456c8d
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
je 0x457584
mov ebx, dword [0x4b5a34]
jmp 0x456ca0
movzx edx, byte [eax + 3]
mov edi, dword [esp + 0x14]
mov ecx, dword [ebx + edi*4]
mov byte [ecx + 4], dl
movzx edx, byte [eax + 2]
mov ecx, dword [ebx + edi*4]
mov byte [ecx + 5], dl
mov ecx, dword [eax]
mov edx, dword [ebx + edi*4]
sar ecx, 8
mov byte [edx + 6], cl
movzx edx, byte [eax]
mov ecx, dword [ebx + edi*4]
mov byte [ecx + 7], dl
mov eax, dword [esp + 0x1c]
movzx edx, word [eax + esi*4 + 4]
mov ecx, dword [ebx + edi*4]
mov word [ecx + 8], dx
mov ecx, dword [ebx + edi*4]
inc esi
movzx edx, word [eax + esi*4 + 4]
mov word [ecx + 0xa], dx
mov ecx, dword [ebx + edi*4]
inc esi
movzx edx, word [eax + esi*4 + 4]
mov word [ecx + 0xc], dx
mov ecx, dword [ebx + edi*4]
inc esi
movzx edx, word [eax + esi*4 + 4]
mov word [ecx + 0xe], dx
mov ecx, dword [ebx + edi*4]
inc esi
movzx edx, byte [eax + esi*4 + 4]
mov byte [ecx + 0x14], dl
mov ecx, dword [ebx + edi*4]
inc esi
movzx edx, word [eax + esi*4 + 4]
mov word [ecx + 0x34], dx
mov ecx, dword [ebx + edi*4]
inc esi
movzx edx, word [eax + esi*4 + 4]
mov word [ecx + 0x36], dx
mov ecx, dword [ebx + edi*4]
inc esi
movzx edx, word [eax + esi*4 + 4]
mov word [ecx + 0x38], dx
mov ecx, dword [ebx + edi*4]
inc esi
movzx edx, word [eax + esi*4 + 4]
mov word [ecx + 0x3a], dx
mov ecx, dword [ebx + edi*4]
inc esi
movzx edx, byte [eax + esi*4 + 7]
mov byte [ecx + 0x30], dl
movzx edx, byte [eax + esi*4 + 6]
mov ecx, dword [ebx + edi*4]
inc esi
mov byte [ecx + 0x31], dl
mov ecx, dword [eax + esi*4]
mov edx, dword [ebx + edi*4]
sar ecx, 8
mov byte [edx + 0x32], cl
movzx edx, byte [eax + esi*4]
mov ecx, dword [ebx + edi*4]
mov byte [ecx + 0x33], dl
movzx edx, byte [0x4b41d4]
mov ecx, dword [ebx + edi*4]
mov byte [ecx + 0x40], dl
movzx edx, word [eax + esi*4 + 8]
mov ecx, dword [ebx + edi*4]
add esi, 2
mov word [ecx + 0x26], dx
movzx edx, word [eax + esi*4 + 4]
mov ecx, dword [ebx + edi*4]
inc esi
mov word [ecx + 0x28], dx
movzx edx, byte [eax + esi*4 + 4]
mov ecx, dword [ebx + edi*4]
inc esi
mov byte [ecx + 0x21], dl
inc esi
movzx edx, byte [eax + esi*4]
mov ecx, dword [ebx + edi*4]
mov byte [ecx + 0x20], dl
movzx edx, byte [eax + esi*4 + 4]
mov ecx, dword [ebx + edi*4]
inc esi
mov byte [ecx + 0x23], dl
movzx edx, byte [eax + esi*4 + 4]
mov ecx, dword [ebx + edi*4]
inc esi
mov byte [ecx + 0x22], dl
inc esi
lea edx, [eax + esi*4]
mov ecx, 0x495a58
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
mov dl, byte [edx]
cmp dl, byte [ecx]
jne 0x456e04
test dl, dl
je 0x456e00
mov edx, dword [esp + 0x10]
mov dl, byte [edx + 1]
mov byte [esp + 0x1b], dl
cmp dl, byte [ecx + 1]
jne 0x456e04
add dword [esp + 0x10], 2
add ecx, 2
test dl, dl
jne 0x456dd6
xor ecx, ecx
jmp 0x456e09
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x456e71
mov ecx, dword [ebx + edi*4]
inc esi
cmp byte [eax + esi*4], 0
lea edx, [eax + esi*4]
je 0x456e3d
mov eax, dword [0x4b3cf8]
push 0
push 0
push eax
push 0
add ecx, 0x48
call fcn.00440090
mov ebx, dword [0x4b5a34]
mov eax, dword [esp + 0x2c]
add esp, 0x10
jmp 0x456e41
mov byte [ecx + 0x70], 0
movzx ecx, word [eax + esi*4 + 0x10]
mov edx, dword [ebx + edi*4]
add esi, 4
mov word [edx + 0x50], cx
movzx ecx, word [eax + esi*4 + 4]
mov edx, dword [ebx + edi*4]
inc esi
mov word [edx + 0x52], cx
mov edx, dword [ebx + edi*4]
mov byte [edx + 0x5b], 0
mov ecx, dword [ebx + edi*4]
inc esi
mov byte [ecx + 0x60], 0
jmp 0x456f89
mov edx, dword [ebx + edi*4]
cmp dword [edx + 0x64], 0
je 0x456eaf
mov eax, dword [0x4b5af0]
test eax, eax
jne 0x456e8f
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov ebx, dword [0x4b5a34]
mov ecx, dword [ebx + edi*4]
mov edx, dword [ecx + 0x64]
push edx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ebx, dword [0x4b5a34]
mov eax, dword [ebx + edi*4]
mov dword [eax + 0x64], 0
mov ecx, dword [ebx + edi*4]
cmp dword [ecx + 0x68], 0
je 0x456eed
mov eax, dword [0x4b5af0]
test eax, eax
jne 0x456ecd
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov ebx, dword [0x4b5a34]
mov edx, dword [ebx + edi*4]
mov ecx, dword [edx + 0x68]
push ecx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ebx, dword [0x4b5a34]
mov edx, dword [ebx + edi*4]
mov dword [edx + 0x68], 0
mov eax, dword [ebx + edi*4]
cmp dword [eax + 0x6c], 0
je 0x456f2b
mov eax, dword [0x4b5af0]
test eax, eax
jne 0x456f0b
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov ebx, dword [0x4b5a34]
mov ecx, dword [ebx + edi*4]
mov edx, dword [ecx + 0x6c]
push edx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ebx, dword [0x4b5a34]
mov eax, dword [ebx + edi*4]
mov dword [eax + 0x6c], 0
mov ecx, dword [ebx + edi*4]
cmp dword [ecx + 0x84], 0
je 0x456f72
mov eax, dword [0x4b5af0]
test eax, eax
jne 0x456f4c
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov ebx, dword [0x4b5a34]
mov edx, dword [ebx + edi*4]
mov ecx, dword [edx + 0x84]
push ecx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ebx, dword [0x4b5a34]
mov edx, dword [ebx + edi*4]
mov dword [edx + 0x84], 0
mov eax, dword [ebx + edi*4]
push 0x50
add eax, 0x48
push 0
push eax
call fcn.00463f50
mov eax, dword [esp + 0x28]
add esp, 0xc
lea edx, [eax + esi*4]
mov ecx, 0x495a5c
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
mov dl, byte [edx]
cmp dl, byte [ecx]
jne 0x456fc3
test dl, dl
je 0x456fbf
mov edx, dword [esp + 0x10]
mov dl, byte [edx + 1]
mov byte [esp + 0x1b], dl
cmp dl, byte [ecx + 1]
jne 0x456fc3
add dword [esp + 0x10], 2
add ecx, 2
test dl, dl
jne 0x456f95
xor ecx, ecx
jmp 0x456fc8
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x457053
mov ecx, dword [ebx + edi*4]
inc esi
cmp byte [eax + esi*4], 0
lea edx, [eax + esi*4]
je 0x457003
mov eax, dword [0x4b3cf8]
push 0
push 0
push eax
push 0
add ecx, 0x98
call fcn.00440090
mov ebx, dword [0x4b5a34]
mov eax, dword [esp + 0x2c]
add esp, 0x10
jmp 0x45700a
mov byte [ecx + 0xc0], 0
movzx ecx, word [eax + esi*4 + 0x10]
mov edx, dword [ebx + edi*4]
add esi, 4
mov word [edx + 0xa0], cx
movzx ecx, word [eax + esi*4 + 4]
mov edx, dword [ebx + edi*4]
inc esi
mov word [edx + 0xa2], cx
mov cl, byte [eax + esi*4 + 4]
mov edx, dword [ebx + edi*4]
inc esi
mov byte [edx + 0xab], cl
mov edx, dword [ebx + edi*4]
mov ecx, dword [eax + esi*4 + 4]
inc esi
mov dword [edx + 0xd0], ecx
mov edx, dword [ebx + edi*4]
inc esi
mov byte [edx + 0xb0], 0
lea edx, [eax + esi*4]
mov ecx, 0x495a60
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
mov dl, byte [edx]
cmp dl, byte [ecx]
jne 0x45708d
test dl, dl
je 0x457089
mov edx, dword [esp + 0x10]
mov dl, byte [edx + 1]
mov byte [esp + 0x1b], dl
cmp dl, byte [ecx + 1]
jne 0x45708d
add dword [esp + 0x10], 2
add ecx, 2
test dl, dl
jne 0x45705f
xor ecx, ecx
jmp 0x457092
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x45710f
mov ecx, dword [ebx + edi*4]
inc esi
cmp byte [eax + esi*4], 0
lea edx, [eax + esi*4]
je 0x4570cd
mov eax, dword [0x4b3cf8]
push 0
push 0
push eax
push 0
add ecx, 0xdc
call fcn.00440090
mov ebx, dword [0x4b5a34]
mov eax, dword [esp + 0x2c]
add esp, 0x10
jmp 0x4570d4
mov byte [ecx + 0x104], 0
movzx ecx, word [eax + esi*4 + 0x10]
mov edx, dword [ebx + edi*4]
add esi, 4
mov word [edx + 0xe4], cx
movzx ecx, word [eax + esi*4 + 4]
mov edx, dword [ebx + edi*4]
inc esi
mov word [edx + 0xe6], cx
mov edx, dword [ebx + edi*4]
mov cl, byte [eax + esi*4 + 4]
inc esi
mov byte [edx + 0xef], cl
mov edx, dword [ebx + edi*4]
inc esi
mov byte [edx + 0xf4], 0
mov edi, 0x495a64
lea eax, [eax + esi*4]
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x457137
test cl, cl
je 0x457133
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x457137
add eax, 2
add edi, 2
test cl, cl
jne 0x457117
xor eax, eax
jmp 0x45713c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x457545
mov eax, dword [esp + 0x14]
mov ecx, dword [ebx + eax*4]
mov edi, dword [ecx + 0x120]
inc esi
test edi, edi
je 0x4572d4
cmp dword [edi + 0x20], 0
je 0x457187
mov eax, dword [0x4b5af0]
test eax, eax
jne 0x45716f
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, dword [edi + 0x20]
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
push edx
push 0
push eax
call ebx
mov dword [edi + 0x20], 0
jmp 0x45718d
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [edi + 0x1c], 0
je 0x4571b2
mov eax, dword [0x4b5af0]
test eax, eax
jne 0x4571a2
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov ecx, dword [edi + 0x1c]
push ecx
push 0
push eax
call ebx
mov dword [edi + 0x1c], 0
cmp dword [edi + 0x24], 0
je 0x4571d7
mov eax, dword [0x4b5af0]
test eax, eax
jne 0x4571c7
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, dword [edi + 0x24]
push edx
push 0
push eax
call ebx
mov dword [edi + 0x24], 0
mov eax, dword [edi + 0x108]
test eax, eax
je 0x4572a9
cmp dword [eax + 0x20], 0
je 0x457216
mov eax, dword [0x4b5af0]
test eax, eax
jne 0x4571fa
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov ecx, dword [edi + 0x108]
mov edx, dword [ecx + 0x20]
push edx
push 0
push eax
call ebx
mov eax, dword [edi + 0x108]
mov dword [eax + 0x20], 0
mov ecx, dword [edi + 0x108]
cmp dword [ecx + 0x1c], 0
je 0x45724d
mov eax, dword [0x4b5af0]
test eax, eax
jne 0x457231
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, dword [edi + 0x108]
mov ecx, dword [edx + 0x1c]
push ecx
push 0
push eax
call ebx
mov edx, dword [edi + 0x108]
mov dword [edx + 0x1c], 0
mov eax, dword [edi + 0x108]
cmp dword [eax + 0x24], 0
je 0x457284
mov eax, dword [0x4b5af0]
test eax, eax
jne 0x457268
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov ecx, dword [edi + 0x108]
mov edx, dword [ecx + 0x24]
push edx
push 0
push eax
call ebx
mov eax, dword [edi + 0x108]
mov dword [eax + 0x24], 0
mov eax, dword [0x4b5af0]
test eax, eax
jne 0x457293
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov ecx, dword [edi + 0x108]
push ecx
push 0
push eax
call ebx
mov dword [edi + 0x108], 0
mov eax, dword [0x4b5af0]
mov ebx, dword [edi]
test eax, eax
jne 0x4572ba
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push edi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edi, ebx
test ebx, ebx
jne 0x45715a
mov ebx, dword [0x4b5a34]
mov edx, dword [esp + 0x14]
mov eax, dword [ebx + edx*4]
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + esi*4]
mov dword [eax + 0x120], 0
mov edi, 0x495a68
mov eax, edx
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x457313
test cl, cl
je 0x45730f
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x457313
add eax, 2
add edi, 2
test cl, cl
jne 0x4572f3
xor eax, eax
jmp 0x457318
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x457545
mov edi, edx
cmp byte [edi], 0
mov edx, dword [esp + 0x14]
mov eax, dword [ebx + edx*4]
mov eax, dword [eax + 0x120]
je 0x457486
test eax, eax
jne 0x45737e
mov eax, dword [0x4b5af0]
test eax, eax
jne 0x457351
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov ebx, dword [0x4b5a34]
mov ecx, dword [esp + 0x14]
push 0x210
push 8
push eax
lea ebx, [ebx + ecx*4]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edx, dword [ebx]
mov dword [edx + 0x120], eax
mov eax, dword [ebx]
mov ecx, dword [eax + 0x120]
mov dword [esp + 0x10], ecx
mov ebx, ecx
jmp 0x4573b3
mov ebx, eax
mov eax, dword [ebx]
test eax, eax
je 0x45738e
mov ebx, eax
mov eax, dword [ebx]
test eax, eax
jne 0x457386
mov eax, dword [0x4b5af0]
test eax, eax
jne 0x45739d
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push 0x210
push 8
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebx], eax
mov ebx, eax
mov dword [esp + 0x10], ebx
push 0
mov dword [ebx], 0
mov edx, dword [0x4b3cf8]
push 0
push edx
push 0
mov edx, edi
mov ecx, ebx
call fcn.00440090
add edi, 0x20
mov ecx, ebx
add esp, 0x10
add esi, 8
sub ecx, edi
mov byte [ebx + 0x13], 2
mov eax, edi
lea edx, [ecx + 0x38]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x4573e5
mov dx, word [edi + 0x20]
add edi, 0x20
add esi, 8
add edi, 4
mov word [ebx + 8], dx
mov ax, word [edi]
inc esi
add edi, 4
mov word [ebx + 0xa], ax
inc esi
mov byte [ebx + 0x18], cl
cmp dword [edi], 0
je 0x45750b
mov eax, dword [0x4b5af0]
test eax, eax
jne 0x457427
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push 0x50
push 8
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, dword [esp + 0x10]
mov ebx, eax
mov dword [ecx + 0x108], ebx
push 0
mov dword [ebx], 0
mov edx, dword [0x4b3cf8]
push 0
push edx
push 0
mov edx, edi
mov ecx, ebx
call fcn.00440090
add edi, 0x20
add esi, 8
mov byte [ebx + 0x13], 0
mov byte [ebx + 0x38], 1
mov ax, word [edi]
add edi, 4
inc esi
mov word [ebx + 8], ax
mov cx, word [edi]
add esp, 0x10
inc esi
mov word [ebx + 0xa], cx
add edi, 4
jmp 0x45750b
test eax, eax
jne 0x4574c6
mov eax, dword [0x4b5af0]
test eax, eax
jne 0x45749f
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov ebx, dword [0x4b5a34]
mov ecx, dword [esp + 0x14]
push 0x210
push 8
push eax
lea ebx, [ebx + ecx*4]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edx, dword [ebx]
mov dword [edx + 0x120], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x120]
jmp 0x4574f7
mov ebx, eax
mov eax, dword [ebx]
test eax, eax
je 0x4574d8
mov edi, edi
mov ebx, eax
mov eax, dword [ebx]
test eax, eax
jne 0x4574d0
mov eax, dword [0x4b5af0]
test eax, eax
jne 0x4574e7
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push 0x210
push 8
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebx], eax
add esi, 0x1c
mov dword [eax], 0
mov byte [eax + 0x13], 2
mov byte [eax + 0x18], 0
add edi, 0x70
mov ecx, 0x495a68
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x457532
test dl, dl
je 0x45752e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x457532
add eax, 2
add ecx, 2
test dl, dl
jne 0x457512
xor eax, eax
jmp 0x457537
sbb eax, eax
sbb eax, 0xffffffff
mov ebx, dword [0x4b5a34]
test eax, eax
jne 0x457322
mov ecx, dword [esp + 0x1c]
inc dword [esp + 0x14]
lea eax, [ecx + esi*4]
mov ecx, 0x495a68
mov edi, eax
mov dl, byte [edi]
cmp dl, byte [ecx]
jne 0x457577
test dl, dl
je 0x457573
mov dl, byte [edi + 1]
cmp dl, byte [ecx + 1]
jne 0x457577
add edi, 2
add ecx, 2
test dl, dl
jne 0x457557
xor ecx, ecx
jmp 0x45757c
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x456ca0
mov ebx, dword [esp + 0x1c]
inc esi
lea eax, [ebx + esi*4]
mov edi, 0x495a6c
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x4575b1
test cl, cl
je 0x4575ad
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x4575b1
add eax, 2
add edi, 2
test cl, cl
jne 0x457591
xor eax, eax
jmp 0x4575b6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4576a4
mov eax, dword [0x4b5a38]
xor edi, edi
cmp byte [ebx + esi*4], 0
lea edx, [ebx + esi*4]
je 0x4575ed
mov ecx, dword [0x4b3cf8]
push 1
push 1
push ecx
mov ecx, dword [edi + eax]
push 0
call fcn.00440090
mov eax, dword [0x4b5a38]
add esp, 0x10
jmp 0x4575f4
mov edx, dword [edi + eax]
mov byte [edx + 0x28], 0
movzx edx, word [ebx + esi*4 + 0x10]
mov ecx, dword [edi + eax]
mov word [ecx + 8], dx
mov ecx, dword [edi + eax]
add esi, 4
movzx edx, word [ebx + esi*4 + 4]
mov word [ecx + 0xa], dx
mov ecx, dword [edi + eax]
inc esi
movzx edx, byte [ebx + esi*4 + 4]
mov byte [ecx + 0x13], dl
mov ecx, dword [edi + eax]
inc esi
movzx edx, byte [ebx + esi*4 + 4]
mov byte [ecx + 0x18], dl
mov ecx, dword [edi + eax]
inc esi
movzx edx, byte [ebx + esi*4 + 4]
inc esi
mov byte [ecx + 0x38], dl
movzx edx, byte [ebx + esi*4 + 4]
mov ecx, dword [edi + eax]
inc esi
mov byte [ecx + 0x17], dl
movzx edx, byte [ebx + esi*4 + 4]
mov ecx, dword [edi + eax]
inc esi
mov byte [ecx + 0x39], dl
movzx edx, word [ebx + esi*4 + 4]
mov ecx, dword [edi + eax]
inc esi
inc esi
mov word [ecx + 0x44], dx
lea edx, [ebx + esi*4]
add edi, 4
mov ecx, 0x495a6c
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
mov dl, byte [edx]
cmp dl, byte [ecx]
jne 0x457697
test dl, dl
je 0x457693
mov edx, dword [esp + 0x10]
mov dl, byte [edx + 1]
mov byte [esp + 0x1b], dl
cmp dl, byte [ecx + 1]
jne 0x457697
add dword [esp + 0x10], 2
add ecx, 2
test dl, dl
jne 0x457669
xor ecx, ecx
jmp 0x45769c
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x4575c5
mov eax, dword [0x4b5acc]
inc esi
lea edx, [ebx + esi*4]
mov dword [esp + 0x14], eax
mov edi, 0x495a64
mov eax, edx
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x4576d8
test cl, cl
je 0x4576d4
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x4576d8
add eax, 2
add edi, 2
test cl, cl
jne 0x4576b8
xor eax, eax
jmp 0x4576dd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4578d2
mov edi, edx
mov ecx, dword [edi]
mov eax, dword [esp + 0x14]
add edi, 4
mov dword [eax + 0x5c7c], ecx
mov edx, dword [edi]
add edi, 4
mov dword [eax + 0x5c80], edx
mov ecx, dword [edi]
mov edx, dword [edi + 4]
inc esi
add edi, 4
inc esi
add edi, 4
inc esi
mov dword [eax + 0x5c84], edx
mov dword [0x4b5a58], ecx
mov ecx, dword [edi]
inc esi
add edi, 4
mov dword [eax + 0x5c88], ecx
mov edx, dword [edi]
mov ecx, dword [edi + 4]
inc esi
add edi, 4
inc esi
inc esi
add edi, 4
sub edx, 0
je 0x4577be
sub edx, 1
je 0x457768
sub edx, 1
jne 0x4577d2
cmp dword [eax + 0x572c], 1
jne 0x4577d2
mov dword [eax + 0x572c], 2
jmp 0x4577d2
cmp dword [eax + 0x572c], 2
lea ebx, [eax + 0x572c]
jne 0x45777c
mov dword [ebx + 0xc], ecx
jmp 0x4577d2
mov dword [ebx + 0xc], 3
mov dword [ebx], 1
mov dword [ebx + 8], ecx
test ecx, ecx
jge 0x457797
mov eax, 2
jmp 0x4577a2
xor eax, eax
cmp ecx, 2
setg al
dec eax
and eax, ecx
mov dword [ebx + 8], eax
mov dword [ebx + 4], 0xff
call fcn.00415530
mov ecx, ebx
call fcn.00415600
mov eax, dword [esp + 0x14]
jmp 0x4577d2
mov dword [eax + 0x5738], 3
mov dword [eax + 0x572c], 0
mov ecx, dword [edi]
inc esi
add edi, 4
sub ecx, 0
je 0x45786c
sub ecx, 1
je 0x457815
sub ecx, 1
jne 0x457877
mov eax, dword [esp + 0x14]
add eax, 0x5774
cmp dword [eax], 1
jne 0x457877
mov eax, dword [esp + 0x14]
add eax, 0x5774
mov dword [eax], 2
jmp 0x457877
mov ebx, dword [esp + 0x14]
push edi
add ebx, 0x5774
call fcn.00415ae0
test eax, eax
je 0x457877
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x577c]
add ecx, 0x5774
mov dword [ecx], 1
mov edx, dword [eax + 0x28]
mov dword [ecx + 0xc], edx
mov eax, dword [eax + 0x2c]
cdq
xor eax, edx
sub eax, edx
mov dword [ecx + 0x10], eax
mov dword [ecx + 4], 1
sub ecx, edi
mov eax, edi
lea edx, [ecx + 0x20]
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x457860
jmp 0x457877
add eax, 0x5774
mov dword [eax], 0
mov ecx, dword [edi + 0x10]
mov eax, dword [esp + 0x14]
add edi, 0x10
mov edx, dword [edi + 4]
add esi, 4
add edi, 4
inc esi
add edi, 4
inc esi
add eax, 0x5774
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], edx
mov ecx, 0x495a64
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4578c1
test dl, dl
je 0x4578bd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4578c1
add eax, 2
add ecx, 2
test dl, dl
jne 0x4578a1
xor eax, eax
jmp 0x4578c6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4576e7
mov ebx, dword [esp + 0x1c]
inc esi
lea eax, [ebx + esi*4]
mov edi, 0x495a70
jmp 0x4578e0
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x457900
test cl, cl
je 0x4578fc
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x457900
add eax, 2
add edi, 2
test cl, cl
jne 0x4578e0
xor eax, eax
jmp 0x457905
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x457a1e
mov ecx, dword [0x4b5a3c]
xor edi, edi
cmp byte [ebx + esi*4], 0
lea edx, [ebx + esi*4]
je 0x45793d
mov eax, dword [0x4b3cf8]
mov ecx, dword [ecx + edi]
push 0
push 0
push eax
push 3
call fcn.00440090
mov ecx, dword [0x4b5a3c]
add esp, 0x10
jmp 0x457944
mov edx, dword [ecx + edi]
mov byte [edx + 0x28], 0
movzx edx, word [ebx + esi*4 + 0x10]
mov eax, dword [ecx + edi]
add esi, 4
mov word [eax + 8], dx
movzx edx, word [ebx + esi*4 + 4]
mov eax, dword [ecx + edi]
inc esi
mov word [eax + 0xa], dx
mov eax, dword [ecx + edi]
mov byte [eax + 0x13], 2
mov edx, dword [ecx + edi]
inc esi
lea eax, [ebx + esi*4]
mov dword [esp + 0x10], eax
mov byte [edx + 0x18], 0
mov eax, dword [ecx + edi]
add eax, 0x110
mov edx, dword [esp + 0x10]
mov dl, byte [edx]
inc dword [esp + 0x10]
mov byte [eax], dl
inc eax
mov byte [esp + 0x1b], dl
test dl, dl
jne 0x45797e
mov eax, dword [ecx + edi]
add eax, 0x110
lea edx, [eax + 1]
mov dword [esp + 0x10], edx
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4579a2
sub eax, dword [esp + 0x10]
add eax, 4
shr eax, 2
add esi, eax
movzx edx, word [ebx + esi*4]
mov eax, dword [ecx + edi]
mov word [eax + 0x10c], dx
movzx edx, word [ebx + esi*4 + 4]
mov eax, dword [ecx + edi]
inc esi
inc esi
mov word [eax + 0x10e], dx
lea edx, [ebx + esi*4]
add edi, 4
mov eax, 0x495a70
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
mov dl, byte [edx]
cmp dl, byte [eax]
jne 0x457a11
test dl, dl
je 0x457a0d
mov edx, dword [esp + 0x10]
mov dl, byte [edx + 1]
mov byte [esp + 0x1b], dl
cmp dl, byte [eax + 1]
jne 0x457a11
add dword [esp + 0x10], 2
add eax, 2
test dl, dl
jne 0x4579e3
xor eax, eax
jmp 0x457a16
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x457915
inc esi
lea edx, [ebx + esi*4]
mov edi, 0x495a74
mov eax, edx
lea esp, [esp]
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x457a50
test cl, cl
je 0x457a4c
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x457a50
add eax, 2
add edi, 2
test cl, cl
jne 0x457a30
xor eax, eax
jmp 0x457a55
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x457a22
mov eax, dword [esp + 0x20]
shr eax, 2
inc esi
dec eax
cmp esi, eax
jge 0x457b16
mov eax, dword [0x4b5a44]
nop
movzx edx, byte [ebx + esi*4 + 3]
mov ecx, dword [eax]
mov byte [ecx + 4], dl
movzx edx, byte [ebx + esi*4 + 2]
mov ecx, dword [eax]
mov byte [ecx + 5], dl
mov ecx, dword [ebx + esi*4]
mov edx, dword [eax]
sar ecx, 8
mov byte [edx + 6], cl
movzx edx, byte [ebx + esi*4]
mov ecx, dword [eax]
mov byte [ecx + 7], dl
movzx edx, word [ebx + esi*4 + 4]
mov ecx, dword [eax]
mov word [ecx + 8], dx
mov ecx, dword [eax]
inc esi
movzx edx, word [ebx + esi*4 + 4]
mov word [ecx + 0xa], dx
mov ecx, dword [eax]
inc esi
movzx edx, word [ebx + esi*4 + 4]
mov word [ecx + 0xc], dx
mov ecx, dword [eax]
inc esi
movzx edx, word [ebx + esi*4 + 4]
mov word [ecx + 0xe], dx
mov ecx, dword [eax]
inc esi
movzx edx, byte [ebx + esi*4 + 4]
mov byte [ecx + 0x14], dl
mov ecx, dword [eax]
inc esi
movzx edx, byte [ebx + esi*4 + 4]
inc esi
mov byte [ecx + 0x18], dl
movzx edx, word [ebx + esi*4 + 4]
mov ecx, dword [eax]
inc esi
mov word [ecx + 0x1a], dx
movzx edx, word [ebx + esi*4 + 4]
mov ecx, dword [eax]
inc esi
mov word [ecx + 0x1c], dx
movzx edx, word [ebx + esi*4 + 4]
mov ecx, dword [eax]
inc esi
mov word [ecx + 0x1e], dx
mov ecx, dword [esp + 0x20]
shr ecx, 2
inc esi
dec ecx
add eax, 4
cmp esi, ecx
jl 0x457a70
mov eax, dword [0x4b5af0]
test eax, eax
jne 0x457b25
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push ebx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
push 0x4b5b70
push 0x4b3848
lea edx, [esp + 0x290]
push str._s_txt_s.TXT
push edx
call fcn.0045f116
push 0x4b5b70
lea eax, [esp + 0x7c]
push str._s.SCR
push eax
call fcn.0045f116
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileA]
add esp, 0x1c
push 0
push 0x80
push 3
push 0
push 0
push DirectSoundCreate
lea ecx, [esp + 0x2a0]
push ecx
call edi
mov esi, eax
cmp esi, 0xffffffff
je 0x457ba9
mov eax, dword [0x4b3d24]
push 0
lea edx, [esp + 0x20]
push edx
push 0x400000
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
jmp 0x457c67
mov ecx, dword [0x4b3cfc]
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
lea eax, [esp + 0x68]
push eax
call edx
cmp eax, 0xffffffff
je 0x457bf3
mov edx, dword [0x4b3d20]
mov ecx, dword [0x4b3cfc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
push edx
lea edx, [esp + 0x6c]
push edx
call eax
mov ecx, dword [0x4b3d24]
mov edx, dword [0x4b3d20]
push ecx
call fcn.00443070
add esp, 4
jmp 0x457c6e
push 0x4b5b70
push 0x4b3848
lea edx, [esp + 0x290]
push str._s_scr_s.scr
push edx
call fcn.0045f116
add esp, 0x10
push 0
push 0x80
push 3
push 0
push 0
push DirectSoundCreate
lea eax, [esp + 0x2a0]
push eax
call edi
mov esi, eax
push 0
cmp esi, 0xffffffff
je 0x458365
mov edx, dword [0x4b3d20]
lea ecx, [esp + 0x20]
push ecx
push 0x400000
push edx
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [0x4b3d24]
mov edx, dword [0x4b3d20]
push eax
call fcn.00443070
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x4b5b98
call fcn.00450b20
add esp, 4
push 0x4b5b9c
call fcn.00450b20
add esp, 4
push 0x4b5ba4
mov ebx, 0x4b5b70
call fcn.0044ffa0
mov ecx, dword [0x4b5acc]
xor ebx, ebx
add esp, 4
mov dword [ecx + 0x58a8], ebx
xor eax, eax
lea ebx, [ebx]
mov cl, byte [esp + eax + 0x188]
mov byte [eax + 0x4b5bc4], cl
inc eax
test cl, cl
jne 0x457cb0
call fcn.004549c0
mov edi, dword [0x4b5a3c]
xor ecx, ecx
cmp dword [edi], 0xffffffff
je 0x457ce7
mov eax, edi
mov edx, dword [eax]
cmp byte [edx + 0x28], bl
jne 0x457ce7
inc ecx
cmp dword [edi + ecx*4], 0xffffffff
lea eax, [edi + ecx*4]
jne 0x457cd6
mov eax, dword [0x4b5a58]
mov esi, dword [0x4b3d40]
push eax
call fcn.0042eb60
mov esi, dword [0x4b5a38]
mov edx, dword [esi]
add esp, 4
cmp byte [edx + 0x28], bl
je 0x457d38
mov ecx, dword [0x4b3d40]
movsx eax, word [edx + 0xa]
push 1
push 1
push 0xff
push ebx
push ebx
push ecx
movsx ecx, word [edx + 8]
push eax
push ecx
call fcn.0043f370
mov edi, dword [0x4b5a3c]
mov esi, dword [0x4b5a38]
add esp, 0x20
cmp edi, ebx
je 0x457e52
cmp dword [edi], 0xffffffff
mov dword [esp + 0x14], ebx
je 0x457e52
xor eax, eax
nop
mov edx, dword [edi + eax]
mov byte [edx + 0x18], 3
mov ecx, dword [edi + eax]
cmp byte [ecx + 0x28], 0
je 0x457e35
push 1
push 0
push 0xff
mov esi, ecx
movsx eax, word [esi + 0xa]
movsx ecx, word [esi + 8]
push 2
mov byte [esi + 0x18], 0
mov edx, dword [0x4b3d40]
push 0
push edx
push eax
push ecx
mov edx, esi
call fcn.0043f370
movsx edx, word [esi + 0xa]
movsx eax, word [esi + 8]
movsx edi, word [esi + 0x10e]
movsx ebx, word [esi + 0x10c]
mov ecx, dword [0x4b3d40]
add edi, edx
add ebx, eax
add esp, 0x20
add esi, 0x110
mov eax, esi
lea edx, [eax + 1]
mov dword [esp + 0x10], ecx
movzx ecx, byte [0x4b3d87]
mov dword [esp + 0x38], edx
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x457dd0
sub eax, dword [esp + 0x38]
mov edx, dword [esp + 0x10]
push eax
lea eax, [ecx + edi]
push eax
lea eax, [ecx + ebx]
mov ecx, dword [0x4b3d84]
and ecx, 0xffffff
push ecx
mov ecx, dword [edx + 0x4d0]
push ecx
mov ecx, esi
call fcn.0040f4c0
mov eax, esi
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x457e07
mov edx, dword [0x4b3d80]
sub eax, ecx
push eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x4d0]
push edi
push edx
push ecx
mov ecx, esi
mov eax, ebx
call fcn.0040f4c0
mov edi, dword [0x4b5a3c]
xor ebx, ebx
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
add eax, eax
add eax, eax
cmp dword [edi + eax], 0xffffffff
jne 0x457d50
mov esi, dword [0x4b5a38]
mov ecx, dword [0x4b5a44]
cmp ecx, ebx
je 0x457f2e
cmp dword [ecx], 0xffffffff
mov dword [esp + 0x14], ebx
je 0x457f2e
xor eax, eax
nop
mov edx, dword [ecx + eax]
cmp byte [edx + 0x18], 1
jne case.0x457e8a.1
movsx edx, word [edx + 0x1a]
cmp edx, 3
ja case.default.0x457e8a
jmp dword [edx*4 + 0x4583d4]
mov ecx, dword [ecx + eax]
movsx edx, word [ecx + 0xc]
movsx eax, word [ecx + 0x1e]
movsx ebx, word [ecx + 0x1c]
imul eax, edx
cdq
idiv ebx
movsx esi, word [ecx + 8]
movsx edi, word [ecx + 0xa]
movsx edx, word [ecx + 0xe]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
lea eax, [eax + esi - 1]
mov dword [esp + 0x40], eax
lea eax, [edx + edi + 1]
movzx edx, byte [ecx + 6]
mov dword [esp + 0x44], eax
movzx eax, byte [ecx + 5]
push edx
movzx edx, byte [ecx + 4]
movsx ecx, byte [ecx + 0x14]
push eax
mov eax, dword [0x4b3d50]
push eax
push eax
lea eax, [esp + 0x48]
call fcn.00441990
add esp, 0x10
xor ebx, ebx
jmp 0x457f0b
mov ecx, dword [0x4b3c9c]
push ebx
push 0x4944c8
push 0x495b1c
push ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [0x4b5a44]
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
add eax, eax
add eax, eax
cmp dword [ecx + eax], 0xffffffff
jne 0x457e70
mov esi, dword [0x4b5a38]
cmp esi, ebx
je 0x457f8a
cmp dword [esi + 4], 0xffffffff
mov edi, 1
je 0x457f8a
mov eax, 4
mov edx, dword [eax + esi]
cmp byte [edx + 0x28], 0
je 0x457f7c
movsx eax, byte [edx + 0x13]
movsx ecx, byte [edx + 0x18]
push 1
push 1
push 0xff
push eax
mov eax, dword [0x4b3d40]
push ecx
movsx ecx, word [edx + 0xa]
push eax
movsx eax, word [edx + 8]
push ecx
push eax
call fcn.0043f370
mov esi, dword [0x4b5a38]
add esp, 0x20
inc edi
lea eax, [edi*4]
cmp dword [eax + esi], 0xffffffff
jne 0x457f42
push 0x4b3d14
call fcn.00450b20
add esp, 4
mov dword [0x4b3ce0], ebx
mov dword [0x4b5c28], ebx
xor eax, eax
mov cl, byte [esp + eax + 0x48]
mov byte [eax + 0x4b555c], cl
inc eax
test cl, cl
jne 0x457fa5
cmp dword [0x4b3cd8], 2
je 0x457fc6
mov ecx, dword [0x4b5e4c]
push ecx
jmp 0x457fcd
mov edx, dword [0x4b5b84]
push edx
call fcn.0044c340
mov eax, dword [esp + 0x34]
add esp, 4
push 0xa
lea ecx, [esp + 0x7c]
push ecx
push eax
mov dword [0x4b5b80], eax
call fcn.00460624
mov esi, dword [0x4b3d10]
add esp, 0xc
mov edi, eax
cmp esi, ebx
je 0x45803b
lea ebx, [ebx]
mov edx, edi
mov ecx, esi
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x458024
test al, al
je 0x458020
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x458024
add ecx, 2
add edx, 2
test al, al
jne 0x458004
xor eax, eax
jmp 0x458029
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x458121
mov esi, dword [esi + 0xfc]
cmp esi, ebx
jne 0x458000
xor eax, eax
mov ecx, dword [0x4b3d1c]
mov dword [0x4b5b8c], eax
mov dword [0x4b5b84], ecx
mov dword [0x4b5b88], ecx
mov edx, dword [eax + 0xf4]
push edx
call fcn.0044b9e0
mov eax, dword [0x4b5b88]
add esp, 4
cmp byte [eax], 0
je 0x4580b2
push eax
mov eax, dword [0x4b5e4c]
push eax
call fcn.0046e3d8
add esp, 8
test eax, eax
je 0x4580b2
mov ecx, dword [0x4b5e4c]
xor eax, eax
cmp byte [ecx], al
je 0x4580a8
mov cl, byte [ecx]
mov edi, edi
mov edx, dword [0x4b5b88]
mov byte [eax + edx], cl
mov ecx, dword [0x4b5e4c]
mov cl, byte [eax + ecx + 1]
inc eax
test cl, cl
jne 0x458090
mov edx, dword [0x4b5b88]
mov byte [eax + edx], 0
mov eax, dword [esp + 0x28]
add dword [0x4b5b88], eax
mov eax, dword [0x4b5e4c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4580c4
mov ecx, dword [0x4b41c0]
mov esi, dword [sym.imp.WINMM.dll_timeGetTime]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, edx
mov edx, dword [0x4b41c4]
shr eax, 1
imul edx, edx, 0x3e8
imul ecx, eax
mov dword [0x4b41cc], eax
mov eax, dword [0x4b41c8]
imul eax, eax, 0x3e8
add ecx, edx
cmp eax, ecx
jbe 0x45813a
cmp dword [0x4b5a90], 1
jne 0x458128
call edi
mov ecx, dword [0x4b41c8]
imul ecx, ecx, 0x3e8
add ecx, eax
jmp 0x458166
mov eax, esi
jmp 0x45803d
call esi
mov ecx, dword [0x4b41c8]
imul ecx, ecx, 0x3e8
add ecx, eax
jmp 0x458166
cmp dword [0x4b5a90], 1
jne 0x458147
call edi
jmp 0x458149
call esi
mov edx, dword [0x4b41c0]
imul edx, dword [0x4b41cc]
mov ecx, dword [0x4b41c4]
imul ecx, ecx, 0x3e8
add edx, eax
add ecx, edx
push ebx
mov dword [0x4b41cc], ecx
call fcn.00442bd0
add esp, 4
cmp dword [ebp + 8], 0x64
jne 0x45819e
mov edx, dword [0x4b3d3c]
mov eax, dword [0x4b3d38]
push edx
push eax
push ebx
push ebx
push ebx
push ebx
mov eax, 0x257
mov ecx, 0x31f
call fcn.0042e6a0
add esp, 0x18
cmp dword [0x4b5a90], 1
jne 0x4581ab
call edi
jmp 0x4581ad
call esi
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov esi, 1
mov dword [0x4b5c68], ebx
mov dword [0x4b5c94], ebx
mov dword [0x4b5cc0], ebx
mov dword [0x4b5cec], ebx
mov dword [0x4b5d18], ebx
mov dword [0x4b5d44], ebx
mov dword [0x4b5d70], ebx
mov dword [0x4b5d9c], ebx
mov dword [0x4b5dc8], ebx
mov dword [0x4b5c3c], 0x50
mov dword [0x4b5c40], ebx
mov dword [0x4b5c44], ebx
mov dword [0x4b5c48], 0x320
mov dword [0x4b5c4c], 0x258
mov dword [0x4b5c50], 0x1f4
mov dword [0x4b5c54], eax
mov dword [0x4b5c58], ecx
mov dword [0x4b5c5c], edx
mov dword [0x4b5c60], ebx
mov dword [0x4b5c64], ebx
mov dword [0x4b5c38], esi
cmp dword [0x4b3cd8], ebx
jne 0x45826e
mov eax, dword [0x4b5acc]
mov dword [eax + 0x5a38], ebx
cmp dword [0x4b3cd8], ebx
jne 0x45826e
mov ecx, dword [0x4b5acc]
mov dword [ecx + 0x5a3c], ebx
cmp byte [0x4b5be4], 0
je 0x458298
push 0x4b5be4
push 0x4b3c48
lea edx, [esp + 0x90]
push 0x494be0
push edx
call fcn.0045f116
add esp, 0x10
jmp 0x4582b2
push 0x4b3c48
lea eax, [esp + 0x8c]
push 0x495b40
push eax
call fcn.0045f116
add esp, 0xc
mov edx, dword [0x4b3c9c]
lea ecx, [esp + 0x88]
push ecx
push edx
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov dword [0x4b3844], 0x42f770
cmp dword [0x4b3cd8], ebx
jne 0x4582f8
mov eax, dword [0x4b5acc]
mov dword [eax + 0x5a38], esi
cmp dword [0x4b3cd8], ebx
jne 0x4582f8
mov ecx, dword [0x4b5acc]
mov dword [ecx + 0x5a3c], esi
cmp byte [0x4b5e0c], 0
je 0x458327
mov eax, dword [esp + 0x34]
xor ecx, ecx
cmp eax, 2
setne cl
push ebx
push 0x493a60
mov ebx, 0x4b5e0c
mov dword [0x4b5e04], eax
call fcn.0045af90
add esp, 8
xor ebx, ebx
cmp byte [0x4b5e34], 0
je 0x45834e
cmp dword [0x4b5e30], 2
jne 0x45834e
push ebx
push 0x493c98
xor ecx, ecx
mov ebx, 0x4b5e34
call fcn.0045af90
add esp, 8
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa80]
xor ecx, esp
call fcn.0045f0aa
mov esp, ebp
pop ebp
ret
mov edx, dword [0x4b3c9c]
push 0x495af8
push 0x495b00
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [esp + 0xa8c]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.0045f0aa
mov esp, ebp
pop ebp
ret