Function at 0x42ba60
Capabilities:
Check for time delay via queryperformancecounter
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x77c
push ebx
push esi
push edi
mov eax, dword [0x500178]
mov ecx, dword [0x504b30]
mov dword [esp + 0x84], eax
mov eax, dword [ebp + 8]
neg eax
sbb eax, eax
and eax, 0xfffffe80
add eax, 0x200
mov dword [esp + 0x48], eax
mov ebx, dword [0x5040e8]
mov eax, dword [ebx + 0x8740]
mov dword [esp + 0x78], eax
mov esi, dword [eax + 0x20]
add esi, dword [eax + 0x14]
mov dword [esp + 0x80], ecx
mov ecx, dword [eax + 0x1c]
add ecx, dword [eax + 0x10]
mov eax, 0x2aaaaaab
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x54], eax
add eax, esi
mov dword [esp + 0x98], eax
shl eax, 4
add eax, esi
mov dword [esp + 0x94], eax
lea eax, [ecx*8]
sub eax, ecx
add eax, eax
xor edx, edx
mov edi, ecx
mov dword [esp + 0xa4], eax
mov eax, dword [0x504224]
shl edi, 5
mov dword [esp + 0x24], 0
mov dword [esp + 0x40], esi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x90], edi
cmp eax, 2
je 0x42bb27
cmp eax, 3
jne 0x42bb31
mov dword [esp + 0x74], 0x406080
jmp 0x42bb7c
mov edx, dword [0x5042a4]
mov ecx, dword [edx]
mov eax, dword [ecx + 4]
imul eax, dword [0x5042a8]
add eax, dword [ecx + 0x18]
je 0x42bb53
cmp dword [eax + 0x1c], 1
jne 0x42bb53
mov eax, dword [eax + 0x24]
jmp 0x42bb55
xor eax, eax
mov eax, dword [eax + 4]
push 0x40
push 0x60
push 0x80
push eax
call sub.SDL.dll_SDL_MapRGB
mov ebx, dword [0x5040e8]
mov dword [esp + 0x84], eax
mov eax, dword [0x504224]
add esp, 0x10
cmp eax, 2
je 0x42bb86
cmp eax, 3
jne 0x42bb90
mov dword [esp + 0x4c], 0x203040
jmp 0x42bbd0
mov ecx, dword [0x5042a4]
mov ecx, dword [ecx]
mov eax, dword [ecx + 4]
imul eax, dword [0x5042a8]
add eax, dword [ecx + 0x18]
je 0x42bbb2
cmp dword [eax + 0x1c], 1
jne 0x42bbb2
mov eax, dword [eax + 0x24]
jmp 0x42bbb4
xor eax, eax
mov edx, dword [eax + 4]
push 0x20
push 0x30
push 0x40
push edx
call sub.SDL.dll_SDL_MapRGB
mov ebx, dword [0x5040e8]
add esp, 0x10
mov dword [esp + 0x4c], eax
mov eax, dword [0x5050e8]
sub eax, edi
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x88], eax
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add esi, 0x28
mov dword [esp + 0x60], eax
add eax, 0xf
cmp dword [ebp + 8], 0
mov dword [esp + 0x8c], esi
mov dword [esp + 0x44], eax
jne 0x42bc13
lea eax, [ebx + 0x11f88]
lea ecx, [ebx + 0x11fbc]
jmp 0x42bc1f
lea eax, [ebx + 0x120c0]
lea ecx, [ebx + 0x120f4]
mov edx, dword [eax + 4]
mov dword [esp + 0xe0], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0xe4], edx
mov edx, dword [eax + 0x10]
mov dword [esp + 0xe8], edx
mov edx, dword [eax + 8]
mov dword [esp + 0xec], edx
mov edx, dword [eax + 0x14]
mov dword [esp + 0xf0], edx
mov edx, dword [eax + 0x18]
mov dword [esp + 0xf4], edx
mov edx, dword [eax + 0x1c]
mov dword [esp + 0xf8], edx
mov edx, dword [eax + 0x20]
mov dword [esp + 0xfc], edx
mov edx, dword [eax + 0x24]
mov dword [esp + 0x68], eax
mov dword [esp + 0x100], edx
mov edx, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x108], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x104], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x110], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x10c], edx
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x118], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x114], edx
mov edx, dword [ecx + 0x14]
mov dword [esp + 0x120], eax
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x11c], edx
mov edx, dword [ecx + 0x1c]
mov dword [esp + 0x128], eax
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x124], edx
mov edx, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x2c]
mov dword [esp + 0x130], eax
mov eax, dword [ebx + 0x8730]
mov dword [esp + 0x134], ecx
xor ecx, ecx
mov dword [esp + 0x138], 0x4f5b7c
mov dword [esp + 0x13c], 0x4f5b88
mov dword [esp + 0x140], str.Down
mov dword [esp + 0x144], str.Left
mov dword [esp + 0x148], str.Right
mov dword [esp + 0x14c], str.ACLS
mov dword [esp + 0x150], str.BXYZ
mov dword [esp + 0x154], 0x4f4560
mov dword [esp + 0x158], 0x4f5ba8
mov dword [esp + 0x15c], 0x4f5bac
mov dword [esp + 0x160], 0x4f5bb0
mov dword [esp + 0x164], 0x4f5bb4
mov dword [esp + 0x168], 0x4f5bbc
mov dword [esp + 0x16c], 0x4f5bc4
mov dword [esp + 0x12c], edx
call fcn.0046ba90
mov edx, dword [0x504b2c]
mov eax, dword [0x504b28]
xor esi, esi
push esi
push 2
push edx
mov edi, 0x3c
push eax
mov dword [0x503cf0], edi
mov dword [0x504b30], edi
call fcn.004dd810
mov ebx, 1
push esi
add eax, ebx
push edi
adc edx, esi
push edx
push eax
call fcn.004dd850
push esi
push 2
push edx
push eax
call fcn.004dd850
mov dword [0x503cd8], eax
mov dword [0x503cdc], edx
cmp dword [0x504724], esi
je 0x42be16
lea ecx, [esp + 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
jmp 0x42be1e
call dword [sym.imp.WINMM.dll_timeGetTime]
xor ecx, ecx
sub eax, dword [0x503ce0]
mov dword [0x504718], esi
sbb ecx, dword [0x503ce4]
add dword [0x504728], ebx
mov dword [0x504710], eax
mov dword [0x504714], ecx
mov dword [0x50471c], esi
call fcn.0046b210
mov dword [0x503874], esi
mov dword [0x503870], esi
mov dword [0x503ccc], esi
mov dword [0x503cc8], esi
call fcn.0046b560
mov edx, dword [0x5040e8]
mov dword [0x504290], esi
mov dword [0x50428c], esi
mov edi, dword [edx + 0x10c24]
mov dword [0x500178], ebx
call fcn.00410550
mov eax, dword [0x5040e8]
mov dword [eax + 0x11ea0], esi
mov dword [eax + 0x11ea4], esi
cmp dword [0x504724], esi
je 0x42beba
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
jmp 0x42bec2
call dword [sym.imp.WINMM.dll_timeGetTime]
xor ecx, ecx
sub eax, dword [0x503ce0]
mov dword [0x504718], esi
sbb ecx, dword [0x503ce4]
add dword [0x504728], ebx
mov dword [0x504710], eax
mov dword [0x504714], ecx
mov dword [0x50471c], esi
jmp 0x42bef0
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x14], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x34], ebx
call fcn.0046b210
mov eax, dword [0x503870]
cmp eax, dword [0x503874]
je 0x42bf4c
cmp dword [0x5044d0], ebx
jne 0x42bf2a
xor eax, eax
jmp 0x42bf46
mov ecx, dword [eax*4 + 0x503470]
inc eax
cmp eax, 0x100
mov dword [0x503870], eax
jl 0x42bf44
mov dword [0x503870], ebx
mov eax, ecx
mov esi, eax
mov dword [esp + 0x14], esi
call fcn.00474b10
test eax, eax
je 0x42bf92
cmp dword [0x504504], ebx
jne 0x42bf61
xor eax, eax
jmp 0x42bf8e
mov eax, dword [0x503cc8]
cmp eax, dword [0x503ccc]
je 0x42d5d2
mov ecx, dword [eax*4 + 0x5038c8]
inc eax
cmp eax, 0x100
mov dword [0x503cc8], eax
jl 0x42bf8c
mov dword [0x503cc8], ebx
mov eax, ecx
mov dword [esp + 0xc], eax
mov edi, dword [0x5040e8]
xor edx, edx
cmp dword [edi + 0x128c0], edx
jne 0x42bfb7
lea esi, [esp + 0x14]
call fcn.0040b9d0
mov edi, dword [0x5040e8]
mov esi, dword [esp + 0x14]
xor edx, edx
call fcn.0046b6e0
test eax, eax
je 0x42bff5
cmp dword [0x504504], edx
jne 0x42bfd0
cmp dword [0x5044d0], edx
je 0x42bff5
mov eax, dword [0x50428c]
cmp eax, dword [0x504290]
je 0x42d5d0
inc eax
cmp eax, dword [0x504294]
mov dword [0x50428c], eax
jl 0x42bff5
mov dword [0x50428c], edx
mov eax, dword [esp + 0xc]
and eax, 0xffffff9f
cmp esi, 0xd
je 0x42c009
lea ecx, [eax - 5]
cmp ecx, 0x1a
ja 0x42c011
mov dword [esp + 0x34], 1
cmp esi, 0x111
je 0x42c01e
cmp eax, 1
jne 0x42c023
mov ebx, 1
cmp esi, 0x112
je 0x42c030
cmp eax, 2
jne 0x42c038
mov dword [esp + 0x3c], 1
cmp esi, 0x114
je 0x42c045
cmp eax, 3
jne 0x42c04d
mov dword [esp + 0x38], 1
cmp esi, 0x113
je 0x42c05a
cmp eax, 4
jne 0x42c062
mov dword [esp + 0x28], 1
mov eax, dword [esp + 0x24]
cmp eax, edx
je 0x42c07c
mov dword [esp + 0x3c], edx
xor ebx, ebx
mov dword [esp + 0x38], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x34], edx
cmp esi, 0x11a
je 0x42c08c
cmp esi, 0x11b
jne 0x42c0a7
xor ecx, ecx
cmp esi, 0x11a
setne cl
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 1
mov dword [esp + 0x2c], ecx
cmp esi, 0x11c
je 0x42c0b7
cmp esi, 0x11d
jne 0x42c0d6
xor ecx, ecx
cmp esi, 0x11c
setne cl
mov dword [esp + 0x30], 0xc
mov dword [esp + 0x34], 1
mov dword [esp + 0x2c], ecx
cmp esi, 0x1b
jne 0x42c0df
cmp eax, edx
je 0x42c0e7
cmp dword [0x504280], edx
je 0x42c0f7
mov dword [esp + 0x30], 0xd
mov dword [esp + 0x34], 1
cmp esi, 0x1b
jne 0x42c163
cmp eax, edx
je 0x42c163
mov ecx, dword [esp + 0x2c]
imul ecx, ecx, 0x2c
lea eax, [esp + ecx + 0xe0]
lea ecx, [esp + ecx + 0x730]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], edx
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [ecx + 0x10]
mov dword [eax + 0x10], edx
mov edx, dword [ecx + 0x14]
mov dword [eax + 0x14], edx
mov edx, dword [ecx + 0x18]
mov dword [eax + 0x18], edx
mov edx, dword [ecx + 0x1c]
mov dword [eax + 0x1c], edx
mov edx, dword [ecx + 0x20]
mov dword [eax + 0x20], edx
mov edx, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
mov dword [eax + 0x24], edx
mov dword [eax + 0x28], ecx
xor edx, edx
cmp ebx, edx
je 0x42c186
mov eax, dword [esp + 0x30]
cmp eax, edx
jle 0x42c258
dec eax
cmp eax, 1
mov dword [esp + 0x30], eax
jl 0x42c186
cmp eax, 0xc
jge 0x42c186
mov dword [esp + 0x30], edx
cmp dword [esp + 0x3c], edx
je 0x42c1ac
mov eax, dword [esp + 0x30]
cmp eax, 0xd
jge 0x42c265
inc eax
mov dword [esp + 0x30], eax
dec eax
cmp eax, 0xa
ja 0x42c1ac
mov dword [esp + 0x30], 0xc
cmp dword [esp + 0x38], edx
je 0x42c1b6
mov dword [esp + 0x2c], edx
cmp dword [esp + 0x28], edx
je 0x42c1c4
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
cmp eax, edx
je 0x42c26e
cmp dword [esp + 0x30], edx
jne 0x42c26e
mov esi, dword [esp + 0x2c]
mov ecx, esi
imul ecx, ecx, 0x2c
mov ebx, dword [esp + ecx + 0xe0]
mov dword [esp + ecx + 0x730], ebx
mov ebx, dword [esp + ecx + 0xe4]
lea eax, [esp + ecx + 0x730]
lea ecx, [esp + ecx + 0xe0]
mov dword [eax + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [eax + 8], ebx
mov ebx, dword [ecx + 0xc]
mov dword [eax + 0xc], ebx
mov ebx, dword [ecx + 0x10]
mov dword [eax + 0x10], ebx
mov ebx, dword [ecx + 0x14]
mov dword [eax + 0x14], ebx
mov ebx, dword [ecx + 0x18]
mov dword [eax + 0x18], ebx
mov ebx, dword [ecx + 0x1c]
mov dword [eax + 0x1c], ebx
mov ebx, dword [ecx + 0x20]
mov dword [eax + 0x20], ebx
mov ebx, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
mov dword [eax + 0x24], ebx
inc esi
mov dword [eax + 0x28], ecx
xor eax, eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x64], eax
mov dword [0x500178], edx
xor esi, esi
mov dword [esp + 0xc], edx
jmp 0x42c2b5
mov dword [esp + 0x30], 0xd
jmp 0x42c186
mov dword [esp + 0x30], edx
jmp 0x42c1ac
cmp dword [esp + 0x30], 0xc
jne 0x42c2b1
cmp eax, edx
je 0x42c2b1
mov eax, dword [esp + 0x2c]
mov ebx, dword [ebp + 8]
imul eax, eax, 0x2c
mov ecx, 0xb
cmp ebx, edx
jne 0x42c294
mov edx, dword [eax + 0x4f2038]
jmp 0x42c29a
mov edx, dword [eax + 0x4f2090]
mov dword [esp + eax + 0xe0], edx
add eax, 4
xor edx, edx
sub ecx, 1
jne 0x42c288
mov eax, dword [esp + 0x64]
jmp 0x42c2b8
mov eax, dword [esp + 0x64]
mov ebx, dword [ebp + 8]
cmp dword [esp + 0x24], edx
je 0x42c33e
cmp esi, 0x1b
je 0x42c33e
cmp ebx, edx
jne 0x42c2f8
cmp esi, edx
je 0x42c30d
test esi, 0x200
jne 0x42c30d
mov ecx, dword [esp + 0xc]
cmp esi, 0x20
je 0x42c312
cmp ebx, edx
jne 0x42c2e6
mov ecx, esi
mov esi, dword [esp + 0x24]
imul esi, esi, 0xb
add esi, eax
mov dword [esp + esi*4 + 0xb4], ecx
jmp 0x42c326
cmp ebx, 1
jne 0x42c30d
mov ecx, dword [esp + 0xc]
cmp ecx, edx
je 0x42c30d
test ecx, 0x100
je 0x42c2db
cmp esi, 0x20
jne 0x42c33e
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x48]
imul ecx, ecx, 0xb
add ecx, eax
mov dword [esp + ecx*4 + 0xb4], esi
inc eax
cmp eax, 0xb
mov dword [esp + 0x64], eax
jl 0x42c33e
mov dword [esp + 0x24], edx
mov dword [0x500178], 1
fldz
mov ebx, dword [edi + 0x11500]
sub esp, 0x1c
fst dword [esp + 0x18]
fst dword [esp + 0x14]
fld1
fstp dword [esp + 0x10]
fst dword [esp + 0xc]
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
call fcn.00472540
mov edx, dword [edi + 0x11500]
add esp, 0x1c
push edx
call fcn.00472930
add esp, 4
cmp dword [edi + 0x11ea4], 0
jne 0x42d57f
fld qword [edi + 0x110a8]
mov eax, dword [edi + 0x11500]
fstp dword [esp + 0x18]
sub esp, 8
fld dword [esp + 0x20]
fst dword [esp + 4]
fstp dword [esp]
call fcn.004724e0
mov eax, dword [edi + 0x11500]
push 0
push eax
call fcn.004728a0
mov esi, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x98]
lea ebx, [esi + ecx]
mov ecx, dword [esp + 0x84]
lea edi, [eax + edx + 0xf]
push ecx
lea edx, [ebx - 1]
push edx
lea ecx, [edi - 1]
push ecx
lea edx, [esi - 0xe]
add eax, 0xfffffff1
push edx
push eax
call dword [0x500eac]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0xac]
add esp, 0x24
push edx
lea ecx, [ebx - 2]
push ecx
add eax, 0xfffffff0
push eax
lea ecx, [esi - 0xd]
push ecx
push eax
call dword [0x500eac]
mov eax, dword [esp + 0x60]
add esp, 0x14
push eax
lea eax, [ebx - 2]
push eax
push edi
lea eax, [esi - 0xd]
push eax
push edi
call dword [0x500eac]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x9c]
add esp, 0x14
push edx
lea eax, [esi - 0xf]
push eax
add edi, 0xfffffffe
push edi
add ecx, 0xfffffff2
push eax
push ecx
mov dword [esp + 0x2c], ecx
call dword [0x500eac]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x2c]
add esp, 0x14
push eax
push ebx
push edi
push ebx
push ecx
call dword [0x500eac]
add esp, 0x14
cmp dword [ebp + 8], 0
mov edi, str.JOYSTICK_CONFIG
jne 0x42c485
mov edi, str.KEY_CONFIG
push 0x60
lea edx, [esp + 0x434]
push 0
push edx
call sub.MSVCR90.dll_memset
fld1
mov eax, dword [0x5050e8]
fst dword [esp + 0x460]
mov ebx, dword [esp + 0x84]
fst dword [esp + 0x45c]
fst dword [esp + 0x450]
add esp, 0xc
fst dword [esp + 0x440]
cdq
fst dword [esp + 0x480]
push 0x100
fst dword [esp + 0x474]
sub eax, edx
fst dword [esp + 0x470]
sar eax, 1
fstp dword [esp + 0x434]
push 0x100
fld dword [0x4fd888]
mov dword [esp + 0x20], eax
fstp dword [esp + 0x43c]
push 0x100
fild dword [esp + 0x24]
push 0
lea eax, [esi - 0x1e]
mov dword [esp + 0x28], eax
push 0
fstp dword [esp + 0x44c]
lea ecx, [esp + 0x444]
fild dword [esp + 0x2c]
push ecx
push ebx
mov eax, edi
fstp dword [esp + 0x458]
mov dword [esp + 0x4a8], 0xffff
mov dword [esp + 0x498], 1
call fcn.0046ca80
add esp, 0x1c
push 0x60
lea edx, [esp + 0x4f4]
push 0
push edx
call sub.MSVCR90.dll_memset
fld1
mov edi, dword [esp + 0x9c]
fst dword [esp + 0x520]
sub esi, dword [esp + 0x60]
fst dword [esp + 0x51c]
fst dword [esp + 0x510]
mov eax, edi
fst dword [esp + 0x50c]
cdq
fst dword [esp + 0x54c]
and edx, 3
fst dword [esp + 0x53c]
add eax, edx
fst dword [esp + 0x538]
sar eax, 2
add eax, dword [esp + 0x94]
fstp dword [esp + 0x4fc]
fld dword [0x4fd888]
add esp, 0xc
add esi, dword [esp + 0x40]
fstp dword [esp + 0x4f4]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
mov dword [esp + 0x18], esi
push 0x100
push 0x100
fstp dword [esp + 0x500]
mov dword [esp + 0x554], 0xffff
fild dword [esp + 0x20]
mov dword [esp + 0x544], 1
push 0x80
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fstp dword [esp + 0x508]
push 0
push 0
lea eax, [esp + 0x504]
push eax
push ebx
mov eax, str.___1P
call fcn.0046ca80
add esp, 0x1c
push 0x60
lea ecx, [esp + 0x314]
push 0
push ecx
call sub.MSVCR90.dll_memset
fld1
fst dword [esp + 0x340]
lea eax, [edi + edi*2]
fst dword [esp + 0x33c]
cdq
fst dword [esp + 0x330]
add esp, 0xc
fst dword [esp + 0x320]
and edx, 3
fst dword [esp + 0x360]
add eax, edx
fst dword [esp + 0x350]
push 0x80
fst dword [esp + 0x350]
sar eax, 2
add eax, dword [esp + 0x8c]
fstp dword [esp + 0x314]
fld dword [0x4fd888]
push 0x80
fstp dword [esp + 0x31c]
push 0x100
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
push 0
push 0
lea edx, [esp + 0x324]
fstp dword [esp + 0x32c]
push edx
fld dword [esp + 0x30]
push ebx
mov eax, str.___2P
fstp dword [esp + 0x338]
mov dword [esp + 0x388], 0xffff
mov dword [esp + 0x378], 1
call fcn.0046ca80
mov ecx, dword [ebp + 0xc]
mov eax, 0x91a2b3c5
imul ecx
add edx, ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x1c2
mov eax, ecx
sub eax, edx
add esp, 0x1c
cmp eax, 0x96
jge 0x42c735
mov ecx, 7
mov esi, 0x4f5be8
lea edi, [esp + 0x170]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x42c790
cmp eax, 0x12c
jge 0x42c751
mov ecx, 8
mov esi, 0x4f5c08
lea edi, [esp + 0x170]
rep movsd dword es:[edi], dword [esi]
jmp 0x42c790
mov eax, dword [str.]
mov ecx, dword [0x4f5c2c]
mov edx, dword [0x4f5c30]
mov dword [esp + 0x170], eax
mov eax, dword [0x4f5c34]
mov dword [esp + 0x174], ecx
mov ecx, dword [0x4f5c38]
mov dword [esp + 0x178], edx
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], ecx
mov eax, dword [esp + 0x24]
cmp eax, 1
jne 0x42c863
push 0x60
lea edx, [esp + 0x674]
push 0
push edx
call sub.MSVCR90.dll_memset
fld1
mov eax, dword [esp + 0xa4]
fst dword [esp + 0x6a0]
fst dword [esp + 0x69c]
mov ecx, eax
fst dword [esp + 0x690]
shl ecx, 4
fst dword [esp + 0x68c]
add esp, 0xc
fst dword [esp + 0x6c0]
sub ecx, eax
add ecx, dword [esp + 0x8c]
fst dword [esp + 0x6b0]
fst dword [esp + 0x6ac]
push 0xc0
add ecx, dword [esp + 0x44]
fstp dword [esp + 0x674]
fld dword [0x4fd888]
push 0xc0
fstp dword [esp + 0x67c]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x90]
push 0xc0
push 0
mov dword [esp + 0x6dc], 0xffff
mov dword [esp + 0x6cc], 1
fstp dword [esp + 0x688]
push 1
fild dword [esp + 0x2c]
lea edx, [esp + 0x684]
fstp dword [esp + 0x690]
jmp 0x42c93e
cmp eax, 2
jne 0x42c94f
push 0x60
lea eax, [esp + 0x1f4]
push 0
push eax
call sub.MSVCR90.dll_memset
fld1
mov edx, dword [esp + 0x9c]
fst dword [esp + 0x220]
mov ecx, dword [esp + 0x94]
fst dword [esp + 0x21c]
mov eax, dword [esp + 0xa4]
fst dword [esp + 0x210]
add ecx, edx
fst dword [esp + 0x20c]
mov dword [esp + 0x24], ecx
fst dword [esp + 0x24c]
fst dword [esp + 0x23c]
mov ecx, eax
fst dword [esp + 0x238]
shl ecx, 4
fstp dword [esp + 0x1fc]
add esp, 0xc
fld dword [0x4fd888]
sub ecx, eax
add ecx, dword [esp + 0x8c]
fstp dword [esp + 0x1f4]
fild dword [esp + 0x18]
push 0xc0
add ecx, dword [esp + 0x44]
push 0xc0
mov dword [esp + 0x20], ecx
fstp dword [esp + 0x200]
push 0xc0
fild dword [esp + 0x24]
push 0
mov dword [esp + 0x25c], 0xffff
mov dword [esp + 0x24c], 1
fstp dword [esp + 0x20c]
push 0xffffffffffffffff
lea edx, [esp + 0x204]
push edx
push ebx
lea eax, [esp + 0x18c]
call fcn.0046ca80
add esp, 0x1c
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], eax
lea esp, [esp]
mov edx, dword [esp + 0x10]
mov eax, 0xc0
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x28], eax
cmp edx, 0xe
je 0x42c98f
cmp edx, 0xc
je 0x42c98f
test edx, edx
jne 0x42c99a
mov edi, 1
add dword [esp + 0x18], edi
jmp 0x42c99f
mov edi, 1
mov eax, dword [esp + 0x18]
lea esi, [edx + eax]
imul esi, dword [esp + 0x98]
add esi, dword [esp + 0x8c]
add esi, dword [esp + 0x40]
mov dword [esp + 0x50], esi
cmp edx, dword [esp + 0x30]
jne 0x42cb44
mov ecx, dword [ebp + 0xc]
add ecx, ecx
add ecx, ecx
mov eax, ecx
and eax, 0x8000007f
jns 0x42c9dc
dec eax
or eax, 0xffffff80
inc eax
cmp eax, 0x40
jge 0x42c9f3
and ecx, 0x8000003f
jns 0x42c9ee
dec ecx
or ecx, 0xffffffc0
inc ecx
add ecx, 0x20
jmp 0x42ca08
mov eax, ecx
and eax, 0x8000003f
jns 0x42ca01
dec eax
or eax, 0xffffffc0
inc eax
mov ecx, 0x5f
sub ecx, eax
cmp dword [esp + 0x24], 0
mov eax, dword [0x504224]
jne 0x42ca5f
cmp eax, 2
je 0x42ca1e
cmp eax, 3
jne 0x42ca2c
mov eax, ecx
shl eax, 8
or eax, ecx
shl eax, 8
or eax, ecx
jmp 0x42caa9
mov edx, dword [0x5042a4]
mov edx, dword [edx]
mov eax, dword [edx + 4]
imul eax, dword [0x5042a8]
add eax, dword [edx + 0x18]
je 0x42ca54
cmp dword [eax + 0x1c], edi
jne 0x42ca54
mov eax, dword [eax + 0x24]
mov eax, dword [eax + 4]
push ecx
push ecx
push ecx
push eax
jmp 0x42ca9d
push ecx
push ecx
xor eax, eax
mov eax, dword [eax + 4]
push ecx
push eax
jmp 0x42ca9d
cmp eax, 2
je 0x42ca69
cmp eax, 3
jne 0x42ca70
mov eax, 0x606060
jmp 0x42caa9
mov ecx, dword [0x5042a4]
mov ecx, dword [ecx]
mov eax, dword [ecx + 4]
imul eax, dword [0x5042a8]
add eax, dword [ecx + 0x18]
je 0x42ca91
cmp dword [eax + 0x1c], edi
jne 0x42ca91
mov eax, dword [eax + 0x24]
jmp 0x42ca93
xor eax, eax
mov edx, dword [eax + 4]
push 0x60
push 0x60
push 0x60
push edx
call sub.SDL.dll_SDL_MapRGB
mov edx, dword [esp + 0x20]
add esp, 0x10
mov ecx, eax
push ecx
mov ecx, dword [esp + 0x58]
cmp edx, 0xd
lea edx, [esi + ecx]
push edx
jge 0x42cae2
mov eax, dword [esp + 0x34]
imul eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x90]
mov edi, dword [esp + 0x68]
lea edx, [eax + ecx]
lea edx, [edx + edi - 0xf]
push edx
mov edx, esi
sub edx, dword [esp + 0x4c]
lea eax, [eax + ecx - 5]
push edx
jmp 0x42cafc
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x90]
lea edx, [eax + ecx - 0xf]
mov ecx, esi
sub ecx, dword [esp + 0x48]
push edx
push ecx
add eax, 0xfffffffb
push eax
call dword [0x500e84]
add esp, 0x14
cmp dword [esp + 0x2c], 0
je 0x42cb2b
cmp dword [esp + 0x30], 0xd
je 0x42cb2b
mov eax, 0x100
mov dword [esp + 0x14], 0xf8
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
jmp 0x42cb40
mov eax, 0x100
mov dword [esp + 0x28], 0xf8
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov edx, dword [esp + 0x10]
cmp edx, 0xb
jle 0x42cb54
cmp dword [esp + 0x24], 0
jne 0x42d42a
mov edx, dword [esp + 0x10]
mov eax, dword [esp + edx*4 + 0x138]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov edi, dword [esp + 0x88]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push ecx
push 0
push 1
push esi
push edi
push ebx
push eax
call fcn.0046ce40
add esp, 0x24
cmp dword [esp + 0x10], 0xc
jg 0x42cbbd
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x48]
push eax
push ecx
mov ecx, dword [esp + 0x1c]
push 0
push 1
push esi
lea eax, [edi + edx]
push eax
mov eax, dword [esp + ecx*4 + 0x154]
push ebx
push eax
call fcn.0046ce40
add esp, 0x24
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x42cd40
push 0x60
push eax
lea edx, [esp + 0x3d8]
push edx
call sub.MSVCR90.dll_memset
fld1
mov eax, dword [esp + 0xb0]
fst dword [esp + 0x400]
fst dword [esp + 0x3fc]
add esp, 0xc
fst dword [esp + 0x3e4]
add edi, eax
fst dword [esp + 0x3e0]
push 0x80
fst dword [esp + 0x424]
mov dword [esp + 0x10], edi
fst dword [esp + 0x414]
push 0x100
fst dword [esp + 0x414]
push 0x100
fstp dword [esp + 0x3dc]
push 0
fld dword [0x4fd888]
push 0xffffffffffffffff
fstp dword [esp + 0x3e8]
lea ecx, [esp + 0x3e4]
fild dword [esp + 0x20]
push ecx
mov esi, 1
push ebx
mov eax, str._F1_
fstp dword [esp + 0x3f4]
mov dword [esp + 0x448], 0xffff
fild dword [esp + 0x6c]
mov dword [esp + 0x438], esi
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp + 0x3f8]
call fcn.0046ca80
add esp, 0x1c
push 0x60
lea edx, [esp + 0x5b4]
push 0
push edx
call sub.MSVCR90.dll_memset
fld1
mov eax, dword [esp + 0x50]
fst dword [esp + 0x5e0]
fst dword [esp + 0x5dc]
add esp, 0xc
fst dword [esp + 0x5c4]
push 0x80
fst dword [esp + 0x5c4]
add edi, eax
fst dword [esp + 0x604]
push 0x100
fst dword [esp + 0x5f8]
mov dword [esp + 0x1c], edi
fst dword [esp + 0x5f4]
push 0x100
fstp dword [esp + 0x5bc]
push 0
fld dword [0x4fd888]
push 0xffffffffffffffff
fstp dword [esp + 0x5c8]
lea ecx, [esp + 0x5c4]
fild dword [esp + 0x28]
mov dword [esp + 0x620], 0xffff
mov dword [esp + 0x610], esi
push ecx
mov eax, str._F2_
fstp dword [esp + 0x5d0]
fld dword [esp + 0x24]
fstp dword [esp + 0x5d4]
jmp 0x42d403
cmp eax, 0xc
jne 0x42cec1
push 0x60
lea edx, [esp + 0x254]
push 0
push edx
call sub.MSVCR90.dll_memset
fld1
mov eax, dword [esp + 0xb0]
fst dword [esp + 0x280]
fst dword [esp + 0x27c]
add esp, 0xc
fst dword [esp + 0x264]
add edi, eax
fst dword [esp + 0x260]
push 0x80
fst dword [esp + 0x2a4]
mov dword [esp + 0x10], edi
fst dword [esp + 0x294]
push 0x100
fst dword [esp + 0x294]
push 0x100
fstp dword [esp + 0x25c]
push 0
fld dword [0x4fd888]
push 0xffffffffffffffff
fstp dword [esp + 0x268]
lea ecx, [esp + 0x264]
fild dword [esp + 0x20]
push ecx
mov esi, 1
push ebx
mov eax, str._F3_
fstp dword [esp + 0x274]
mov dword [esp + 0x2c8], 0xffff
fild dword [esp + 0x6c]
mov dword [esp + 0x2b8], esi
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp + 0x278]
call fcn.0046ca80
add esp, 0x1c
push 0x60
lea edx, [esp + 0x2b4]
push 0
push edx
call sub.MSVCR90.dll_memset
fld1
mov eax, dword [esp + 0x50]
fst dword [esp + 0x2e0]
fst dword [esp + 0x2dc]
add esp, 0xc
fst dword [esp + 0x2c4]
push 0x80
fst dword [esp + 0x2c4]
add edi, eax
fst dword [esp + 0x304]
push 0x100
fst dword [esp + 0x2f8]
mov dword [esp + 0x1c], edi
fst dword [esp + 0x2f4]
push 0x100
fstp dword [esp + 0x2bc]
push 0
fld dword [0x4fd888]
push 0xffffffffffffffff
fstp dword [esp + 0x2c8]
lea ecx, [esp + 0x2c4]
fild dword [esp + 0x28]
mov dword [esp + 0x320], 0xffff
mov dword [esp + 0x310], esi
push ecx
mov eax, str._F4_
fstp dword [esp + 0x2d0]
fld dword [esp + 0x24]
fstp dword [esp + 0x2d4]
jmp 0x42d403
cmp eax, 0xd
jne 0x42cf84
push 0x60
lea edx, [esp + 0x374]
push 0
push edx
call sub.MSVCR90.dll_memset
fld1
mov eax, dword [esp + 0xb0]
fst dword [esp + 0x3a0]
fst dword [esp + 0x39c]
add esp, 0xc
fst dword [esp + 0x384]
push 0x80
fst dword [esp + 0x384]
add edi, eax
fst dword [esp + 0x3c4]
push 0x100
fst dword [esp + 0x3b8]
mov dword [esp + 0x1c], edi
fst dword [esp + 0x3b4]
push 0x100
fstp dword [esp + 0x37c]
push 0
fld dword [0x4fd888]
mov esi, 1
fstp dword [esp + 0x384]
push 0xffffffffffffffff
fild dword [esp + 0x28]
lea ecx, [esp + 0x384]
mov dword [esp + 0x3e0], 0xffff
mov dword [esp + 0x3d0], esi
push ecx
fstp dword [esp + 0x390]
mov eax, str._Esc_
fild dword [esp + 0x68]
fstp dword [esp + 0x394]
jmp 0x42d403
mov esi, 1
cmp eax, esi
jl 0x42d410
cmp eax, 0xb
jg 0x42d410
cmp dword [ebp + 8], 0
mov eax, dword [esp + eax*4 + 0xdc]
jne 0x42d1de
cmp eax, dword [esp + 0x48]
jne 0x42cfd9
mov edx, dword [str.Not_used]
mov eax, dword [0x4f5c50]
mov cl, byte [0x4f5c54]
mov dword [esp + 0x170], edx
mov dword [esp + 0x174], eax
mov byte [esp + 0x178], cl
jmp 0x42d007
cmp eax, 0x143
jge 0x42cfeb
push eax
call sub.SDL.dll_SDL_GetKeyName
add esp, 4
jmp 0x42cff0
mov eax, 0x4f174e
push eax
lea edx, [esp + 0x174]
push 0x4f15dc
push edx
call dword [sym.imp.MSVCR90.dll_sprintf]
add esp, 0xc
push 0x60
lea eax, [esp + 0x494]
push 0
push eax
call sub.MSVCR90.dll_memset
fld1
mov ecx, dword [esp + 0xb0]
fst dword [esp + 0x4c0]
mov edx, dword [esp + 0x68]
fst dword [esp + 0x4bc]
mov eax, dword [esp + 0x64]
fst dword [esp + 0x4b0]
fst dword [esp + 0x4ac]
add esp, 0xc
fst dword [esp + 0x4e0]
push edx
fst dword [esp + 0x4d4]
add edi, ecx
mov ecx, dword [esp + 0x2c]
fst dword [esp + 0x4d0]
fstp dword [esp + 0x494]
push eax
fld dword [0x4fd888]
mov dword [esp + 0x14], edi
fstp dword [esp + 0x49c]
push ecx
fild dword [esp + 0x18]
push 0
push 0xffffffffffffffff
lea edx, [esp + 0x4a4]
push edx
fstp dword [esp + 0x4b0]
push ebx
fild dword [esp + 0x6c]
lea eax, [esp + 0x18c]
mov dword [esp + 0x508], 0xffff
mov dword [esp + 0x4f8], esi
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp + 0x4b8]
call fcn.0046ca80
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + eax*4 + 0x124]
add esp, 0x1c
cmp eax, dword [esp + 0x48]
jne 0x42d103
mov ecx, dword [str.Not_used]
mov edx, dword [0x4f5c50]
mov al, byte [0x4f5c54]
mov dword [esp + 0x170], ecx
mov dword [esp + 0x174], edx
mov byte [esp + 0x178], al
jmp 0x42d131
cmp eax, 0x143
jge 0x42d115
push eax
call sub.SDL.dll_SDL_GetKeyName
add esp, 4
jmp 0x42d11a
mov eax, 0x4f174e
push eax
lea ecx, [esp + 0x174]
push 0x4f15dc
push ecx
call dword [sym.imp.MSVCR90.dll_sprintf]
add esp, 0xc
push 0x60
lea edx, [esp + 0x554]
push 0
push edx
call sub.MSVCR90.dll_memset
fld1
mov eax, dword [esp + 0x50]
fst dword [esp + 0x580]
mov ecx, dword [esp + 0x44]
fst dword [esp + 0x57c]
mov edx, dword [esp + 0x48]
fst dword [esp + 0x570]
fst dword [esp + 0x56c]
add esp, 0xc
fst dword [esp + 0x5a0]
push ecx
fst dword [esp + 0x594]
add edi, eax
mov eax, dword [esp + 0x18]
fst dword [esp + 0x590]
fstp dword [esp + 0x554]
push edx
fld dword [0x4fd888]
mov dword [esp + 0x30], edi
fstp dword [esp + 0x55c]
push eax
fild dword [esp + 0x34]
push 0
push 0xffffffffffffffff
lea ecx, [esp + 0x564]
mov dword [esp + 0x5c0], 0xffff
fstp dword [esp + 0x56c]
mov dword [esp + 0x5b0], esi
fld dword [esp + 0x20]
push ecx
fstp dword [esp + 0x574]
jmp 0x42d3fc
cmp eax, dword [esp + 0x48]
jne 0x42d20c
mov edx, dword [str.Not_used]
mov eax, dword [0x4f5c50]
mov cl, byte [0x4f5c54]
mov dword [esp + 0x170], edx
mov dword [esp + 0x174], eax
mov byte [esp + 0x178], cl
jmp 0x42d232
mov edx, eax
sar eax, 5
and eax, 3
and edx, 0xffffff9f
push edx
add eax, 0x41
push eax
lea eax, [esp + 0x178]
push str._c__02i
push eax
call dword [sym.imp.MSVCR90.dll_sprintf]
add esp, 0x10
push 0x60
lea ecx, [esp + 0x614]
push 0
push ecx
call sub.MSVCR90.dll_memset
fld1
mov edx, dword [esp + 0xb0]
fst dword [esp + 0x640]
mov eax, dword [esp + 0x68]
fst dword [esp + 0x63c]
mov ecx, dword [esp + 0x64]
fst dword [esp + 0x630]
fst dword [esp + 0x62c]
add esp, 0xc
fst dword [esp + 0x660]
push eax
fst dword [esp + 0x654]
add edi, edx
mov edx, dword [esp + 0x2c]
fst dword [esp + 0x650]
fstp dword [esp + 0x614]
mov dword [esp + 0x10], edi
fld dword [0x4fd888]
push ecx
fstp dword [esp + 0x61c]
push edx
fild dword [esp + 0x18]
push 0
push 0xffffffffffffffff
lea eax, [esp + 0x624]
push eax
fstp dword [esp + 0x630]
push ebx
fild dword [esp + 0x6c]
lea eax, [esp + 0x18c]
mov dword [esp + 0x688], 0xffff
mov dword [esp + 0x678], esi
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp + 0x638]
call fcn.0046ca80
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + ecx*4 + 0x124]
add esp, 0x1c
cmp eax, dword [esp + 0x48]
jne 0x42d32e
mov edx, dword [str.Not_used]
mov eax, dword [0x4f5c50]
mov cl, byte [0x4f5c54]
mov dword [esp + 0x170], edx
mov dword [esp + 0x174], eax
mov byte [esp + 0x178], cl
jmp 0x42d354
mov edx, eax
sar eax, 5
and eax, 3
and edx, 0xffffff9f
push edx
add eax, 0x41
push eax
lea eax, [esp + 0x178]
push str._c__02i
push eax
call dword [sym.imp.MSVCR90.dll_sprintf]
add esp, 0x10
push 0x60
lea ecx, [esp + 0x6d4]
push 0
push ecx
call sub.MSVCR90.dll_memset
fld1
mov edx, dword [esp + 0x50]
fst dword [esp + 0x700]
mov eax, dword [esp + 0x44]
fst dword [esp + 0x6fc]
mov ecx, dword [esp + 0x48]
fst dword [esp + 0x6f0]
fst dword [esp + 0x6ec]
add esp, 0xc
fst dword [esp + 0x720]
push eax
fst dword [esp + 0x714]
add edi, edx
mov edx, dword [esp + 0x18]
fst dword [esp + 0x710]
fstp dword [esp + 0x6d4]
push ecx
fld dword [0x4fd888]
mov dword [esp + 0x30], edi
fstp dword [esp + 0x6dc]
push edx
fild dword [esp + 0x34]
push 0
push 0xffffffffffffffff
lea eax, [esp + 0x6e4]
mov dword [esp + 0x740], 0xffff
fstp dword [esp + 0x6ec]
mov dword [esp + 0x730], esi
fld dword [esp + 0x20]
push eax
fstp dword [esp + 0x6f4]
lea eax, [esp + 0x188]
push ebx
call fcn.0046ca80
mov eax, dword [esp + 0x2c]
add esp, 0x1c
add eax, esi
cmp eax, 0xe
mov dword [esp + 0x10], eax
jl 0x42c960
cmp dword [esp + 0x24], 0
je 0x42d545
mov esi, dword [esp + 0x64]
mov ecx, dword [ebp + 0xc]
mov ebx, dword [esp + 0x40]
add esi, 2
imul esi, dword [esp + 0x98]
add esi, dword [esp + 0x8c]
add ecx, ecx
add ecx, ecx
mov edx, ecx
add esi, ebx
and edx, 0x8000007f
jns 0x42d45c
dec edx
or edx, 0xffffff80
inc edx
cmp edx, 0x40
jge 0x42d473
and ecx, 0x8000003f
jns 0x42d46e
dec ecx
or ecx, 0xffffffc0
inc ecx
add ecx, 0x20
jmp 0x42d488
mov eax, ecx
and eax, 0x8000003f
jns 0x42d481
dec eax
or eax, 0xffffffc0
inc eax
mov ecx, 0x5f
sub ecx, eax
mov edi, dword [0x504224]
mov eax, ecx
cdq
sub eax, edx
mov edx, eax
sar edx, 1
mov eax, 0x60
sub eax, edx
mov edx, 0x60
sub edx, ecx
cmp edi, 2
je 0x42d4af
cmp edi, 3
jne 0x42d4bb
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
jmp 0x42d4f2
mov edi, dword [0x5042a4]
mov ebx, dword [edi]
mov edi, dword [ebx + 4]
imul edi, dword [0x5042a8]
add edi, dword [ebx + 0x18]
je 0x42d4dd
cmp dword [edi + 0x1c], 1
jne 0x42d4dd
mov edi, dword [edi + 0x24]
jmp 0x42d4df
xor edi, edi
push eax
mov eax, dword [edi + 4]
push edx
push ecx
push eax
call sub.SDL.dll_SDL_MapRGB
mov ebx, dword [esp + 0x50]
add esp, 0x10
cmp dword [esp + 0x24], 1
push eax
jne 0x42d516
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x8c]
lea edx, [esi + ecx]
mov ecx, dword [esp + 0x64]
push edx
lea edx, [eax + ecx - 0xf]
add eax, 0xfffffffb
jmp 0x42d537
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x64]
lea ecx, [esi + eax]
mov eax, dword [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0x4c]
add edx, eax
lea edx, [edx + ecx - 0xf]
lea eax, [eax + ecx - 5]
push edx
sub esi, ebx
push esi
push eax
call dword [0x500e84]
add esp, 0x14
mov esi, dword [0x5040e8]
fld qword [esi + 0x110a8]
mov eax, dword [esi + 0x11500]
fstp dword [esp + 0x18]
sub esp, 8
fld dword [esp + 0x20]
fst dword [esp + 4]
fstp dword [esp]
call fcn.004724e0
mov ecx, dword [esi + 0x11500]
push 1
push ecx
call fcn.004728a0
add esp, 0x10
call fcn.0040f700
inc dword [ebp + 0xc]
cmp dword [esp + 0x34], 0
je 0x42bef0
cmp dword [esp + 0x30], 0xd
jne 0x42bef0
mov eax, dword [0x5040e8]
xor esi, esi
mov dword [eax + 0x11ea0], esi
mov dword [eax + 0x11ea4], esi
cmp dword [0x504724], esi
je 0x42d5d4
lea edx, [esp + 0x78]
push edx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
jmp 0x42d5dc
jmp 0x42d5d0
jmp 0x42d5d2
call dword [sym.imp.WINMM.dll_timeGetTime]
xor ecx, ecx
sub eax, dword [0x503ce0]
mov dword [0x504718], esi
sbb ecx, dword [0x503ce4]
inc dword [0x504728]
mov dword [0x504714], ecx
mov dword [0x504710], eax
mov dword [0x50471c], esi
lea ecx, [esp + 0xe0]
lea esp, [esp]
mov edx, dword [esp + esi*4 + 0x68]
mov eax, 0x4f1edc
lea esp, [esp]
mov edi, dword [eax]
mov ebx, dword [ecx]
add eax, 4
add ecx, 4
cmp eax, 0x4f1f08
mov dword [edx + edi*4], ebx
jl 0x42d620
inc esi
cmp esi, 2
jl 0x42d610
cmp dword [ebp + 8], 1
jne 0x42d67d
mov eax, dword [0x5040e8]
cmp dword [eax + 0x12138], 0
je 0x42d661
lea esi, [eax + 0x120c0]
lea edi, [eax + 0x12058]
mov ecx, 0xd
rep movsd dword es:[edi], dword [esi]
cmp dword [eax + 0x1213c], 0
je 0x42d67d
lea esi, [eax + 0x120f4]
lea edi, [eax + 0x1208c]
mov ecx, 0xd
rep movsd dword es:[edi], dword [esi]
push str.Setting_up_input_n
call fcn.0040c4a0
add esp, 4
call fcn.0041b380
mov ecx, dword [0x504b2c]
mov edx, dword [0x504b28]
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
xor edi, edi
push edi
push 2
push ecx
push edx
mov dword [0x500178], eax
mov dword [0x503cf0], esi
mov dword [0x504b30], esi
call fcn.004dd810
push edi
add eax, 1
push esi
adc edx, edi
push edx
push eax
call fcn.004dd850
push edi
push 2
push edx
push eax
call fcn.004dd850
mov dword [0x503cd8], eax
mov dword [0x503cdc], edx
cmp dword [0x504724], edi
je 0x42d706
lea eax, [esp + 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
jmp 0x42d70e
call dword [sym.imp.WINMM.dll_timeGetTime]
xor ecx, ecx
sub eax, dword [0x503ce0]
mov dword [0x504718], edi
sbb ecx, dword [0x503ce4]
inc dword [0x504728]
mov dword [0x50471c], edi
pop edi
pop esi
mov dword [0x504710], eax
mov eax, dword [ebp + 0xc]
mov dword [0x504714], ecx
pop ebx
mov esp, ebp
pop ebp
ret