Function at 0x456c50
Capabilities:
Log keystrokes via polling

Disassembly:
push 0xffffffffffffffff
push 0x4a0ebc
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xd8
push ebx
push ebp
push esi
push edi
mov ebp, ecx
call dword [sym.imp.winmm.dll_timeGetTime]
mov esi, eax
mov eax, dword [ebp + 0x4e4a8]
xor edi, edi
cmp eax, edi
mov dword [esp + 0x14], edi
jne 0x456e33
cmp dword [ebp + 0x4e4a4], 1
jne 0x456e33
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xfc]
cmp ax, di
mov edx, 0x200
jne 0x456ce6
cmp cx, di
mov eax, 0x2a0
jne 0x456d75
cmp word [ebp + 0x4e68e], ax
jle 0x456dc1
cmp word [ebp + 0x4e690], dx
jle 0x456d88
push edi
push edi
push edi
push edi
push edi
push 8
jmp 0x456e10
cmp ax, 0x280
jne 0x456dc1
cmp cx, di
jne 0x456d2c
mov eax, dword [ebp + 0x4a258]
movsx esi, word [ebp + 0x4e68e]
movsx eax, word [eax + 0x934458]
sub eax, 0x15
shl eax, 5
cmp esi, eax
jge 0x456d9a
cmp word [ebp + 0x4e690], dx
jle 0x456d9a
push edi
push edi
push edi
push edi
push edi
push 2
jmp 0x456e10
cmp cx, 0x1e0
jne 0x456d9a
mov eax, dword [ebp + 0x4a258]
movsx ebx, word [ebp + 0x4e68e]
movsx esi, word [eax + 0x934458]
sub esi, 0x15
shl esi, 5
cmp ebx, esi
jge 0x456d9a
movsx eax, word [eax + 0x93445a]
movsx esi, word [ebp + 0x4e690]
sub eax, 0x10
shl eax, 5
cmp esi, eax
jge 0x456d9a
push edi
push edi
push edi
push edi
push edi
push 4
jmp 0x456e10
cmp cx, 0x1e0
jne 0x456d88
push edi
push edi
push edi
push edi
push edi
push 6
jmp 0x456e10
cmp word [ebp + 0x4e68e], ax
jle 0x456dc1
push edi
push edi
push edi
push edi
push edi
push 7
jmp 0x456e10
mov eax, dword [ebp + 0x4a258]
movsx esi, word [ebp + 0x4e68e]
movsx eax, word [eax + 0x934458]
sub eax, 0x15
shl eax, 5
cmp esi, eax
jge 0x456dc1
push edi
push edi
push edi
push edi
push edi
push 3
jmp 0x456e10
cmp cx, di
jne 0x456ddc
cmp word [ebp + 0x4e690], dx
jle case.0x458d62.6
push edi
push edi
push edi
push edi
push edi
push 1
jmp 0x456e10
cmp cx, 0x1e0
jne case.0x458d62.6
mov ecx, dword [ebp + 0x4a258]
movsx eax, word [ebp + 0x4e690]
movsx edx, word [ecx + 0x93445a]
sub edx, 0x10
shl edx, 5
cmp eax, edx
jge case.0x458d62.6
push edi
push edi
push edi
push edi
push edi
push 5
push edi
push 0x27b314d0
mov ecx, ebp
call fcn.00404de0
mov dword [ebp + 0x4e4a8], 1
mov byte [ebp + 0x4ea5b], 0
jmp case.0x458d62.6
mov eax, dword [ebp + 0x4e4a4]
mov ebx, 1
cmp eax, ebx
je case.0x458d62.6
push 0x12
call dword [sym.imp.user32.dll_GetAsyncKeyState]
and eax, 0xffff8000
test ax, ax
je 0x456e60
mov dword [ebp + 0x4e4a0], ebx
jmp 0x456e66
mov dword [ebp + 0x4e4a0], edi
movsx eax, byte [ebp + 0xe]
mov ebx, dword [esp + 0xfc]
mov ecx, dword [esp + 0xf8]
cmp eax, 3
ja case.default.0x456e7d
jmp dword [eax*4 + 0x45976c]
mov al, byte [esp + 0x108]
test al, al
je 0x456f76
push 1
push ebx
push ecx
mov ecx, ebp
call fcn.004300f0
cmp eax, 1
jne 0x456eac
mov byte [ebp + 0xe], 2
jmp case.0x458d62.6
cmp eax, edi
jne 0x456eb6
mov byte [ebp + 0xe], 1
jmp case.default.0x456e7d
cmp eax, 0xffffffff
je case.0x458d62.6
lea ecx, [ebp + 0x4dda4]
call fcn.00491a60
test eax, eax
je case.0x458d62.6
sub esi, dword [ebp + 0x4dd38]
cmp esi, 0x12c
jae 0x4573f0
mov ecx, dword [ebp + 0x4a25c]
cmp ecx, edi
je 0x456ef4
mov edx, dword [ecx]
push 1
call dword [edx]
push edi
push 5
push 0xe
mov dword [ebp + 0x4a25c], edi
push 0x45
mov ecx, ebp
mov dword [ebp + 0x4e27c], edi
call fcn.0043cc00
cmp dword [ebp + 0x4ddb0], edi
je 0x456f43
mov ecx, dword [ebp + 0x5ee0]
push edi
call fcn.00490b30
cmp dword [ebp + 0x4ddb0], edi
je 0x456f43
cmp dword [ebp + 0x4ddb8], 1
jne 0x456f43
mov ecx, dword [ebp + 0x6000]
cmp ecx, edi
je 0x456f43
push edi
call fcn.00490b30
mov edi, 0x513a88
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x4573d1
mov byte [ebp + 0x4e830], 0xff
mov byte [ebp + 0x4e7e3], al
mov eax, dword [ebp + 0x4dd34]
mov dword [ebp + 0x4dd40], eax
jmp case.0x458d62.6
mov al, byte [esp + 0x10c]
test al, al
je case.default.0x456e7d
push 2
push ebx
push ecx
mov ecx, ebp
call fcn.004300f0
cmp eax, 1
jmp 0x456eb9
mov al, byte [esp + 0x108]
test al, al
jne case.default.0x456e7d
mov byte [ebp + 0xe], 0
jmp case.default.0x456e7d
mov al, byte [esp + 0x108]
test al, al
jne 0x457029
mov edx, dword [ebp + 0x1c]
mov edi, dword [esp + 0xfc]
mov ebx, dword [esp + 0xf8]
mov ecx, esi
sub ecx, edx
cmp ecx, 0x12c
jae 0x456fef
cmp bx, word [ebp + 0x20]
jne 0x456fef
cmp di, word [ebp + 0x22]
jne 0x456fef
push edi
push ebx
mov ecx, ebp
call fcn.0040d4f0
jmp 0x457000
push edi
push ebx
mov ecx, ebp
call fcn.0040cf00
mov word [ebp + 0x20], bx
mov word [ebp + 0x22], di
mov dword [ebp + 0x1c], esi
mov byte [ebp + 0xe], 0
cmp byte [ebp + 0xf], 2
jne case.0x458d62.6
push edi
push ebx
mov ecx, ebp
call fcn.0040d900
mov byte [ebp + 0xf], 0
mov word [ebp + 0x10], 0
jmp case.0x458d62.6
mov dx, word [ebp + 0x4e664]
mov ax, word [ebp + 0x4e662]
mov ecx, dword [ebp + 0x4a258]
push edx
push eax
call fcn.00482d30
cmp eax, 1
jne 0x457057
mov al, byte [ebp + 0x4ebfe]
test al, al
je case.default.0x456e7d
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xfc]
cmp word [ebp + 0x12], ax
jne 0x457075
cmp word [ebp + 0x14], cx
je 0x45722b
mov byte [ebp + 0xe], 3
mov word [ebp + 0x12], ax
mov word [ebp + 0x14], cx
mov al, byte [ebp + 0xf]
cmp al, 1
jne case.0x458d62.6
mov ax, word [ebp + 0x10]
cmp ax, 0x1e
je 0x45709c
cmp ax, 0x1d
jne 0x4570a0
mov byte [ebp + 0xe], 0
cmp byte [ebp + 0xf], 1
jne case.0x458d62.6
cmp word [ebp + 0x10], 7
jne 0x45711d
cmp byte [ebp + 0x6de], 1
jne 0x45711d
lea edx, [ebp + 0x4e75f]
mov dword [ebp + 0x4e4d8], edi
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
test ecx, ecx
jle 0x457114
mov byte [ecx + ebp + 0x4e75f], al
mov esi, dword [ebp + 0x4dd30]
mov edi, esi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, edx
mov ebx, ecx
or ecx, 0xffffffff
add ebx, esi
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [edx], 0
mov byte [ebp + 0x6de], 0x14
xor edi, edi
cmp byte [ebp + 0xf], 1
jne case.0x458d62.6
cmp word [ebp + 0x10], 0x11
jne case.0x458d62.6
cmp byte [ebp + 0xf4e], 1
jne case.0x458d62.6
lea edx, [ebp + 0x4e75f]
mov dword [ebp + 0x4e4d8], edi
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
test ecx, ecx
jle 0x457199
mov byte [ecx + ebp + 0x4e75f], al
mov esi, dword [ebp + 0x4dd30]
mov edi, esi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, edx
mov ebx, ecx
or ecx, 0xffffffff
add ebx, esi
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [edx], 0
mov byte [ebp + 0xf4e], 0x14
jmp case.0x458d62.6
mov al, byte [esp + 0x108]
test al, al
je 0x457246
mov cx, word [ebp + 0x4e664]
mov dx, word [ebp + 0x4e662]
push ecx
mov ecx, dword [ebp + 0x4a258]
push edx
call fcn.00482d30
cmp eax, 1
jne 0x4571e2
mov al, byte [ebp + 0x4ebfe]
test al, al
je case.default.0x456e7d
mov al, byte [ebp + 0xf]
mov ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0xf8]
cmp al, 1
jne 0x457223
movsx eax, word [ebp + 0x10]
mov si, dx
sub si, word [ebp + 0x16]
lea eax, [eax + eax*2]
lea eax, [eax + eax*8]
mov word [ebp + eax*8 + 0x6c], si
mov si, cx
movsx eax, word [ebp + 0x10]
sub si, word [ebp + 0x18]
lea eax, [eax + eax*2]
lea eax, [eax + eax*8]
mov word [ebp + eax*8 + 0x6e], si
mov word [ebp + 0x12], dx
mov word [ebp + 0x14], cx
mov al, byte [ebp + 0x4ea55]
cmp al, 1
je case.0x45894e.12
cmp al, 2
jne case.0x458d62.6
jmp case.0x45894e.12
mov al, byte [ebp + 0xf]
movsx ecx, al
dec ecx
je 0x45728b
dec ecx
je 0x457263
mov byte [ebp + 0xe], 0
mov byte [ebp + 0xf], 0
mov word [ebp + 0x10], di
jmp case.0x458d62.6
mov ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0xf8]
push ecx
push edx
mov ecx, ebp
call fcn.0040d900
mov byte [ebp + 0xe], 0
mov byte [ebp + 0xf], 0
mov word [ebp + 0x10], di
jmp case.0x458d62.6
cmp al, 1
jne 0x4572f4
cmp word [ebp + 0x10], 7
jne 0x4572f4
cmp byte [ebp + 0x6de], 0x14
jne 0x4572f4
mov ax, word [ebp + 0x654]
mov cx, word [ebp + 0x656]
movsx eax, ax
movsx ecx, cx
add eax, 0x4b
mov dword [ebp + 0x4e4d8], 1
mov dword [ebp + 0x4e5cc], eax
add ecx, 0x8c
lea edx, [ebp + 0x4ea05]
lea eax, [ebp + 0x4e75f]
mov dword [ebp + 0x4e5d0], ecx
mov dword [ebp + 0x4dd30], edx
mov dword [eax], edi
mov byte [ebp + 0x4e75e], 0x15
mov byte [ebp + 0x6de], 1
cmp byte [ebp + 0xf], 1
jne 0x45735c
cmp word [ebp + 0x10], 0x11
jne 0x45735c
cmp byte [ebp + 0xf4e], 0x14
jne 0x45735c
mov ax, word [ebp + 0xec4]
mov cx, word [ebp + 0xec6]
movsx edx, ax
movsx eax, cx
add edx, 0x28
mov dword [ebp + 0x4e4d8], 1
mov dword [ebp + 0x4e5cc], edx
add eax, 0x39
lea ecx, [ebp + 0x4e822]
lea edx, [ebp + 0x4e75f]
mov dword [ebp + 0x4e5d0], eax
mov dword [ebp + 0x4dd30], ecx
mov dword [edx], edi
mov byte [ebp + 0x4e75e], 0xb
mov byte [ebp + 0xf4e], 1
cmp word [ebp + 0x10], 9
jne 0x4573c0
cmp word [esp + 0xf8], 0x140
jge 0x457378
mov word [ebp + 0x804], di
jmp 0x45738a
mov ax, 0x280
sub ax, word [ebp + 0x808]
mov word [ebp + 0x804], ax
cmp word [esp + 0xfc], 0xd5
jge 0x4573ae
mov word [ebp + 0x806], di
mov byte [ebp + 0xe], 0
mov byte [ebp + 0xf], 0
mov word [ebp + 0x10], di
jmp case.0x458d62.6
mov cx, 0x1ab
sub cx, word [ebp + 0x80a]
mov word [ebp + 0x806], cx
mov byte [ebp + 0xe], 0
mov byte [ebp + 0xf], 0
mov word [ebp + 0x10], di
jmp case.0x458d62.6
mov byte [ebp + 0x4e830], 0
mov byte [ebp + 0x4e7e3], 0
mov ecx, dword [ebp + 0x4dd34]
mov dword [ebp + 0x4dd40], ecx
jmp case.0x458d62.6
lea esi, [ebp + 0x4e52c]
mov ecx, esi
call fcn.00491a60
test eax, eax
jle case.0x458d62.6
cmp word [ebp + 0x4e680], 0
je 0x45741b
mov byte [ebp + 0x4ea55], 7
jmp case.0x45894e.12
mov dx, word [ebp + 0x4e664]
mov ax, word [ebp + 0x4e662]
mov ecx, dword [ebp + 0x4a258]
push edx
push eax
call fcn.00482d30
cmp eax, 1
jne 0x45744c
mov al, byte [ebp + 0x4ebfe]
test al, al
jne 0x45744c
mov ecx, ebp
call fcn.00476890
mov al, byte [esp + 0x108]
test al, al
je 0x458591
lea edi, [ebp + 0x4e26c]
mov ecx, edi
call fcn.00491a60
cmp eax, 1
jne 0x4574e3
mov ax, word [ebp + 0x4e674]
xor esi, esi
cmp ax, si
jne 0x457499
cmp word [ebp + 0x4e676], si
jne 0x457499
movsx ecx, word [esp + 0x104]
movsx edx, word [esp + 0x100]
push 0xffffffffffffffff
push ecx
jmp 0x4574a6
movsx ecx, word [ebp + 0x4e676]
push 0xffffffffffffffff
push ecx
movsx edx, ax
push edx
mov ecx, ebp
call fcn.00454ca0
lea eax, [esp + 0x18]
lea ecx, [ebp + 0x4dda4]
push eax
mov dword [esp + 0x1c], esi
call fcn.00491a40
call dword [sym.imp.winmm.dll_timeGetTime]
lea ecx, [esp + 0x18]
mov dword [ebp + 0x4dd38], eax
push ecx
mov ecx, edi
mov dword [esp + 0x1c], esi
call fcn.00491a40
jmp case.0x458d62.6
lea eax, [ebp + 0x4e69a]
lea edx, [esp + 0x20]
push eax
push edx
mov dx, word [ebp + 0x4e676]
lea eax, [esp + 0x26]
lea ecx, [esp + 0x3c]
push eax
dec dx
push ecx
mov ecx, dword [ebp + 0x4a258]
push edx
mov dx, word [ebp + 0x4e674]
call fcn.004888a0
lea edx, [ebp + 0x4e918]
lea esi, [ebp + 0x4ea1b]
mov ecx, 5
mov edi, edx
xor eax, eax
repe cmpsw word [esi], word es:[edi]
jne 0x4575bd
cmp word [esp + 0x1e], 6
jle 0x45757a
mov esi, dword [ebp + 0x4a258]
movsx eax, word [ebp + 0x4e662]
movsx ecx, word [esi + 0x934460]
sub eax, ecx
lea ecx, [eax*8]
sub ecx, eax
lea eax, [ecx + ecx*4]
movsx ecx, word [esi + 0x934462]
sub eax, ecx
movsx ecx, word [ebp + 0x4e664]
add eax, ecx
shl eax, 7
cmp word [eax + esi + 0x5c], 0
je 0x4575bd
mov ax, word [ebp + 0x4e668]
cmp ax, 1
jl case.0x45894e.12
cmp ax, 6
jg case.0x45894e.12
mov byte [ebp + 0x4ea55], 5
mov dx, word [ebp + 0x4e662]
mov word [ebp + 0x4e678], dx
mov ax, word [ebp + 0x4e664]
mov word [ebp + 0x4e67a], ax
jmp case.0x45894e.12
mov edi, edx
mov ecx, 5
lea esi, [ebp + 0x4ea1b]
xor edx, edx
repe cmpsw word [esi], word es:[edi]
jne 0x4575d8
dec word [ebp + 0x4e676]
mov dx, word [ebp + 0x4e674]
test dx, dx
je 0x458521
mov ax, word [ebp + 0x4e676]
test ax, ax
je 0x458521
cmp dword [ebp + 0x4e280], 1
jne 0x457c19
lea ecx, [ebp + 0x4e69a]
push ecx
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x26]
push ecx
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [ebp + 0x4a258]
push eax
call fcn.004888a0
test byte [esp + 0x20], 0x10
jne case.0x458d62.6
mov ax, word [esp + 0x1e]
cmp ax, 0xf
je case.0x458d62.6
cmp ax, 0x14
je case.0x458d62.6
cmp ax, 0x18
je case.0x458d62.6
movsx edx, word [ebp + 0x4e674]
movsx eax, word [ebp + 0x4e662]
movsx ecx, word [ebp + 0x4e676]
sub eax, edx
mov word [ebp + 0xc], 3
cdq
mov ebx, eax
movsx eax, word [ebp + 0x4e664]
xor ebx, edx
sub eax, ecx
sub ebx, edx
cdq
xor eax, edx
sub eax, edx
cmp bl, 1
mov byte [esp + 0x13], al
jg 0x4576c7
cmp al, 1
jg 0x4576c7
mov ecx, ebp
call fcn.0043e8d0
mov dword [esp + 0x14], eax
mov byte [ebp + 0x4ea55], 3
mov dx, word [ebp + 0x4e674]
mov word [ebp + 0x4e678], dx
mov ax, word [ebp + 0x4e676]
mov word [ebp + 0x4e67a], ax
jmp case.0x45894e.12
mov ecx, ebp
call fcn.0043ea80
add eax, 0xfffffffb
cmp eax, 0x10
ja case.0x45894e.12
xor ecx, ecx
mov cl, byte [eax + 0x45979c]
jmp dword [ecx*4 + 0x45977c]
cmp bl, 2
jne 0x45774a
mov al, byte [esp + 0x13]
cmp al, bl
je 0x4576fa
test al, al
jne 0x457755
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x457712
mov eax, dword [ebp + 0x4e284]
test eax, eax
je 0x457979
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle 0x457979
mov ecx, ebp
call fcn.0043ea80
cmp byte [eax + ebp + 0x4eb8b], 0x64
jne 0x457788
mov ecx, ebp
mov byte [ebp + 0x4ea55], 8
call fcn.0043e8d0
mov dword [esp + 0x14], eax
jmp 0x457796
test bl, bl
jne 0x457755
cmp byte [esp + 0x13], 2
je 0x4576fa
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x457769
mov eax, dword [ebp + 0x4e284]
test eax, eax
je 0x4577b7
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle 0x4577b7
mov ax, word [ebp + 0x4e668]
cmp ax, 1
jmp 0x457c8b
mov ecx, ebp
mov byte [ebp + 0x4ea55], 2
call fcn.0042ffc0
mov cx, word [ebp + 0x4e674]
mov word [ebp + 0x4e678], cx
mov dx, word [ebp + 0x4e676]
mov word [ebp + 0x4e67a], dx
jmp case.0x45894e.12
mov byte [ebp + 0x4ea55], 1
mov dx, word [ebp + 0x4e674]
mov ecx, ebp
mov word [ebp + 0x4e678], dx
mov ax, word [ebp + 0x4e676]
mov word [ebp + 0x4e67a], ax
call fcn.0042ffc0
jmp case.0x45894e.12
mov al, byte [esp + 0x13]
cmp bl, 3
jg 0x45780a
cmp al, 3
jg 0x45780a
mov ecx, dword [ebp + 0x4e5a4]
test ecx, ecx
jle 0x45780a
cmp dword [ebp + 0x4e4a0], 1
je 0x458702
cmp bl, 2
jne 0x457858
cmp al, bl
je 0x457817
test al, al
jne 0x457860
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x45782b
mov eax, dword [ebp + 0x4e284]
test eax, eax
je 0x4577b7
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle 0x4577b7
mov ecx, ebp
call fcn.0043ea80
cmp byte [eax + ebp + 0x4eb8b], 0x64
jne 0x457b36
jmp 0x457adc
test bl, bl
jne 0x457860
cmp al, 2
je 0x457817
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x457878
mov eax, dword [ebp + 0x4e284]
test eax, eax
je 0x4584f2
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle 0x4584f2
mov ax, word [ebp + 0x4e668]
cmp ax, 1
jmp 0x4584e1
mov al, byte [esp + 0x13]
cmp bl, 4
jg 0x4578bf
cmp al, 4
jg 0x4578bf
mov ecx, dword [ebp + 0x4e5a4]
test ecx, ecx
jle 0x4578bf
cmp dword [ebp + 0x4e4a0], 1
je case.0x45894e.6
cmp bl, 2
jne 0x45791f
cmp al, bl
je 0x4578cc
test al, al
jne 0x457927
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x4578e4
mov eax, dword [ebp + 0x4e284]
test eax, eax
je 0x4584f2
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle 0x4584f2
mov ecx, ebp
call fcn.0043ea80
cmp byte [eax + ebp + 0x4eb8b], 0x64
jne 0x457966
mov ecx, ebp
mov byte [ebp + 0x4ea55], 8
call fcn.0043e8d0
mov dword [esp + 0x14], eax
jmp 0x4576a6
test bl, bl
jne 0x457927
cmp al, 2
je 0x4578cc
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x45793b
mov eax, dword [ebp + 0x4e284]
test eax, eax
je 0x457979
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle 0x457979
mov ax, word [ebp + 0x4e668]
cmp ax, 1
jl 0x457979
cmp ax, 6
jg 0x457979
mov byte [ebp + 0x4ea55], 2
jmp 0x457980
mov ecx, ebp
mov byte [ebp + 0x4ea55], 2
call fcn.0042ffc0
jmp 0x4576a6
mov byte [ebp + 0x4ea55], 1
mov ax, word [ebp + 0x4e674]
mov word [ebp + 0x4e678], ax
mov cx, word [ebp + 0x4e676]
mov word [ebp + 0x4e67a], cx
mov ecx, ebp
call fcn.0042ffc0
jmp case.0x45894e.12
mov al, byte [esp + 0x13]
cmp bl, 2
jg 0x4579cc
cmp al, 2
jg 0x4579cc
mov ecx, dword [ebp + 0x4e5a4]
test ecx, ecx
jle 0x4579cc
cmp dword [ebp + 0x4e4a0], 1
je case.0x4576e2.6
cmp bl, 2
jne 0x457a2c
cmp al, bl
je 0x4579d9
test al, al
jne 0x457a34
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x4579ed
mov eax, dword [ebp + 0x4e284]
test eax, eax
je 0x457979
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle 0x457979
mov ecx, ebp
call fcn.0043ea80
cmp byte [eax + ebp + 0x4eb8b], 0x64
jne 0x457788
mov ecx, ebp
mov byte [ebp + 0x4ea55], 8
call fcn.0043e8d0
mov dword [esp + 0x14], eax
jmp 0x457796
test bl, bl
jne 0x457a34
cmp al, 2
je 0x4579d9
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x457a4c
mov eax, dword [ebp + 0x4e284]
test eax, eax
je 0x4577b7
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle 0x4577b7
mov ax, word [ebp + 0x4e668]
cmp ax, 1
jmp 0x457c8b
mov al, byte [esp + 0x13]
cmp bl, 2
jg 0x457a93
cmp al, 2
jg 0x457a93
mov ecx, dword [ebp + 0x4e5a4]
test ecx, ecx
jle 0x457a93
cmp dword [ebp + 0x4e4a0], 1
je 0x458702
cmp bl, 2
jne 0x457af3
cmp al, bl
je 0x457aa0
test al, al
jne 0x457afb
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x457ab8
mov eax, dword [ebp + 0x4e284]
test eax, eax
je 0x4577b7
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle 0x4577b7
mov ecx, ebp
call fcn.0043ea80
cmp byte [eax + ebp + 0x4eb8b], 0x64
jne 0x457b36
mov ecx, ebp
mov byte [ebp + 0x4ea55], 8
call fcn.0043e8d0
mov dword [esp + 0x14], eax
jmp 0x458912
test bl, bl
jne 0x457afb
cmp al, 2
je 0x457aa0
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x457b13
mov eax, dword [ebp + 0x4e284]
test eax, eax
je 0x4584f2
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle 0x4584f2
mov ax, word [ebp + 0x4e668]
cmp ax, 1
jmp 0x4584e1
mov ecx, ebp
mov byte [ebp + 0x4ea55], 2
call fcn.0042ffc0
jmp 0x458912
mov al, byte [esp + 0x13]
cmp bl, 2
jg 0x457b6d
cmp al, 2
jg 0x457b6d
mov ecx, dword [ebp + 0x4e5a4]
test ecx, ecx
jle 0x457b6d
cmp dword [ebp + 0x4e4a0], 1
je case.0x45894e.6
cmp bl, 2
jne 0x457bbf
cmp al, bl
je 0x457b7a
test al, al
jne 0x457bc7
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x457b92
mov eax, dword [ebp + 0x4e284]
test eax, eax
je 0x4584f2
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle 0x4584f2
mov ecx, ebp
call fcn.0043ea80
cmp byte [eax + ebp + 0x4eb8b], 0x64
jne 0x457966
jmp 0x457908
test bl, bl
jne 0x457bc7
cmp al, 2
je 0x457b7a
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x457bdf
mov eax, dword [ebp + 0x4e284]
test eax, eax
je 0x457979
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle 0x457979
mov ax, word [ebp + 0x4e668]
cmp ax, 1
jl 0x457979
cmp ax, 6
jg 0x457979
mov byte [ebp + 0x4ea55], 2
jmp 0x457980
lea edi, [ebp + 0x4e69a]
lea ecx, [esp + 0x20]
push edi
push ecx
lea ecx, [esp + 0x26]
push ecx
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [ebp + 0x4a258]
push eax
call fcn.004888a0
mov ax, word [esp + 0x1e]
mov esi, 1
cmp ax, 0xa
jge 0x457ca7
cmp ax, si
jl 0x457c56
cmp ax, 6
jle 0x457ca7
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x457c6e
mov eax, dword [ebp + 0x4e284]
test eax, eax
je 0x4577b7
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle 0x4577b7
mov ax, word [ebp + 0x4e668]
cmp ax, si
jl 0x4577b7
cmp ax, 6
jg 0x4577b7
mov byte [ebp + 0x4ea55], 2
jmp 0x4577be
movsx eax, ax
add eax, 0xfffffff1
cmp eax, 0x36
ja case.0x457cbe.24
xor ecx, ecx
mov cl, byte [eax + 0x4597d8]
jmp dword [ecx*4 + 0x4597b0]
cmp byte [esp + 0x34], 0x31
jne case.0x45894e.12
push 0
push esi
push 0xb
push 5
push 0x14
mov ecx, ebp
call fcn.00431bf0
mov edx, dword [esp + 0xf8]
add ebx, 0xffffffce
lea eax, [edx - 0x75]
test ax, ax
jge 0x457cf4
xor eax, eax
movsx ecx, ax
add ecx, 0xeb
cmp ecx, 0x27f
jle 0x457d0a
mov eax, 0x194
test bx, bx
jge 0x457d11
xor ebx, ebx
movsx edx, bx
add edx, 0x64
cmp edx, 0x1df
jle 0x457d24
mov ebx, 0x17b
mov word [ebp + 0x114c], ax
mov word [ebp + 0x114e], bx
mov dword [ebp + 0x110c], 0xf
jmp case.0x45894e.12
cmp byte [esp + 0x34], 0x31
jne case.0x45894e.12
push 0
push 0
push 0x10
push 0
push 0x14
mov ecx, ebp
call fcn.00431bf0
mov eax, dword [esp + 0xf8]
add ebx, 0xffffffce
add eax, 0xffffff8b
test ax, ax
jge 0x457d71
xor eax, eax
movsx ecx, ax
add ecx, 0xeb
cmp ecx, 0x27f
jle 0x457d87
mov eax, 0x194
test bx, bx
jge 0x457d8e
xor ebx, ebx
movsx edx, bx
add edx, 0x64
cmp edx, 0x1df
jle 0x457da1
mov ebx, 0x17b
mov word [ebp + 0x114c], ax
mov word [ebp + 0x114e], bx
mov dword [ebp + 0x110c], 0x13
jmp case.0x45894e.12
cmp byte [esp + 0x34], 0x31
jne case.0x45894e.12
push 0
push 0
push 0xe
mov esi, 0x14
push 0
push esi
mov ecx, ebp
call fcn.00431bf0
mov eax, dword [esp + 0xf8]
add ebx, 0xffffffce
add eax, 0xffffff8b
test ax, ax
jge 0x457df2
xor eax, eax
movsx ecx, ax
add ecx, 0xeb
cmp ecx, 0x27f
jle 0x457e08
mov eax, 0x194
test bx, bx
jge 0x457e0f
xor ebx, ebx
movsx edx, bx
add edx, 0x64
cmp edx, 0x1df
jle 0x457e22
mov ebx, 0x17b
mov word [ebp + 0x114c], ax
mov word [ebp + 0x114e], bx
mov dword [ebp + 0x110c], esi
mov dword [ebp + 0x2114], esi
jmp 0x457ebd
cmp byte [esp + 0x34], 0x31
jne case.0x45894e.12
push 0
push 2
push 0xb
push 5
push 0x14
mov ecx, ebp
call fcn.00431bf0
mov eax, dword [esp + 0xf8]
add ebx, 0xffffffce
add eax, 0xffffff8b
test ax, ax
jge 0x457e6e
xor eax, eax
movsx ecx, ax
add ecx, 0xeb
cmp ecx, 0x27f
jle 0x457e84
mov eax, 0x194
test bx, bx
jge 0x457e8b
xor ebx, ebx
movsx edx, bx
add edx, 0x64
cmp edx, 0x1df
jle 0x457e9e
mov ebx, 0x17b
mov word [ebp + 0x114c], ax
mov eax, 0x18
mov word [ebp + 0x114e], bx
mov dword [ebp + 0x110c], eax
mov dword [ebp + 0x2114], eax
movsx ecx, word [ebp + 0x4e674]
movsx edx, word [ebp + 0x4e676]
xor eax, eax
mov dword [ebp + 0x211c], ecx
mov ax, word [edi]
mov dword [ebp + 0x2120], edx
mov dword [ebp + 0x2118], eax
jmp case.0x45894e.12
cmp byte [esp + 0x34], 0x31
jne case.0x45894e.12
push 0
push 0
push 0xd
push 0
push 0x14
mov ecx, ebp
call fcn.00431bf0
mov eax, dword [esp + 0xf8]
add ebx, 0xffffffce
add eax, 0xffffff8b
test ax, ax
jge 0x457f17
xor eax, eax
movsx ecx, ax
add ecx, 0xeb
cmp ecx, 0x27f
jle 0x457f2d
mov eax, 0x194
test bx, bx
jge 0x457f34
xor ebx, ebx
movsx edx, bx
add edx, 0x64
cmp edx, 0x1df
jle 0x457f47
mov ebx, 0x17b
mov word [ebp + 0x114c], ax
mov word [ebp + 0x114e], bx
mov dword [ebp + 0x110c], 0x19
jmp case.0x45894e.12
cmp byte [esp + 0x34], 0x31
jne case.0x45894e.12
push 0
push 0
push 7
push 0
push 0x14
mov ecx, ebp
call fcn.00431bf0
mov eax, dword [esp + 0xf8]
add ebx, 0xffffffce
add eax, 0xffffff8b
test ax, ax
jge 0x457f94
xor eax, eax
movsx ecx, ax
add ecx, 0xeb
cmp ecx, 0x27f
jle 0x457faa
mov eax, 0x194
test bx, bx
jge 0x457fb1
xor ebx, ebx
movsx edx, bx
add edx, 0x64
cmp edx, 0x1df
jle 0x457fc4
mov ebx, 0x17b
mov word [ebp + 0x114c], ax
mov word [ebp + 0x114e], bx
mov dword [ebp + 0x110c], 0x1a
jmp case.0x45894e.12
mov eax, dword [esp + 0x20]
mov ecx, ebp
push eax
call fcn.004401d0
cmp eax, esi
jne case.0x45894e.12
mov eax, dword [ebp + 0x4e47c]
test eax, eax
jne case.0x45894e.12
push 0
push 0
push 0
push 4
push 0x14
mov ecx, ebp
call fcn.00431bf0
mov ecx, dword [esp + 0xf8]
add ebx, 0xffffffce
lea eax, [ecx - 0x75]
test ax, ax
jge 0x458028
xor eax, eax
movsx edx, ax
add edx, 0xeb
cmp edx, 0x27f
jle 0x45803e
mov eax, 0x194
test bx, bx
jge 0x458045
xor ebx, ebx
movsx ecx, bx
add ecx, 0x64
cmp ecx, 0x1df
jle 0x458058
mov ebx, 0x17b
mov word [ebp + 0x114c], ax
mov word [ebp + 0x114e], bx
mov dword [ebp + 0x110c], 0x15
jmp case.0x45894e.12
mov eax, dword [ebp + 0x4e47c]
test eax, eax
jne case.0x45894e.12
push 0
push 0
push 0
push 4
push 0x14
mov ecx, ebp
call fcn.00431bf0
mov edx, dword [esp + 0xf8]
add ebx, 0xffffffce
lea eax, [edx - 0x75]
test ax, ax
jge 0x4580a8
xor eax, eax
movsx ecx, ax
add ecx, 0xeb
cmp ecx, 0x27f
jle 0x4580be
mov eax, 0x194
test bx, bx
jge 0x4580c5
xor ebx, ebx
movsx edx, bx
add edx, 0x64
cmp edx, 0x1df
jle 0x4580d8
mov ebx, 0x17b
mov word [ebp + 0x114c], ax
mov word [ebp + 0x114e], bx
movsx eax, word [esp + 0x1e]
mov dword [ebp + 0x110c], eax
jmp case.0x45894e.12
mov eax, dword [ebp + 0x4e47c]
test eax, eax
jne case.0x45894e.12
push 0
push 0
push 0
push 4
push 0x14
mov ecx, ebp
call fcn.00431bf0
mov ecx, dword [esp + 0xf8]
add ebx, 0xffffffce
lea eax, [ecx - 0x75]
test ax, ax
jge 0x458129
xor eax, eax
movsx edx, ax
add edx, 0xeb
cmp edx, 0x27f
jle 0x45813f
mov eax, 0x194
test bx, bx
jge 0x458146
xor ebx, ebx
movsx ecx, bx
add ecx, 0x64
cmp ecx, 0x1df
jle 0x458159
mov ebx, 0x17b
mov word [ebp + 0x114c], ax
mov word [ebp + 0x114e], bx
mov dword [ebp + 0x110c], 0x20
jmp case.0x45894e.12
mov edx, dword [esp + 0x20]
mov ecx, ebp
push edx
call fcn.004401d0
test eax, eax
jge case.0x45894e.12
mov ax, word [esp + 0x1e]
cmp ax, si
jl 0x4581a8
cmp ax, 6
jg 0x4581a8
mov eax, dword [ebp + 0x4e50c]
test eax, eax
je case.0x45894e.12
movsx ecx, word [ebp + 0x4e674]
movsx eax, word [ebp + 0x4e662]
sub eax, ecx
cdq
mov ebx, eax
movsx eax, word [ebp + 0x4e664]
xor ebx, edx
sub ebx, edx
movsx edx, word [ebp + 0x4e676]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp bl, 1
mov byte [esp + 0x13], al
jg 0x4581e5
cmp al, 1
jle 0x458900
mov ecx, ebp
call fcn.0043ea80
add eax, 0xfffffffb
cmp eax, 0x10
ja case.0x45894e.12
xor edx, edx
mov dl, byte [eax + 0x459830]
jmp dword [edx*4 + 0x459810]
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x457c6e
jmp 0x457c60
cmp bl, 3
jg 0x458281
mov al, byte [esp + 0x13]
cmp al, 3
jg 0x458281
mov ecx, dword [ebp + 0x4e5a4]
test ecx, ecx
jle 0x458281
cmp dword [ebp + 0x4e4a0], esi
jne 0x458281
cmp bl, 1
jg 0x458702
cmp al, 1
jg 0x458702
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x458262
mov eax, dword [ebp + 0x4e284]
test eax, eax
je 0x458702
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle 0x458702
mov byte [ebp + 0x4ea55], 8
jmp 0x458709
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x458299
mov eax, dword [ebp + 0x4e284]
test eax, eax
je 0x457979
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle 0x457979
mov ax, word [ebp + 0x4e668]
cmp ax, si
jmp 0x457bfd
cmp bl, 4
jg 0x458322
mov al, byte [esp + 0x13]
cmp al, 4
jg 0x458322
mov ecx, dword [ebp + 0x4e5a4]
test ecx, ecx
jle 0x458322
cmp dword [ebp + 0x4e4a0], esi
jne 0x458322
cmp bl, 1
jg case.0x4576e2.6
cmp al, 1
jg case.0x4576e2.6
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x458303
mov eax, dword [ebp + 0x4e284]
test eax, eax
je case.0x4576e2.6
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle case.0x4576e2.6
mov byte [ebp + 0x4ea55], 8
jmp 0x4589b2
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x4584c8
jmp 0x4584be
cmp bl, 2
jg case.0x458200.5
mov al, byte [esp + 0x13]
cmp al, 2
jg case.0x458200.5
mov ecx, dword [ebp + 0x4e5a4]
test ecx, ecx
jle case.0x458200.5
cmp dword [ebp + 0x4e4a0], esi
jne case.0x458200.5
cmp bl, 1
jg case.0x45894e.6
cmp al, 1
jg case.0x45894e.6
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x45838d
mov eax, dword [ebp + 0x4e284]
test eax, eax
je case.0x45894e.6
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle case.0x45894e.6
mov byte [ebp + 0x4ea55], 8
jmp 0x45895c
cmp bl, 2
jg 0x458413
mov al, byte [esp + 0x13]
cmp al, 2
jg 0x458413
mov ecx, dword [ebp + 0x4e5a4]
test ecx, ecx
jle 0x458413
cmp dword [ebp + 0x4e4a0], esi
jne 0x458413
cmp bl, 1
jg 0x458702
cmp al, 1
jg 0x458702
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x4583f4
mov eax, dword [ebp + 0x4e284]
test eax, eax
je 0x458702
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle 0x458702
mov byte [ebp + 0x4ea55], 8
jmp 0x458709
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x45842b
mov eax, dword [ebp + 0x4e284]
test eax, eax
je 0x457979
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle 0x457979
mov ax, word [ebp + 0x4e668]
cmp ax, si
jmp 0x457bfd
cmp bl, 2
jg 0x4584b4
mov al, byte [esp + 0x13]
cmp al, 2
jg 0x4584b4
mov ecx, dword [ebp + 0x4e5a4]
test ecx, ecx
jle 0x4584b4
cmp dword [ebp + 0x4e4a0], esi
jne 0x4584b4
cmp bl, 1
jg case.0x4576e2.6
cmp al, 1
jg case.0x4576e2.6
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x458495
mov eax, dword [ebp + 0x4e284]
test eax, eax
je case.0x4576e2.6
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle case.0x4576e2.6
mov byte [ebp + 0x4ea55], 8
jmp 0x4589b2
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x4584c8
mov eax, dword [ebp + 0x4e284]
test eax, eax
je 0x4584f2
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle 0x4584f2
mov ax, word [ebp + 0x4e668]
cmp ax, si
jl 0x4584f2
cmp ax, 6
jg 0x4584f2
mov byte [ebp + 0x4ea55], 2
jmp 0x4584f9
mov byte [ebp + 0x4ea55], 1
mov cx, word [ebp + 0x4e674]
mov word [ebp + 0x4e678], cx
mov dx, word [ebp + 0x4e676]
mov ecx, ebp
mov word [ebp + 0x4e67a], dx
call fcn.0042ffc0
jmp case.0x45894e.12
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x458535
mov eax, dword [ebp + 0x4e284]
test eax, eax
je 0x458560
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
test eax, eax
jle 0x458560
mov ax, word [ebp + 0x4e668]
cmp ax, 1
jl 0x458560
cmp ax, 6
jg 0x458560
mov byte [ebp + 0x4ea55], 2
jmp 0x458567
mov byte [ebp + 0x4ea55], 1
mov ax, word [esp + 0x100]
mov cx, word [esp + 0x104]
mov word [ebp + 0x4e678], ax
mov word [ebp + 0x4e67a], cx
mov ecx, ebp
call fcn.0042ffc0
jmp case.0x45894e.12
mov al, byte [esp + 0x10c]
test al, al
je case.0x45894e.12
lea edi, [ebp + 0x4e26c]
mov byte [ebp + 0x4ea55], 0
mov ecx, edi
call fcn.00491a60
cmp eax, 1
jne 0x4585dd
lea edx, [esp + 0x18]
mov ecx, edi
push edx
mov dword [esp + 0x1c], 0
call fcn.00491a40
push 1
push 0xa
push 0x4a839c
mov ecx, ebp
call fcn.0040fba0
lea ecx, [ebp + 0x4dda4]
call fcn.00491a60
test eax, eax
je case.0x458d62.6
cmp byte [ebp + 0x4ebfe], 6
jge case.0x458d62.6
mov di, word [ebp + 0x4e674]
test di, di
je 0x458a2c
mov cx, word [ebp + 0x4e676]
test cx, cx
je 0x458a2c
movsx eax, word [ebp + 0x4e662]
movsx edx, di
sub eax, edx
cdq
mov ebx, eax
movsx eax, word [ebp + 0x4e664]
xor ebx, edx
sub ebx, edx
movsx edx, cx
sub eax, edx
cdq
xor eax, edx
sub eax, edx
test bl, bl
mov dword [esp + 0x18], eax
jne 0x458651
test al, al
je case.0x458d62.6
mov eax, dword [ebp + 0x4e280]
mov esi, 1
cmp eax, esi
lea eax, [ebp + 0x4e69a]
lea edx, [esp + 0x20]
push eax
push edx
lea eax, [esp + 0x26]
lea edx, [esp + 0x3c]
push eax
push edx
push ecx
mov ecx, dword [ebp + 0x4a258]
mov edx, edi
jne 0x458885
call fcn.004888a0
test byte [esp + 0x20], 0x10
jne case.0x458d62.6
mov ax, word [esp + 0x1e]
cmp ax, 0xf
je case.0x458d62.6
cmp ax, 0x14
je case.0x458d62.6
cmp ax, 0x18
je case.0x458d62.6
cmp bl, 1
jg 0x4586c6
cmp byte [esp + 0x18], 1
jle 0x458900
mov ecx, ebp
call fcn.0043ea80
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x45894e.12
xor edx, edx
mov dl, byte [eax + 0x459860]
jmp dword [edx*4 + 0x459844]
cmp bl, 4
jg case.0x45894e.12
cmp byte [esp + 0x18], 4
jg case.0x45894e.12
mov eax, dword [ebp + 0x4e5a4]
test eax, eax
jle case.0x45894e.12
cmp dword [ebp + 0x4e4a0], esi
jne case.0x45894e.12
mov byte [ebp + 0x4ea55], 3
mov cx, word [ebp + 0x4e674]
mov word [ebp + 0x4e678], cx
mov dx, word [ebp + 0x4e676]
mov word [ebp + 0x4e67a], dx
mov ecx, ebp
call fcn.0043e8d0
mov dword [esp + 0x14], eax
mov al, byte [ebp + 0x4ea55]
test al, al
je case.0x458d62.6
lea ecx, [ebp + 0x4e52c]
call fcn.00491a60
test eax, eax
jle case.0x458d62.6
cmp byte [ebp + 0x4ebfe], 5
jne 0x45876a
push 0
push 0xa
push 0x4ab9d4
mov ecx, ebp
call fcn.0040fba0
lea ecx, [ebp + 0x4dda4]
xor esi, esi
call fcn.00491a60
test eax, eax
je case.0x458d62.6
cmp byte [ebp + 0x4ebfe], 6
jge case.0x458d62.6
mov ax, word [ebp + 0x4e668]
cmp ax, si
jl 0x4587b7
cmp ax, 6
jle 0x4587b7
mov al, byte [ebp + 0x4ea55]
cmp al, 2
je 0x4587b0
cmp al, 3
jle 0x4587b7
cmp al, 5
jg 0x4587b7
mov byte [ebp + 0x4ea55], 0
lea edi, [ebp + 0x4e484]
mov ecx, edi
call fcn.00491a60
cmp eax, 1
jne 0x458820
push eax
push 0xa
push 0x4aaf14
mov ecx, ebp
call fcn.0040fba0
push 0x18
mov ecx, ebp
call fcn.00432950
push 0x1a
mov ecx, ebp
call fcn.00432950
mov ax, word [ebp + 0x4e668]
cmp ax, 1
jl 0x458820
cmp ax, 6
jg 0x458820
mov byte [ebp + 0x4ea55], 0
mov ax, word [ebp + 0x4e662]
mov word [ebp + 0x4e678], ax
mov cx, word [ebp + 0x4e664]
mov word [ebp + 0x4e67a], cx
lea edx, [esp + 0x18]
mov ecx, edi
push edx
mov dword [esp + 0x1c], esi
call fcn.00491a40
cmp word [ebp + 0x4e680], si
je 0x458d51
mov byte [ebp + 0x4ea55], 7
mov ax, word [ebp + 0x4e662]
mov word [ebp + 0x4e678], ax
mov ax, word [ebp + 0x4e664]
mov word [ebp + 0x4e67a], ax
movsx ecx, word [ebp + 0x4e680]
dec ecx
cmp ecx, 7
ja case.default.0x458871
jmp dword [ecx*4 + 0x459870]
dec eax
mov word [ebp + 0x4e67a], ax
jmp case.default.0x458871
call fcn.004888a0
mov ax, word [esp + 0x1e]
cmp ax, 0xa
jge 0x4588a8
cmp ax, si
jl case.0x45894e.12
cmp ax, 6
jg case.0x45894e.12
movsx eax, ax
add eax, 0xfffffff1
cmp eax, 0xb
ja case.0x4588bb.16
xor ecx, ecx
mov cl, byte [eax + 0x459898]
jmp dword [ecx*4 + 0x459890]
mov edx, dword [esp + 0x20]
mov ecx, ebp
push edx
call fcn.004401d0
test eax, eax
jge case.0x45894e.12
mov ax, word [esp + 0x1e]
cmp ax, si
jl 0x4588f4
cmp ax, 6
jg 0x4588f4
mov eax, dword [ebp + 0x4e50c]
test eax, eax
je case.0x45894e.12
cmp bl, 1
jg 0x458933
cmp byte [esp + 0x18], 1
jg 0x458933
mov ecx, ebp
call fcn.0043e8d0
mov dword [esp + 0x14], eax
mov byte [ebp + 0x4ea55], 3
mov ax, word [ebp + 0x4e674]
mov word [ebp + 0x4e678], ax
mov cx, word [ebp + 0x4e676]
mov word [ebp + 0x4e67a], cx
jmp case.0x45894e.12
mov ecx, ebp
call fcn.0043ea80
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x45894e.12
xor edx, edx
mov dl, byte [eax + 0x4598c0]
jmp dword [edx*4 + 0x4598a4]
mov byte [ebp + 0x4ea55], 3
mov ax, word [ebp + 0x4e674]
mov word [ebp + 0x4e678], ax
mov cx, word [ebp + 0x4e676]
mov word [ebp + 0x4e67a], cx
jmp 0x458725
cmp bl, 3
jg case.0x45894e.12
cmp byte [esp + 0x18], 3
jg case.0x45894e.12
mov eax, dword [ebp + 0x4e5a4]
test eax, eax
jle case.0x45894e.12
cmp dword [ebp + 0x4e4a0], esi
jne case.0x45894e.12
mov byte [ebp + 0x4ea55], 3
mov dx, word [ebp + 0x4e674]
mov word [ebp + 0x4e678], dx
mov ax, word [ebp + 0x4e676]
mov word [ebp + 0x4e67a], ax
jmp 0x458725
cmp bl, 2
jg case.0x45894e.12
cmp byte [esp + 0x18], 2
jg case.0x45894e.12
mov eax, dword [ebp + 0x4e5a4]
test eax, eax
jle case.0x45894e.12
cmp dword [ebp + 0x4e4a0], esi
jne case.0x45894e.12
jmp case.0x45894e.6
cmp bl, 2
jg case.0x45894e.12
cmp byte [esp + 0x18], 2
jmp 0x45898b
cmp bl, 2
jg case.0x45894e.12
cmp byte [esp + 0x18], 2
jmp 0x4586ee
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x100]
mov dx, word [ebp + 0x4e664]
push eax
mov ax, word [ebp + 0x4e662]
push ecx
push edx
push eax
lea ecx, [ebp + 0x36074]
call fcn.0048fa60
mov bl, al
mov ecx, esi
mov byte [esp + 0x18], bl
call fcn.00491a60
test eax, eax
jle case.0x458d62.6
test bl, bl
je case.0x458d62.6
cmp byte [ebp + 0x4e924], bl
je case.0x458d62.6
lea edi, [ebp + 0x4e484]
mov ecx, edi
call fcn.00491a60
cmp eax, 1
jne 0x458ae9
push eax
push 0xa
push 0x4aaf14
mov ecx, ebp
call fcn.0040fba0
push 0x18
mov ecx, ebp
call fcn.00432950
push 0x1a
mov ecx, ebp
call fcn.00432950
mov ax, word [ebp + 0x4e668]
cmp ax, 1
jl 0x458ae9
cmp ax, 6
jg 0x458ae9
mov byte [ebp + 0x4ea55], 0
mov cx, word [ebp + 0x4e662]
mov word [ebp + 0x4e678], cx
mov dx, word [ebp + 0x4e664]
mov word [ebp + 0x4e67a], dx
lea eax, [esp + 0x14]
xor esi, esi
push eax
mov ecx, edi
mov dword [esp + 0x18], esi
call fcn.00491a40
mov ecx, dword [esp + 0x18]
push esi
push esi
push esi
push esi
push esi
push ecx
push esi
push 0xfa314d5
mov ecx, ebp
mov byte [ebp + 0x4e924], bl
call fcn.00404de0
movsx dx, byte [ebp + 0x4ea55]
mov cx, word [ebp + 0x4e672]
push 0xa
push esi
push esi
push esi
push esi
lea eax, [ebp + 0x4e918]
push edx
mov edx, dword [ebp + 0x4e528]
push eax
mov ax, word [ebp + 0x4e670]
push ecx
mov cx, word [ebp + 0x4e66e]
push edx
mov dx, word [ebp + 0x4e66c]
push eax
mov ax, word [ebp + 0x4e66a]
push ecx
movsx ecx, byte [ebp + 0x4e924]
push edx
push eax
movsx edx, word [ebp + 0x4e668]
movsx eax, word [ebp + 0x4e664]
push ecx
push edx
movsx ecx, word [ebp + 0x4e662]
mov dx, word [ebp + 0x4e666]
push eax
push ecx
mov ecx, dword [ebp + 0x4a258]
call fcn.00482da0
lea edx, [esp + 0x18]
lea ecx, [ebp + 0x4dda4]
push edx
mov dword [esp + 0x1c], esi
call fcn.00491a40
call dword [sym.imp.winmm.dll_timeGetTime]
mov dword [ebp + 0x4dd38], eax
jmp case.0x458d62.6
inc word [ebp + 0x4e678]
jmp 0x458c00
inc word [ebp + 0x4e678]
jmp case.default.0x458871
inc word [ebp + 0x4e678]
inc word [ebp + 0x4e67a]
jmp case.default.0x458871
inc eax
mov word [ebp + 0x4e67a], ax
jmp case.default.0x458871
dec word [ebp + 0x4e678]
inc word [ebp + 0x4e67a]
jmp case.default.0x458871
dec word [ebp + 0x4e678]
jmp case.default.0x458871
dec word [ebp + 0x4e678]
dec word [ebp + 0x4e67a]
mov ebx, 1
lea eax, [ebp + 0x4a268]
cmp dword [eax], esi
je 0x458c27
inc ebx
add eax, 4
cmp ebx, 0x1f4
jl 0x458c12
jmp 0x458d4a
mov ecx, 0x1e
xor eax, eax
lea edi, [esp + 0x70]
rep stosd dword es:[edi], eax
mov ax, word [ebp + 0x4e682]
cmp ax, si
jle 0x458c59
movsx ecx, ax
push ecx
lea edx, [esp + 0x74]
push 0x4ab9cc
push edx
call dword [sym.imp.user32.dll_wsprintfA]
add esp, 0xc
jmp 0x458c81
mov edi, 0x4ab9c0
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x70]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor esi, esi
mov ax, word [ebp + 0x4e682]
cmp ax, si
jl 0x458c9a
cmp ax, 0xc
jge 0x458ca0
mov edi, 0x15
jmp 0x458cc3
cmp ax, 0xc
jl 0x458cad
cmp ax, 0x28
jge 0x458cb8
mov edi, 0x16
jmp 0x458cc3
cmp ax, 0x28
jge 0x458cb8
cmp ax, si
jge 0x458cbf
mov edi, 0x17
jmp 0x458cc3
mov edi, dword [esp + 0x30]
push 0x18
push 8
call dword [sym.imp.kernel32.dll_GetProcessHeap]
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esp + 0x30], eax
cmp eax, esi
mov dword [esp + 0xf0], esi
je 0x458cf9
mov ecx, dword [ebp + 0x4dd44]
lea edx, [esp + 0x70]
push ecx
push edx
push edi
mov ecx, eax
call fcn.00490220
jmp 0x458cfb
xor eax, eax
mov dword [ebp + ebx*4 + 0x4a264], eax
push ebx
movsx ecx, word [ebp + 0x4e666]
mov dword [eax + 0x14], ecx
mov dx, word [ebp + 0x4e666]
mov ecx, dword [ebp + 0x4a258]
push 0xfffffffffffffff6
push 0xfffffffffffffff6
mov dword [esp + 0xfc], 0xffffffff
call fcn.004885d0
test eax, eax
jne 0x458d4a
mov ecx, dword [ebp + ebx*4 + 0x4a264]
cmp ecx, esi
je 0x458d43
mov edx, dword [ecx]
push 1
call dword [edx]
mov dword [ebp + ebx*4 + 0x4a264], esi
mov word [ebp + 0x4e680], si
movsx eax, byte [ebp + 0x4ea55]
dec eax
cmp eax, 7
ja case.0x458d62.6
jmp dword [eax*4 + 0x4598d0]
cmp dword [ebp + 0x4e510], esi
jne case.0x458d62.6
lea eax, [ebp + 0x4e69a]
lea ecx, [esp + 0x2e]
push eax
lea edx, [esp + 0x2a]
push ecx
mov cx, word [ebp + 0x4e67a]
lea eax, [esp + 0x60]
push edx
mov dx, word [ebp + 0x4e678]
push eax
push ecx
mov ecx, dword [ebp + 0x4a258]
call fcn.004888a0
mov cx, word [ebp + 0x4e678]
mov edi, eax
mov ax, word [ebp + 0x4e662]
cmp ax, cx
jne 0x458dd6
mov dx, word [ebp + 0x4e664]
cmp dx, word [ebp + 0x4e67a]
jne 0x458dd6
mov byte [ebp + 0x4ea55], 0
jmp 0x459039
movsx esi, cx
movsx eax, ax
sub eax, esi
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
cmp ecx, 1
jg 0x458e1d
movsx eax, word [ebp + 0x4e664]
movsx edx, word [ebp + 0x4e67a]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 1
jg 0x458e1d
cmp edi, 1
jne 0x458e1d
cmp word [esp + 0x26], 0
je 0x458e1d
mov byte [ebp + 0x4ea55], 0
jmp 0x459039
cmp ecx, 2
jg 0x458e69
movsx ecx, word [ebp + 0x4e67a]
movsx eax, word [ebp + 0x4e664]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jg 0x458e69
lea eax, [esi + esi*2]
mov edx, dword [ebp + 0x4a258]
shl eax, 4
sub eax, esi
shl eax, 4
lea ecx, [eax + ecx + 0x5781]
shl ecx, 4
cmp byte [ecx + edx], 0
jne 0x458e69
mov byte [ebp + 0x4ea55], 0
jmp 0x459039
cmp byte [ebp + 0x4ea55], 1
jne 0x458e8d
mov eax, dword [ebp + 0x4e284]
test eax, eax
jne 0x458e86
mov eax, dword [ebp + 0x4e288]
test eax, eax
je 0x458e8d
mov byte [ebp + 0x4ea55], 2
cmp byte [ebp + 0x4ea55], 2
jne 0x458ec8
mov eax, dword [ebp + 0x4e284]
test eax, eax
jne 0x458eb1
mov eax, dword [ebp + 0x4e288]
test eax, eax
jne 0x458eb1
mov byte [ebp + 0x4ea55], 1
lea ecx, [ebp + 0x4e544]
call fcn.00491a60
cmp eax, 1
jge 0x458ec8
mov byte [ebp + 0x4ea55], 1
mov ax, word [ebp + 0x4e67a]
mov cx, word [ebp + 0x4e678]
mov dx, word [ebp + 0x4e664]
push 1
push eax
mov ax, word [ebp + 0x4e662]
push ecx
push edx
push eax
mov ecx, ebp
call fcn.00404a80
mov bl, al
test bl, bl
mov byte [esp + 0x18], bl
je 0x459039
movsx dx, byte [ebp + 0x4ea55]
mov ecx, dword [esp + 0x18]
push 0
push 0
push 0
push 0
push 0
push ecx
push edx
push 0xfa314d5
mov ecx, ebp
mov byte [ebp + 0x4e924], bl
call fcn.00404de0
movsx eax, bl
dec eax
cmp eax, 7
ja case.default.0x458f32
jmp dword [eax*4 + 0x4598f0]
dec word [ebp + 0x4e664]
inc word [ebp + 0x4e662]
jmp case.default.0x458f32
inc word [ebp + 0x4e662]
inc word [ebp + 0x4e664]
jmp case.default.0x458f32
dec word [ebp + 0x4e662]
inc word [ebp + 0x4e664]
jmp case.default.0x458f32
dec word [ebp + 0x4e662]
jmp case.default.0x458f32
dec word [ebp + 0x4e662]
dec word [ebp + 0x4e664]
movsx ax, byte [ebp + 0x4ea55]
mov dx, word [ebp + 0x4e672]
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp + 0x4e918]
push eax
mov eax, dword [ebp + 0x4e528]
push ecx
mov cx, word [ebp + 0x4e670]
push edx
mov dx, word [ebp + 0x4e66e]
push eax
mov ax, word [ebp + 0x4e66c]
push ecx
mov cx, word [ebp + 0x4e66a]
push edx
movsx edx, byte [ebp + 0x4e924]
push eax
push ecx
movsx eax, word [ebp + 0x4e668]
movsx ecx, word [ebp + 0x4e664]
push edx
push eax
movsx edx, word [ebp + 0x4e662]
push ecx
mov ecx, dword [ebp + 0x4a258]
push edx
mov dx, word [ebp + 0x4e666]
call fcn.00482da0
lea eax, [esp + 0x44]
lea ecx, [ebp + 0x4dda4]
push eax
mov dword [esp + 0x48], 0
call fcn.00491a40
call dword [sym.imp.winmm.dll_timeGetTime]
mov dword [ebp + 0x4dd38], eax
movsx ecx, word [ebp + 0x4e662]
movsx edx, word [ebp + 0x4e664]
mov dword [ebp + 0x4e604], ecx
mov dword [ebp + 0x4e608], edx
cmp byte [ebp + 0x4ea55], 7
jne case.0x458d62.6
lea eax, [esp + 0x40]
xor edi, edi
push eax
lea ecx, [ebp + 0x4e26c]
mov dword [esp + 0x44], edi
call fcn.00491a40
lea esi, [ebp + 0x4e484]
mov dword [ebp + 0x4e590], 0xffffffff
mov ecx, esi
mov word [ebp + 0xc], di
call fcn.00491a60
cmp eax, 1
jne 0x4590d3
push eax
push 0xa
push 0x4aaf14
mov ecx, ebp
call fcn.0040fba0
push 0x18
mov ecx, ebp
call fcn.00432950
push 0x1a
mov ecx, ebp
call fcn.00432950
mov ax, word [ebp + 0x4e668]
cmp ax, 1
jl 0x4590d3
cmp ax, 6
jg 0x4590d3
mov byte [ebp + 0x4ea55], 0
mov cx, word [ebp + 0x4e662]
mov word [ebp + 0x4e678], cx
mov dx, word [ebp + 0x4e664]
mov word [ebp + 0x4e67a], dx
lea eax, [esp + 0x28]
mov ecx, esi
push eax
mov dword [esp + 0x2c], edi
call fcn.00491a40
mov byte [ebp + 0x4ea55], 0
jmp case.0x458d62.6
mov cx, word [ebp + 0x4e67a]
mov dx, word [ebp + 0x4e678]
mov ax, word [ebp + 0x4e664]
push ecx
mov cx, word [ebp + 0x4e662]
push edx
push eax
push ecx
lea ecx, [ebp + 0x36074]
call fcn.0048fa60
test al, al
mov byte [esp + 0x18], al
je 0x459262
mov edi, dword [esp + 0x14]
cmp di, 2
je 0x459136
cmp di, 0x19
jne 0x459157
xor esi, esi
lea edx, [ebp + 0x4b038]
mov ecx, dword [edx]
test ecx, ecx
je 0x45914a
cmp byte [ecx + 0x19], 6
je 0x459157
inc esi
add edx, 4
cmp esi, 0x32
jl 0x45913e
xor edi, edi
jmp 0x459176
cmp di, 0x14
jb 0x459176
mov ecx, dword [ebp + 0x4e5a4]
dec ecx
mov dword [ebp + 0x4e5a4], ecx
jns 0x459176
mov dword [ebp + 0x4e5a4], 0
movsx ecx, word [ebp + 0x4e67a]
xor edx, edx
mov byte [ebp + 0x4e924], al
mov dx, word [ebp + 0x4e69a]
mov eax, edi
push edx
and eax, 0xffff
movsx edx, word [ebp + 0x4e678]
push 0
push eax
mov eax, dword [esp + 0x24]
push ecx
push edx
push eax
push 3
push 0xfa314d5
mov ecx, ebp
call fcn.00404de0
mov ax, word [ebp + 0x4e664]
mov dx, word [ebp + 0x4e67a]
mov cx, word [ebp + 0x4e662]
push 0
push 0
sub dx, ax
push edi
push edx
mov dx, word [ebp + 0x4e678]
sub dx, cx
push edx
lea edx, [ebp + 0x4e918]
push 3
push edx
mov dx, word [ebp + 0x4e672]
push edx
mov edx, dword [ebp + 0x4e528]
push edx
mov dx, word [ebp + 0x4e670]
push edx
mov dx, word [ebp + 0x4e66e]
push edx
mov dx, word [ebp + 0x4e66c]
push edx
mov dx, word [ebp + 0x4e66a]
push edx
movsx edx, byte [ebp + 0x4e924]
push edx
movsx edx, word [ebp + 0x4e668]
movsx eax, ax
movsx ecx, cx
push edx
mov dx, word [ebp + 0x4e666]
push eax
push ecx
mov ecx, dword [ebp + 0x4a258]
call fcn.00482da0
lea edx, [esp + 0x4c]
lea ecx, [ebp + 0x4dda4]
push edx
mov dword [esp + 0x50], 0
call fcn.00491a40
call dword [sym.imp.winmm.dll_timeGetTime]
mov dword [ebp + 0x4dd38], eax
mov byte [ebp + 0x4ea55], 0
jmp case.0x458d62.6
cmp dword [ebp + 0x4e510], esi
jne case.0x458d62.6
lea edi, [ebp + 0x4e69a]
lea eax, [esp + 0x2e]
push edi
lea ecx, [esp + 0x2a]
push eax
mov ax, word [ebp + 0x4e67a]
lea edx, [esp + 0x60]
push ecx
mov ecx, dword [ebp + 0x4a258]
push edx
mov dx, word [ebp + 0x4e678]
push eax
call fcn.004888a0
mov cx, word [ebp + 0x4e662]
mov si, word [ebp + 0x4e678]
cmp cx, si
mov ebx, eax
jne 0x4592e2
mov dx, word [ebp + 0x4e664]
cmp dx, word [ebp + 0x4e67a]
jne 0x4592e2
mov byte [ebp + 0x4ea55], 0
mov byte [ebp + 0x4ea55], 0
jmp case.0x458d62.6
movsx eax, cx
movsx edx, si
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 1
jg 0x45932e
movsx eax, word [ebp + 0x4e664]
movsx edx, word [ebp + 0x4e67a]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 1
jg 0x45932e
cmp ebx, 1
jne 0x45932e
cmp word [esp + 0x26], 0
je 0x45932e
mov byte [ebp + 0x4ea55], 0
mov byte [ebp + 0x4ea55], 0
jmp case.0x458d62.6
mov ax, word [ebp + 0x4e67a]
mov dx, word [ebp + 0x4e664]
push 1
push eax
push esi
push edx
push ecx
mov ecx, ebp
call fcn.00404a80
mov bl, al
test bl, bl
mov byte [esp + 0x18], bl
je 0x4594bc
mov esi, dword [esp + 0x14]
xor eax, eax
mov ax, word [edi]
mov ecx, esi
movsx edx, word [ebp + 0x4e67a]
push eax
and ecx, 0xffff
movsx eax, word [ebp + 0x4e678]
push 0
push ecx
mov ecx, dword [esp + 0x24]
push edx
push eax
push ecx
push 8
push 0xfa314d5
mov ecx, ebp
mov byte [ebp + 0x4e924], bl
call fcn.00404de0
movsx eax, bl
dec eax
cmp eax, 7
ja case.default.0x45939e
jmp dword [eax*4 + 0x459910]
dec word [ebp + 0x4e664]
inc word [ebp + 0x4e662]
jmp case.default.0x45939e
inc word [ebp + 0x4e662]
inc word [ebp + 0x4e664]
jmp case.default.0x45939e
dec word [ebp + 0x4e662]
inc word [ebp + 0x4e664]
jmp case.default.0x45939e
dec word [ebp + 0x4e662]
jmp case.default.0x45939e
dec word [ebp + 0x4e662]
dec word [ebp + 0x4e664]
mov ax, word [ebp + 0x4e664]
mov dx, word [ebp + 0x4e67a]
mov cx, word [ebp + 0x4e662]
push 0
push 0
sub dx, ax
push esi
push edx
mov dx, word [ebp + 0x4e678]
sub dx, cx
push edx
movsx dx, byte [ebp + 0x4ea55]
push edx
lea edx, [ebp + 0x4e918]
push edx
mov dx, word [ebp + 0x4e672]
push edx
mov edx, dword [ebp + 0x4e528]
push edx
mov dx, word [ebp + 0x4e670]
push edx
mov dx, word [ebp + 0x4e66e]
push edx
mov dx, word [ebp + 0x4e66c]
push edx
mov dx, word [ebp + 0x4e66a]
push edx
movsx edx, byte [ebp + 0x4e924]
push edx
movsx edx, word [ebp + 0x4e668]
movsx eax, ax
movsx ecx, cx
push edx
mov dx, word [ebp + 0x4e666]
push eax
push ecx
mov ecx, dword [ebp + 0x4a258]
call fcn.00482da0
lea edx, [esp + 0x48]
lea ecx, [ebp + 0x4dda4]
push edx
mov dword [esp + 0x4c], 0
call fcn.00491a40
call dword [sym.imp.winmm.dll_timeGetTime]
mov dword [ebp + 0x4dd38], eax
movsx eax, word [ebp + 0x4e662]
movsx ecx, word [ebp + 0x4e664]
mov dword [ebp + 0x4e604], eax
mov dword [ebp + 0x4e608], ecx
mov byte [ebp + 0x4ea55], 0
jmp case.0x458d62.6
mov dl, byte [ebp + 0x4e924]
push esi
push esi
push esi
push esi
push esi
push edx
push 5
push 0xfa314d5
mov ecx, ebp
call fcn.00404de0
mov cx, word [ebp + 0x4e672]
mov edx, dword [ebp + 0x4e528]
push esi
push esi
push esi
push esi
push esi
lea eax, [ebp + 0x4e918]
push 5
push eax
mov ax, word [ebp + 0x4e670]
push ecx
mov cx, word [ebp + 0x4e66e]
push edx
mov dx, word [ebp + 0x4e66c]
push eax
mov ax, word [ebp + 0x4e66a]
push ecx
movsx ecx, byte [ebp + 0x4e924]
push edx
push eax
movsx edx, word [ebp + 0x4e668]
movsx eax, word [ebp + 0x4e664]
push ecx
push edx
movsx ecx, word [ebp + 0x4e662]
mov dx, word [ebp + 0x4e666]
push eax
push ecx
mov ecx, dword [ebp + 0x4a258]
call fcn.00482da0
lea edx, [esp + 0x54]
lea ecx, [ebp + 0x4dda4]
push edx
mov dword [esp + 0x58], esi
call fcn.00491a40
mov byte [ebp + 0x4ea55], 0
jmp case.0x458d62.6
mov eax, dword [ebp + 0x4e67c]
mov cl, byte [ebp + 0x4e924]
push 0
push 0
push 0
push 0
push eax
push ecx
push 4
push 0xfa314d5
mov ecx, ebp
call fcn.00404de0
mov dx, word [ebp + 0x4e67c]
mov cx, word [ebp + 0x4e672]
push 0
push 0
push 0
push 0
push edx
mov edx, dword [ebp + 0x4e528]
lea eax, [ebp + 0x4e918]
push 4
push eax
mov ax, word [ebp + 0x4e670]
push ecx
mov cx, word [ebp + 0x4e66e]
push edx
mov dx, word [ebp + 0x4e66c]
push eax
mov ax, word [ebp + 0x4e66a]
push ecx
push edx
movsx ecx, byte [ebp + 0x4e924]
movsx edx, word [ebp + 0x4e668]
push eax
push ecx
movsx eax, word [ebp + 0x4e664]
movsx ecx, word [ebp + 0x4e662]
push edx
mov dx, word [ebp + 0x4e666]
push eax
push ecx
mov ecx, dword [ebp + 0x4a258]
call fcn.00482da0
lea edx, [esp + 0x50]
lea ecx, [ebp + 0x4dda4]
push edx
mov dword [esp + 0x54], 0
call fcn.00491a40
call dword [sym.imp.winmm.dll_timeGetTime]
mov dword [ebp + 0x4dd38], eax
lea eax, [esp + 0x30]
push eax
lea ecx, [ebp + 0x4e26c]
mov dword [esp + 0x34], 1
call fcn.00491a40
movsx ecx, word [ebp + 0x4e666]
lea edi, [ebp + 0x4a268]
mov byte [ebp + 0x4ea55], 0
mov dword [esp + 0x28], ecx
mov esi, edi
mov ebx, 0x1f3
mov ecx, dword [esi]
test ecx, ecx
je 0x45968b
mov edx, dword [ecx + 0x14]
mov eax, dword [esp + 0x28]
cmp edx, eax
jne 0x45968b
test ecx, ecx
je 0x459685
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [esi], 0
add esi, 4
dec ebx
jne 0x45966a
mov ebx, 1
mov eax, edi
cmp dword [eax], 0
je 0x4596ae
inc ebx
add eax, 4
cmp ebx, 0x1f4
jl 0x459698
jmp case.0x458d62.6
mov ecx, 0x1e
xor eax, eax
lea edi, [esp + 0x70]
rep stosd dword es:[edi], eax
mov ecx, dword [ebp + 0x4e67c]
lea eax, [esp + 0x70]
mov edx, dword [ebp + ecx*4 + 0x4b2e4]
add edx, 4
push edx
push 0x4ab9bc
push eax
call dword [sym.imp.user32.dll_wsprintfA]
add esp, 0xc
push 0x18
push 8
call dword [sym.imp.kernel32.dll_GetProcessHeap]
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov esi, eax
mov dword [esp + 0x28], esi
test esi, esi
mov dword [esp + 0xf0], 1
je 0x45971c
call dword [sym.imp.winmm.dll_timeGetTime]
lea ecx, [esp + 0x70]
push eax
push ecx
push 0x29
mov ecx, esi
call fcn.00490220
jmp 0x45971e
xor eax, eax
mov dword [ebp + ebx*4 + 0x4a264], eax
push ebx
movsx edx, word [ebp + 0x4e666]
mov dword [eax + 0x14], edx
mov dx, word [ebp + 0x4e666]
mov ecx, dword [ebp + 0x4a258]
push 0xfffffffffffffff6
push 0xfffffffffffffff6
mov dword [esp + 0xfc], 0xffffffff
call fcn.004885d0
mov ecx, dword [esp + 0xe8]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xe4
ret 0x18