Function at 0x5453b0
Capabilities:
Authenticate hmac
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc8
mov esi, esp
mov dword [esi + 0xb0], ebp
mov dword [esi + 0xb4], esp
mov dword [esi + 0xc0], 0xffffffff
lea eax, [esi + 0xb8]
mov dword [esi + 0xbc], 0x593ab0
mov ecx, dword fs:[0]
mov dword [esi + 0xb8], ecx
mov dword fs:[0], eax
mov eax, dword [0x5d2190]
mov ecx, dword [0x5d2194]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0xaa]
cmp ecx, 0xa
setl byte [esi + 0xab]
mov eax, 0x9ec57c71
nop dword [eax]
cmp eax, 0xae95292a
jg 0x545480
cmp eax, 0x906c5f3e
je 0x545497
cmp eax, 0x9ec57c71
jne 0x545430
movzx ecx, byte [esi + 0xaa]
movzx eax, byte [esi + 0xab]
mov edx, ecx
xor dl, al
mov edx, 0xae95292b
mov edi, 0x906c5f3e
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x545430
cmp eax, 0xae95292b
je 0x56b240
cmp eax, 0x146672b3
jne 0x545430
jmp 0x591582
push eax
push eax
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x6c], eax
mov esp, eax
mov dword [esi + 0xac], esp
mov eax, dword [0x5d2198]
mov ecx, dword [0x5d219c]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0xa8]
cmp ecx, 0xa
setl byte [esi + 0xa9]
mov eax, 0x37913fdd
nop dword [eax + eax]
cmp eax, 0x1bdfd7de
jg 0x545610
cmp eax, 0xbbb61ac6
je 0x5911dd
cmp eax, 0xd7a09326
jne 0x5454e0
mov dword [esi + 0x10], 1
mov dword [esi + 0x14], 0xa
mov dword [esi + 0x74], 0xf
mov dword [esi + 0x78], 0x1e
lea ecx, [esi + 0x18]
call fcn.00540a80
mov ecx, dword [0x5cf588]
xor edi, edi
mov eax, dword [0x5cf58c]
nop
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete cl
cmp eax, 0xa
setge al
setl ah
xor ah, cl
jne 0x545553
or al, dl
test al, 1
jne 0x591260
cmp edi, 0x63
ja 0x54577d
mov dword [esi + 8], edi
mov eax, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
mov dword [esi + 0xc0], 0x39
lea ecx, [esi + 0x74]
push edx
push eax
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov edx, dword [0x5cf588]
lea ecx, [edx + 1]
imul ecx, edx
test cl, 1
sete dh
cmp dword [0x5cf58c], 0xa
setl bl
setge dl
cmp bl, dh
jne 0x5455ab
or dl, cl
test dl, 1
jne 0x5912a0
mov dword [esi + 0x28], eax
lea ecx, [esi + 0x10]
push dword [esi + 0x14]
push dword [esi + 0x10]
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov dword [esi + 0x50], eax
lea ecx, [esi + 0x18]
lea eax, [esi + 0x28]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.004341a0
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp eax, 0xa
setl dl
or dl, dh
cmp dl, 1
mov edi, dword [esi + 8]
jne 0x545609
nop
inc edi
test dl, dl
jne 0x545530
inc edi
jmp 0x545600
cmp eax, 0x1bdfd7df
je 0x545657
cmp eax, 0x37913fdd
jne 0x5454e0
movzx ecx, byte [esi + 0xa8]
movzx eax, byte [esi + 0xa9]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0xd7a09326
mov edi, 0x1bdfd7df
cmovne eax, edi
test cl, cl
mov ecx, 0xd7a09326
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x5454e0
mov dword [esi + 0x10], 1
mov dword [esi + 0x14], 0xa
mov dword [esi + 0x74], 0xf
mov dword [esi + 0x78], 0x1e
lea ecx, [esi + 0x18]
call fcn.00540a80
mov ecx, dword [0x5cf588]
xor ebx, ebx
mov edi, dword [0x5cf58c]
nop dword [eax]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete cl
cmp edi, 0xa
setl ah
setge al
cmp ah, cl
jne 0x5456b3
or al, dl
test al, 1
jne 0x591280
cmp ebx, 0x63
ja 0x545cd0
mov dword [esi + 8], ebx
mov eax, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
mov dword [esi + 0xc0], 0
lea ecx, [esi + 0x74]
push edx
push eax
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov ecx, dword [0x5cf588]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [0x5cf58c], 0xa
setl dl
test dl, cl
jne 0x54570a
xor dl, cl
je 0x5912c0
mov dword [esi + 0x28], eax
lea ecx, [esi + 0x10]
push dword [esi + 0x14]
push dword [esi + 0x10]
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov dword [esi + 0x50], eax
lea ecx, [esi + 0x18]
lea eax, [esi + 0x28]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.004341a0
mov ecx, dword [0x5cf588]
mov edi, dword [0x5cf58c]
lea ebx, [ecx + 1]
imul ebx, ecx
test bl, 1
sete dh
cmp edi, 0xa
setge dl
setl al
or dl, bl
xor al, dh
xor dl, 1
or dl, al
test dl, 1
mov ebx, dword [esi + 8]
je 0x54577a
nop word cs:[eax + eax]
inc ebx
test dl, 1
jne 0x545690
inc ebx
jmp 0x545770
lea ecx, [esi + 0x28]
call fcn.00540a80
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x4c], ecx
cmp eax, ecx
jne 0x5458d9
mov ecx, dword [0x5cf588]
mov edi, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
test ecx, ecx
sete cl
cmp edi, 0xa
setl al
test cl, al
jne 0x5457c6
xor cl, al
je 0x591440
mov edi, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
mov dword [esi + 4], eax
cmp edi, eax
je 0x546212
mov ecx, dword [0x5cf590]
mov ebx, dword [0x5cf594]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
and ecx, 1
sete cl
cmp ebx, 0xa
setl dl
xor dl, cl
mov ecx, 0xbd723542
mov edx, 0xd08af799
cmovne ecx, edx
and eax, 1
mov dword [esi + 0x24], eax
mov eax, ecx
cmove eax, edx
mov dword [esi + 0xc], ebx
cmp ebx, 0xa
cmovge eax, ecx
mov dword [esi + 0x38], eax
xor ecx, ecx
jmp 0x545847
mov dword [esi + 0x50], edi
mov eax, dword [esi + 0x50]
add ecx, dword [eax + 4]
sub ecx, dword [eax]
add edi, 8
cmp edi, dword [esi + 4]
je 0x546200
cmp dword [esi + 0x24], 0
sete byte [esi + 0x46]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x47]
mov ebx, 0x553a1bc1
nop dword [eax]
cmp ebx, 0xd08af798
jg 0x545880
cmp ebx, 0xb4e27a0f
je 0x5458c1
cmp ebx, 0xbd723542
jne 0x545860
mov ebx, 0xb4e27a0f
jmp 0x545860
cmp ebx, 0xd08af799
je 0x545830
cmp ebx, 0x553a1bc1
jne 0x545860
movzx eax, byte [esi + 0x46]
mov dh, byte [esi + 0x47]
mov dl, al
xor dl, dh
test dh, dh
mov ebx, 0xbd723542
mov dword [esi + 8], edi
mov edi, 0xb4e27a0f
cmovne ebx, edi
test al, al
mov eax, 0xbd723542
cmove ebx, eax
test dl, dl
cmovne ebx, edi
mov edi, dword [esi + 8]
jmp 0x545860
mov ebx, dword [esi + 0x38]
jmp 0x545860
cmp eax, dword [esi + 0x4c]
je 0x5457af
mov dword [esi + 0x3c], eax
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xbd723542
mov ebx, 0xd08af799
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x46]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edi
mov ecx, 0x553a1bc1
nop word [eax + eax]
cmp ecx, 0xd08af798
jg 0x545950
cmp ecx, 0xb4e27a0f
je 0x545987
cmp ecx, 0xbd723542
jne 0x545930
mov ecx, 0xb4e27a0f
jmp 0x545930
cmp ecx, 0xd08af799
je 0x545990
cmp ecx, 0x553a1bc1
jne 0x545930
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x545930
mov ecx, eax
jmp 0x545930
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x50]
mov edx, dword [esi + 0x28]
mov edi, dword [esi + 0x2c]
mov cl, 1
mov dword [esi + 0x48], ecx
mov dword [esi + 8], edx
mov dword [esi + 0x40], edi
cmp edx, edi
mov dword [esi + 4], eax
je 0x545c43
add eax, 4
mov dword [esi + 0xc], eax
mov ecx, dword [0x5cf588]
mov edx, dword [0x5cf58c]
nop word [eax + eax]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edx, 0xa
setl cl
test cl, al
jne 0x545a20
xor cl, al
je 0x545b30
jmp 0x545a20
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x40]
jne 0x5459d0
jmp 0x545c43
mov eax, dword [0x5cf590]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf594]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x46]
sete cl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x47]
setl dl
mov ebx, 0xbd723542
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x553a1bc1
nop dword [eax]
cmp ecx, 0xd08af798
jg 0x545a90
cmp ecx, 0xb4e27a0f
je 0x545acc
cmp ecx, 0xbd723542
jne 0x545a70
mov ecx, 0xb4e27a0f
jmp 0x545a70
cmp ecx, 0xd08af799
je 0x545ad0
cmp ecx, 0x553a1bc1
jne 0x545a70
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x545a70
mov ecx, eax
jmp 0x545a70
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
mov dword [esi + 0x38], eax
mov dword [esi + 0x24], edx
lea eax, [edi + 4]
push dword [esi + 0xc]
push eax
call fcn.00433d30
add esp, 8
mov dword [esi + 0x34], edx
mov ecx, dword [0x5cf588]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
mov edx, dword [0x5cf58c]
sete bl
cmp edx, 0xa
setl bh
test bh, bl
jne 0x545c20
xor bh, bl
jne 0x545c20
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xbd723542
mov edi, 0xd08af799
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x46]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edx
mov ecx, 0x553a1bc1
jmp 0x545b90
mov ecx, eax
nop word cs:[eax + eax]
cmp ecx, 0xd08af798
jg 0x545bb0
cmp ecx, 0xb4e27a0f
je 0x545b7f
cmp ecx, 0xbd723542
jne 0x545b90
mov ecx, 0xb4e27a0f
jmp 0x545b90
cmp ecx, 0xd08af799
je 0x545bf0
cmp ecx, 0x553a1bc1
jne 0x545b90
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x545b90
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
add edi, 4
push dword [esi + 0xc]
push edi
call fcn.00433d30
add esp, 8
jmp 0x545a20
mov ebx, dword [esi + 0x24]
mov ebx, dword [ebx]
cmp ebx, dword [eax]
jg 0x545a00
mov eax, dword [esi + 0x38]
mov eax, dword [eax]
mov dword [edi], eax
mov eax, dword [esi + 0x34]
mov eax, dword [eax]
mov dword [edi + 4], eax
mov dword [esi + 0x48], 0
mov ecx, dword [0x5cf588]
mov edi, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
and ecx, 1
sete bh
cmp edi, 0xa
setl al
setge bl
cmp al, bh
jne 0x545c75
or bl, dl
test bl, 1
jne 0x5912e0
cmp byte [esi + 0x48], 0
je 0x545ca8
mov dword [esi + 0xc0], 0x3a
lea ecx, [esi + 0x28]
push dword [esi + 4]
call fcn.00540ea0
mov eax, dword [0x5cf588]
mov edi, dword [0x5cf58c]
lea edx, [eax + 1]
imul edx, eax
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
test ecx, ecx
sete al
cmp edi, 0xa
setl dl
or dl, al
cmp dl, 1
mov eax, dword [esi + 0x3c]
jne 0x545ccb
nop dword [eax]
add eax, 8
test dl, dl
jne 0x5458d0
add eax, 8
jmp 0x545cc0
lea ecx, [esi + 0x28]
call fcn.00540a80
mov edi, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x70], eax
cmp edi, eax
jne 0x545e29
mov edx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea ecx, [edx - 1]
imul ecx, edx
and ecx, 1
test ecx, ecx
sete cl
cmp eax, 0xa
setl al
test cl, al
jne 0x545d14
xor cl, al
je 0x591430
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 4], ecx
cmp eax, ecx
je 0x54635e
mov ecx, dword [0x5cf590]
mov edx, dword [0x5cf594]
lea edi, [ecx + 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
mov dword [esi + 0x24], edi
mov dword [esi + 0x38], ecx
test ecx, edi
mov ebx, 0xbd723542
mov edi, 0xd08af799
cmove ebx, edi
sete cl
mov dword [esi + 0xc], edx
cmp edx, 0xa
mov edx, 0xbd723542
cmovge ebx, edx
setl dl
xor dl, cl
cmovne ebx, edi
mov dword [esi + 0x34], ebx
xor edx, edx
jmp 0x545d97
mov dword [esi + 0x50], eax
mov ecx, dword [esi + 0x50]
add edx, dword [ecx + 4]
sub edx, dword [ecx]
add eax, 8
cmp eax, dword [esi + 4]
je 0x54634c
mov ecx, dword [esi + 0x38]
test dword [esi + 0x24], ecx
sete byte [esi + 0x46]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x47]
mov ecx, 0x553a1bc1
nop
cmp ecx, 0xd08af798
jg 0x545dd0
cmp ecx, 0xb4e27a0f
je 0x545e0d
cmp ecx, 0xbd723542
jne 0x545db0
mov ecx, 0xb4e27a0f
jmp 0x545db0
cmp ecx, 0xd08af799
je 0x545d80
cmp ecx, 0x553a1bc1
jne 0x545db0
movzx ebx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, bl
xor ch, cl
mov edi, 0xbd723542
mov dword [esi + 8], eax
mov eax, 0xb4e27a0f
cmovne edi, eax
test cl, cl
mov ecx, edi
cmovne ecx, eax
mov eax, dword [esi + 8]
test bl, bl
cmove ecx, edi
jmp 0x545db0
mov ecx, dword [esi + 0x34]
jmp 0x545db0
cmp edi, dword [esi + 0x70]
je 0x545cfd
mov dword [esi + 0x4c], edi
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xbd723542
mov ebx, 0xd08af799
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x46]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edi
mov edi, dword [esi + 0x4c]
mov ecx, 0x553a1bc1
nop word [eax + eax]
cmp ecx, 0xd08af798
jg 0x545ea0
cmp ecx, 0xb4e27a0f
je 0x545eda
cmp ecx, 0xbd723542
jne 0x545e80
mov ecx, 0xb4e27a0f
jmp 0x545e80
cmp ecx, 0xd08af799
je 0x545ee0
cmp ecx, 0x553a1bc1
jne 0x545e80
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
mov edi, dword [esi + 0x4c]
jmp 0x545e80
mov ecx, eax
jmp 0x545e80
mov dword [esi + 0x50], edi
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov bl, 1
mov dword [esi + 8], ecx
mov dword [esi + 0x48], edx
cmp ecx, edx
mov dword [esi + 4], eax
je 0x54617c
add eax, 4
mov dword [esi + 0xc], eax
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x545f40
xor al, cl
je 0x546056
nop word cs:[eax + eax]
mov eax, dword [0x5cf590]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf594]
sete byte [esi + 0x46]
sete dl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
setl cl
mov ebx, 0xbd723542
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x553a1bc1
nop dword [eax + eax]
cmp ecx, 0xd08af798
jg 0x545fb0
cmp ecx, 0xb4e27a0f
je 0x545fec
cmp ecx, 0xbd723542
jne 0x545f90
mov ecx, 0xb4e27a0f
jmp 0x545f90
cmp ecx, 0xd08af799
je 0x545ff0
cmp ecx, 0x553a1bc1
jne 0x545f90
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x545f90
mov ecx, eax
jmp 0x545f90
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
mov dword [esi + 0x40], eax
mov dword [esi + 0x24], edx
lea eax, [edi + 4]
push dword [esi + 0xc]
push eax
call fcn.00433d30
add esp, 8
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], edx
mov ecx, dword [0x5cf588]
lea ebx, [ecx + 1]
imul ebx, ecx
test bl, 1
sete dh
mov eax, dword [0x5cf58c]
mov dword [esi + 0x34], eax
cmp eax, 0xa
setl al
setge dl
cmp al, dh
jne 0x546140
or dl, bl
test dl, 1
je 0x546140
mov eax, dword [0x5cf590]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf594]
sete byte [esi + 0x46]
sete dl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
setl cl
mov ebx, 0xbd723542
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x553a1bc1
jmp 0x5460b0
mov ecx, eax
nop word cs:[eax + eax]
cmp ecx, 0xd08af798
jg 0x5460d0
cmp ecx, 0xb4e27a0f
je 0x5460a0
cmp ecx, 0xbd723542
jne 0x5460b0
mov ecx, 0xb4e27a0f
jmp 0x5460b0
cmp ecx, 0xd08af799
je 0x546110
cmp ecx, 0x553a1bc1
jne 0x5460b0
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5460b0
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
add edi, 4
push dword [esi + 0xc]
push edi
call fcn.00433d30
add esp, 8
jmp 0x545f40
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov edx, dword [esi + 0x38]
cmp eax, dword [edx]
jle 0x546168
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
mov eax, dword [esi + 0x34]
jne 0x545f10
mov edi, dword [esi + 0x4c]
mov bl, 1
jmp 0x54617c
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov dword [edi], eax
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov dword [edi + 4], eax
xor ebx, ebx
mov edi, dword [esi + 0x4c]
mov edx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x5461a5
xor dh, dl
je 0x591300
test bl, bl
je 0x5461d9
mov dword [esi + 0xc0], 1
lea ecx, [esi + 0x28]
push dword [esi + 4]
call fcn.00540ea0
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
mov edi, dword [esi + 0x4c]
test ecx, ecx
sete dh
cmp eax, 0xa
setl dl
or dl, dh
cmp dl, 1
jne 0x5461fb
nop dword [eax + eax]
add edi, 8
test dl, dl
jne 0x545e20
add edi, 8
jmp 0x5461f0
cmp ecx, 0x12345678
jne 0x546212
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
lea ecx, [esi + 0x28]
call fcn.0041e540
lea edi, [esi + 0x18]
mov ecx, edi
call fcn.0041e540
mov dword [esi + 0x90], esp
mov dword [esi + 0x10], 1
mov dword [esi + 0x14], 0xa
mov dword [esi + 0x74], 0xf
mov dword [esi + 0x78], 0x1e
mov ecx, edi
call fcn.00540a80
mov ecx, dword [0x5cf588]
xor edi, edi
mov eax, dword [0x5cf58c]
nop word [eax + eax]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x546282
xor al, cl
je 0x591330
cmp edi, 0x63
ja 0x54648c
mov dword [esi + 8], edi
mov eax, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
mov dword [esi + 0xc0], 0x3b
lea ecx, [esi + 0x74]
push edx
push eax
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov ecx, dword [0x5cf588]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [0x5cf58c], 0xa
setl dl
test dl, cl
jne 0x5462d9
xor dl, cl
je 0x591370
mov dword [esi + 0x28], eax
lea ecx, [esi + 0x10]
push dword [esi + 0x14]
push dword [esi + 0x10]
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov dword [esi + 0x50], eax
lea ecx, [esi + 0x18]
lea eax, [esi + 0x28]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.004341a0
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dh
cmp eax, 0xa
setge dl
mov ebx, edx
xor bl, dh
or dl, dh
xor dl, 1
or dl, bl
cmp dl, 1
mov edi, dword [esi + 8]
jne 0x546349
nop word cs:[eax + eax]
inc edi
test dl, dl
jne 0x546260
inc edi
jmp 0x546340
cmp edx, 0x12345678
jne 0x54635e
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
lea ecx, [esi + 0x28]
call fcn.0041e540
lea edi, [esi + 0x18]
mov ecx, edi
call fcn.0041e540
mov dword [esi + 0x98], esp
mov dword [esi + 0x10], 1
mov dword [esi + 0x14], 0xa
mov dword [esi + 0x74], 0xf
mov dword [esi + 0x78], 0x1e
mov ecx, edi
call fcn.00540a80
mov ecx, dword [0x5cf588]
xor edi, edi
mov eax, dword [0x5cf58c]
nop word cs:[eax + eax]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x5463d3
xor al, cl
je 0x591340
cmp edi, 0x63
ja 0x546990
mov dword [esi + 8], edi
mov eax, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
mov dword [esi + 0xc0], 2
lea ecx, [esi + 0x74]
push edx
push eax
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov ecx, dword [0x5cf588]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [0x5cf58c], 0xa
setl dl
test dl, cl
jne 0x54642a
xor dl, cl
je 0x591380
mov dword [esi + 0x28], eax
lea ecx, [esi + 0x10]
push dword [esi + 0x14]
push dword [esi + 0x10]
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov dword [esi + 0x50], eax
lea ecx, [esi + 0x18]
lea eax, [esi + 0x28]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.004341a0
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp eax, 0xa
setl dl
or dl, dh
cmp dl, 1
mov edi, dword [esi + 8]
jne 0x546489
nop
inc edi
test dl, dl
jne 0x5463b0
inc edi
jmp 0x546480
lea ecx, [esi + 0x28]
call fcn.00540a80
mov edi, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x48], eax
cmp edi, eax
jne 0x5465cf
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
test ecx, ecx
sete cl
cmp eax, 0xa
setl al
test cl, al
jne 0x5464d4
xor cl, al
je 0x591570
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 8], ecx
cmp eax, ecx
je 0x546ed2
mov ecx, dword [0x5cf590]
mov ebx, dword [0x5cf594]
lea edx, [ecx - 1]
imul edx, ecx
and edx, 1
mov dword [esi + 0xc], edx
sete cl
mov edi, 0xbd723542
mov edx, 0xd08af799
cmove edi, edx
mov dword [esi + 4], ebx
cmp ebx, 0xa
setl ch
mov ebx, 0xbd723542
cmovge edi, ebx
xor ch, cl
cmovne edi, edx
mov dword [esi + 0x24], edi
xor ecx, ecx
jmp 0x546541
mov dword [esi + 0x50], eax
mov edx, dword [esi + 0x50]
add ecx, dword [edx + 4]
sub ecx, dword [edx]
add eax, 8
cmp eax, dword [esi + 8]
je 0x546ec0
cmp dword [esi + 0xc], 0
sete byte [esi + 0x46]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x47]
mov ebx, 0x553a1bc1
nop word cs:[eax + eax]
cmp ebx, 0xd08af798
jg 0x546580
cmp ebx, 0xb4e27a0f
je 0x5465c1
cmp ebx, 0xbd723542
jne 0x546560
mov ebx, 0xb4e27a0f
jmp 0x546560
cmp ebx, 0xd08af799
je 0x54652a
cmp ebx, 0x553a1bc1
jne 0x546560
movzx edx, byte [esi + 0x46]
movzx ebx, byte [esi + 0x47]
mov dh, bl
xor dh, dl
test bl, bl
mov ebx, 0xbd723542
mov edi, 0xb4e27a0f
cmovne ebx, edi
test dl, dl
mov edi, 0xbd723542
cmove ebx, edi
test dh, dh
mov edx, 0xb4e27a0f
cmovne ebx, edx
jmp 0x546560
mov ebx, dword [esi + 0x24]
jmp 0x546560
cmp edi, dword [esi + 0x48]
je 0x5464bd
mov dword [esi + 0x3c], edi
mov eax, dword [0x5cf590]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf594]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x46]
sete cl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x47]
setl dl
mov ebx, 0xbd723542
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov edi, dword [esi + 0x3c]
mov ecx, 0x553a1bc1
nop
cmp ecx, 0xd08af798
jg 0x546640
cmp ecx, 0xb4e27a0f
je 0x54667a
cmp ecx, 0xbd723542
jne 0x546620
mov ecx, 0xb4e27a0f
jmp 0x546620
cmp ecx, 0xd08af799
je 0x54667e
cmp ecx, 0x553a1bc1
jne 0x546620
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
mov edi, dword [esi + 0x3c]
jmp 0x546620
mov ecx, eax
jmp 0x546620
mov dword [esi + 0x50], edi
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov bl, 1
mov dword [esi + 8], ecx
mov dword [esi + 0x40], edx
cmp ecx, edx
mov dword [esi + 4], eax
je 0x546906
add eax, 4
mov dword [esi + 0xc], eax
mov ecx, dword [0x5cf588]
mov edx, dword [0x5cf58c]
nop
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete ch
cmp edx, 0xa
setl dl
setge cl
cmp dl, ch
jne 0x5466e0
or cl, al
test cl, 1
jne 0x5467ef
nop word cs:[eax + eax]
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xbd723542
mov edi, 0xd08af799
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x46]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edx
mov ecx, 0x553a1bc1
nop dword [eax]
cmp ecx, 0xd08af798
jg 0x546750
cmp ecx, 0xb4e27a0f
je 0x54678c
cmp ecx, 0xbd723542
jne 0x546730
mov ecx, 0xb4e27a0f
jmp 0x546730
cmp ecx, 0xd08af799
je 0x546790
cmp ecx, 0x553a1bc1
jne 0x546730
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x546730
mov ecx, eax
jmp 0x546730
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
mov dword [esi + 0x38], eax
mov dword [esi + 0x24], edx
lea eax, [edi + 4]
push dword [esi + 0xc]
push eax
call fcn.00433d30
add esp, 8
mov dword [esi + 0x34], edx
mov ecx, dword [0x5cf588]
lea edx, [ecx + 1]
imul edx, ecx
mov ebx, edx
xor ebx, 0xfffffffe
test ebx, edx
mov edx, dword [0x5cf58c]
sete bl
cmp edx, 0xa
setl bh
test bh, bl
jne 0x5468d0
xor bh, bl
jne 0x5468d0
mov eax, dword [0x5cf590]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf594]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x46]
sete cl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x47]
setl dl
mov ebx, 0xbd723542
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x553a1bc1
jmp 0x546840
mov ecx, eax
nop dword [eax]
cmp ecx, 0xd08af798
jg 0x546860
cmp ecx, 0xb4e27a0f
je 0x54683a
cmp ecx, 0xbd723542
jne 0x546840
mov ecx, 0xb4e27a0f
jmp 0x546840
cmp ecx, 0xd08af799
je 0x5468a0
cmp ecx, 0x553a1bc1
jne 0x546840
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x546840
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
add edi, 4
push dword [esi + 0xc]
push edi
call fcn.00433d30
add esp, 8
jmp 0x5466e0
mov ebx, dword [esi + 0x24]
mov ebx, dword [ebx]
cmp ebx, dword [eax]
jle 0x5468f2
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x40]
jne 0x5466b0
mov edi, dword [esi + 0x3c]
mov bl, 1
jmp 0x546906
mov eax, dword [esi + 0x38]
mov eax, dword [eax]
mov dword [edi], eax
mov eax, dword [esi + 0x34]
mov eax, dword [eax]
mov dword [edi + 4], eax
xor ebx, ebx
mov edi, dword [esi + 0x3c]
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x546933
xor dh, dl
je 0x5913f0
test bl, bl
je 0x546963
mov dword [esi + 0xc0], 0x3c
lea ecx, [esi + 0x28]
push dword [esi + 4]
call fcn.00540ea0
mov edx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
mov edi, dword [esi + 0x3c]
test ecx, ecx
sete dh
cmp eax, 0xa
setl dl
or dl, dh
cmp dl, 1
jne 0x54698b
nop word cs:[eax + eax]
add edi, 8
test dl, dl
jne 0x5465c6
add edi, 8
jmp 0x546980
lea ecx, [esi + 0x28]
call fcn.00540a80
mov edi, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x70], eax
cmp edi, eax
jne 0x546adf
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
test ecx, ecx
sete cl
cmp eax, 0xa
setl al
test cl, al
jne 0x5469d8
xor cl, al
je 0x591580
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 8], ecx
cmp eax, ecx
je 0x5480b9
mov ecx, dword [0x5cf590]
mov edx, dword [0x5cf594]
lea edi, [ecx + 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
mov dword [esi + 0xc], edi
mov dword [esi + 0x24], ecx
test ecx, edi
mov edi, 0xbd723542
mov ebx, 0xd08af799
cmove edi, ebx
sete cl
mov dword [esi + 4], edx
cmp edx, 0xa
mov edx, 0xbd723542
cmovge edi, edx
setl dl
xor dl, cl
cmovne edi, ebx
mov dword [esi + 0x38], edi
xor edx, edx
jmp 0x546a4c
mov dword [esi + 0x50], eax
mov ecx, dword [esi + 0x50]
add edx, dword [ecx + 4]
sub edx, dword [ecx]
add eax, 8
cmp eax, dword [esi + 8]
je 0x5480a7
mov ecx, dword [esi + 0x24]
test dword [esi + 0xc], ecx
sete byte [esi + 0x46]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x47]
mov ecx, 0x553a1bc1
nop word cs:[eax + eax]
cmp ecx, 0xd08af798
jg 0x546a90
cmp ecx, 0xb4e27a0f
je 0x546ad1
cmp ecx, 0xbd723542
jne 0x546a70
mov ecx, 0xb4e27a0f
jmp 0x546a70
cmp ecx, 0xd08af799
je 0x546a35
cmp ecx, 0x553a1bc1
jne 0x546a70
movzx ebx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov bh, cl
xor bh, bl
test cl, cl
mov ecx, 0xbd723542
mov edi, 0xb4e27a0f
cmovne ecx, edi
test bl, bl
mov edi, 0xbd723542
cmove ecx, edi
test bh, bh
mov edi, 0xb4e27a0f
cmovne ecx, edi
jmp 0x546a70
mov ecx, dword [esi + 0x38]
jmp 0x546a70
cmp edi, dword [esi + 0x70]
je 0x5469c1
mov dword [esi + 0x4c], edi
mov eax, dword [0x5cf590]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf594]
sete byte [esi + 0x46]
sete dl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
setl cl
mov ebx, 0xbd723542
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov edi, dword [esi + 0x4c]
mov ecx, 0x553a1bc1
nop dword [eax]
cmp ecx, 0xd08af798
jg 0x546b50
cmp ecx, 0xb4e27a0f
je 0x546b8f
cmp ecx, 0xbd723542
jne 0x546b30
mov ecx, 0xb4e27a0f
jmp 0x546b30
cmp ecx, 0xd08af799
je 0x546b93
cmp ecx, 0x553a1bc1
jne 0x546b30
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
mov edi, dword [esi + 0x4c]
test dh, dh
cmovne ecx, ebx
jmp 0x546b30
mov ecx, eax
jmp 0x546b30
mov dword [esi + 0x50], edi
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov bl, 1
mov dword [esi + 8], ecx
mov dword [esi + 0x48], edx
cmp ecx, edx
mov dword [esi + 4], eax
je 0x546e3c
add eax, 4
mov dword [esi + 0xc], eax
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
nop word cs:[eax + eax]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x546c00
xor al, cl
je 0x546d16
nop word cs:[eax + eax]
mov eax, dword [0x5cf590]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf594]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x46]
sete cl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x47]
setl dl
mov ebx, 0xbd723542
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x553a1bc1
nop dword [eax]
cmp ecx, 0xd08af798
jg 0x546c70
cmp ecx, 0xb4e27a0f
je 0x546cac
cmp ecx, 0xbd723542
jne 0x546c50
mov ecx, 0xb4e27a0f
jmp 0x546c50
cmp ecx, 0xd08af799
je 0x546cb0
cmp ecx, 0x553a1bc1
jne 0x546c50
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x546c50
mov ecx, eax
jmp 0x546c50
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
mov dword [esi + 0x40], eax
mov dword [esi + 0x24], edx
lea eax, [edi + 4]
push dword [esi + 0xc]
push eax
call fcn.00433d30
add esp, 8
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], edx
mov ecx, dword [0x5cf588]
lea ebx, [ecx + 1]
imul ebx, ecx
test bl, 1
sete dh
mov eax, dword [0x5cf58c]
mov dword [esi + 0x34], eax
cmp eax, 0xa
setge dl
setl al
xor al, dh
jne 0x546e00
or dl, bl
test dl, 1
je 0x546e00
mov eax, dword [0x5cf590]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf594]
sete byte [esi + 0x46]
sete dl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
setl cl
mov ebx, 0xbd723542
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x553a1bc1
jmp 0x546d70
mov ecx, eax
nop word cs:[eax + eax]
cmp ecx, 0xd08af798
jg 0x546d90
cmp ecx, 0xb4e27a0f
je 0x546d60
cmp ecx, 0xbd723542
jne 0x546d70
mov ecx, 0xb4e27a0f
jmp 0x546d70
cmp ecx, 0xd08af799
je 0x546dd0
cmp ecx, 0x553a1bc1
jne 0x546d70
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x546d70
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
add edi, 4
push dword [esi + 0xc]
push edi
call fcn.00433d30
add esp, 8
jmp 0x546c00
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov edx, dword [esi + 0x38]
cmp eax, dword [edx]
jle 0x546e28
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
mov eax, dword [esi + 0x34]
jne 0x546bd0
mov edi, dword [esi + 0x4c]
mov bl, 1
jmp 0x546e3c
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov dword [edi], eax
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov dword [edi + 4], eax
xor ebx, ebx
mov edi, dword [esi + 0x4c]
mov edx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x546e65
xor dh, dl
je 0x591400
test bl, bl
je 0x546e95
mov dword [esi + 0xc0], 3
lea ecx, [esi + 0x28]
push dword [esi + 4]
call fcn.00540ea0
mov edx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
mov edi, dword [esi + 0x4c]
test ecx, ecx
sete dh
cmp eax, 0xa
setl dl
or dl, dh
cmp dl, 1
jne 0x546ebb
nop word [eax + eax]
add edi, 8
test dl, dl
jne 0x546ad6
add edi, 8
jmp 0x546eb0
cmp ecx, 0x12345678
jne 0x546ed2
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
lea ecx, [esi + 0x28]
call fcn.0041e540
lea ecx, [esi + 0x18]
call fcn.0041e540
mov dword [esi + 0x5c], esp
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea ebx, [ecx + 1]
mov dword [esi + 0xc], ecx
imul ebx, ecx
test bl, 1
sete dh
mov dword [esi + 4], eax
cmp eax, 0xa
setge cl
setl al
or cl, bl
xor al, dh
xor cl, 1
or cl, al
mov byte [esi + 8], cl
nop word [eax + eax]
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x54], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
mov dword [esi + 0x68], esp
sub esp, 0xc
mov dword [esi + 0x70], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
push eax
mov ebx, esp
push eax
mov ecx, esp
push eax
mov edx, esp
test byte [esi + 8], 1
je 0x546f20
mov dword [esi + 0x98], edx
mov dword [esi + 0x94], ecx
mov dword [esi + 0x60], ebx
lea ecx, [edi + 0x10]
mov dword [esi + 0x58], ecx
lea ecx, [eax + 0x10]
mov dword [esi + 0x8c], ecx
mov ebx, 0xa
mov dword [esi + 0x84], edi
mov dword [esi + 0x88], eax
cmp ebx, 0x1f4
jae 0x549293
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [ebx + 1]
imul ebx, eax
shr ebx, 1
mov dword [esi + 0x64], ebx
mov dword [esi + 0x80], eax
shr eax, 1
mov dword [esi + 0x38], eax
mov dword [esi + 0x34], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setge bh
setl bl
xor bl, dh
mov edx, dword [esi + 0x34]
mov dword [esi + 8], edx
mov edx, dword [esi + 0x38]
jne 0x546ff2
or bh, al
test bh, 1
jne 0x5913a0
mov eax, edx
imul eax, dword [esi + 8]
mov ebx, edx
mov dword [esi + 0xc], edx
mulx edx, ebx, edx
add eax, eax
add eax, edx
mov edx, dword [esi + 0x64]
cmp ebx, edx
sbb eax, 0
jae 0x547619
mov edi, dword [esi + 0xc]
sub edx, edi
mov dword [esi + 4], edx
mov edx, 0
mov ebx, dword [esi + 8]
sbb edx, ebx
mov dword [esi + 0x40], edx
add edi, 1
adc ebx, 0
push ebx
push edi
push edx
push dword [esi + 4]
call fcn.00594a90
mov dword [esi + 0x24], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x48], edx
mov dword [esi + 0x4c], eax
mov edx, eax
mov dword [esi + 0x34], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0x38], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 4]
sub eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x546fba
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x10]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x84]
mov edx, dword [esi + 0xc]
mov dword [ecx], edx
mov edx, dword [esi + 8]
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x4c]
mov dword [ecx + 8], edx
setl byte [esi + 0x28]
mov edx, dword [esi + 0x24]
mov dword [ecx + 0xc], edx
cmovge eax, edi
mov ecx, 0x9c6e8745
mov edx, dword [esi + 0x68]
nop dword [eax]
cmp ecx, 0x20e9c048
jle 0x547100
cmp ecx, 0x20e9c049
je 0x547117
cmp ecx, 0x3b23d0b1
jne 0x5470e0
jmp 0x547145
cmp ecx, 0x9c6e8745
je 0x54711b
cmp ecx, 0xeb760989
jne 0x5470e0
mov ecx, 0x20e9c049
jmp 0x5470e0
mov ecx, eax
jmp 0x5470e0
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
mov edx, dword [esi + 0x68]
cmove ecx, edi
jmp 0x5470e0
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov ebx, edx
cmove ebx, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x54]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov eax, dword [esi + 0x58]
mov dword [esi + 0x28], eax
setl byte [esi + 0x74]
mov eax, dword [esi + 0x84]
mov dword [esi + 0x10], eax
cmovge ebx, edx
mov eax, 0x389c0e25
nop
cmp eax, 0x7c4a5f1
jg 0x5471e0
cmp eax, 0xcfcad29c
je 0x547224
cmp eax, 0x3aca7e6
jne 0x5471c0
mov eax, ebx
jmp 0x5471c0
cmp eax, 0x7c4a5f2
je 0x54721d
cmp eax, 0x389c0e25
jne 0x5471c0
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov eax, 0x3aca7e6
cmovne edi, eax
test cl, cl
mov eax, edi
mov ecx, 0x3aca7e6
cmovne eax, ecx
test dl, dl
cmove eax, edi
mov ecx, dword [esi + 0x54]
jmp 0x5471c0
mov eax, 0x3aca7e6
jmp 0x5471c0
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x3d
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x3f
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x54]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
jmp 0x5472b0
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
mov edi, dword [esi + 0x54]
nop word cs:[eax + eax]
cmp eax, 0x31a61df4
jg 0x5472e0
cmp eax, 0xc6e82640
je 0x54734b
cmp eax, 0x950d98a
jne 0x5472c0
jmp 0x547286
cmp eax, 0x31a61df5
je 0x5472fc
cmp eax, 0x4d86efb0
jne 0x5472c0
mov ecx, edi
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x5472c0
mov ecx, edi
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
mov edi, dword [esi + 0x54]
cmp ecx, 0xa
cmovge eax, edx
jmp 0x5472c0
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
mov edi, dword [0x5cf6cc]
cmp edi, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edx, ebx
test ecx, eax
mov ecx, dword [esi + 0x88]
mov eax, dword [esi + 0x24]
mov dword [ecx + 4], eax
sete byte [esi + 0x10]
mov eax, dword [esi + 0x4c]
mov dword [ecx], eax
mov eax, dword [esi + 8]
mov dword [ecx + 0xc], eax
mov eax, edx
cmove eax, ebx
cmp edi, 0xa
setl byte [esi + 0x28]
mov edi, dword [esi + 0xc]
mov dword [ecx + 8], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
mov edx, dword [esi + 0x60]
nop word cs:[eax + eax]
cmp ecx, 0x20e9c048
jle 0x5473e0
cmp ecx, 0x20e9c049
je 0x5473f7
cmp ecx, 0x3b23d0b1
jne 0x5473c0
jmp 0x547425
cmp ecx, 0x9c6e8745
je 0x5473fb
cmp ecx, 0xeb760989
jne 0x5473c0
mov ecx, 0x20e9c049
jmp 0x5473c0
mov ecx, eax
jmp 0x5473c0
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
mov edx, dword [esi + 0x60]
cmove ecx, edi
jmp 0x5473c0
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x70]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x8c]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x88]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
nop dword [eax]
cmp ecx, 0x7c4a5f1
jg 0x5474c0
cmp ecx, 0xcfcad29c
je 0x547503
cmp ecx, 0x3aca7e6
jne 0x5474a0
mov ecx, eax
jmp 0x5474a0
cmp ecx, 0x7c4a5f2
je 0x5474fc
cmp ecx, 0x389c0e25
jne 0x5474a0
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5474a0
mov ecx, 0x3aca7e6
jmp 0x5474a0
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x3d
mov ecx, dword [esi + 0x70]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x3e
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x70]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
mov ecx, dword [esi + 0x70]
nop dword [eax]
cmp eax, 0x31a61df4
jg 0x547590
cmp eax, 0xc6e82640
je 0x546fba
cmp eax, 0x950d98a
jne 0x547570
jmp 0x5475aa
cmp eax, 0x31a61df5
je 0x5475d1
cmp eax, 0x4d86efb0
jne 0x547570
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x547566
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x547566
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x547566
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x54799b
mov ebx, 1
jmp 0x547658
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp ebx, edx
jae 0x54799b
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl cl
mov edx, ebx
mov dword [esi + 4], ebx
test cl, al
mov dword [esi + 0xc], ebx
jne 0x5476a9
xor cl, al
mov eax, ebx
mov dword [esi + 4], ebx
jne 0x5476a9
jmp 0x5914d0
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edx
call fcn.00433980
cmp dword [esi + 4], 0
je 0x547964
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0x38], ecx
sete byte [esi + 0x10]
sete al
mov ecx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove ecx, ebx
mov dword [esi + 0x24], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ecx, edx
setl dl
xor dl, al
mov eax, dword [esi + 0x3c]
mov edi, dword [eax]
mov eax, dword [esi + 4]
lea edx, [eax + eax*2]
lea eax, [edi + edx*4]
mov dword [esi + 0x34], eax
cmovne ecx, ebx
mov dword [esi + 8], ecx
mov edx, 0xe6642f9a
nop word [eax + eax]
cmp edx, 0xffb13444
jle 0x547730
cmp edx, 0xffb13445
je 0x547771
cmp edx, 0x20ab24e5
jne 0x547710
jmp 0x547780
cmp edx, 0xbf25ae54
je 0x547776
cmp edx, 0xe6642f9a
jne 0x547710
movzx ebx, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov bh, bl
xor bh, dl
test dl, dl
mov edx, 0xbf25ae54
mov eax, 0xffb13445
cmovne edx, eax
test bl, bl
mov eax, 0xbf25ae54
cmove edx, eax
test bh, bh
mov eax, 0xffb13445
cmovne edx, eax
jmp 0x547710
mov edx, dword [esi + 8]
jmp 0x547710
mov edx, 0xffb13445
jmp 0x547710
mov eax, dword [esi + 4]
dec eax
cmp dword [esi + 0x38], 0
mov edx, dword [esi + 0x34]
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x18]
mov ebx, dword [edx]
mov edx, dword [ebx]
mov dword [esi + 0x4c], edx
mov edx, dword [ebx + 4]
mov dword [esi + 0x48], edx
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], eax
lea edx, [eax + eax*2]
lea eax, [edi + edx*4]
mov dword [esi + 0x40], eax
mov eax, 0xe6642f9a
mov ebx, dword [esi + 0xc]
nop
cmp eax, 0xffb13444
jle 0x5477e0
cmp eax, 0xffb13445
je 0x54781d
cmp eax, 0x20ab24e5
jne 0x5477c0
jmp 0x547830
cmp eax, 0xbf25ae54
je 0x547822
cmp eax, 0xe6642f9a
jne 0x5477c0
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test dl, dl
mov ebx, 0xbf25ae54
cmove eax, ebx
mov ebx, dword [esi + 0xc]
test dh, dh
cmovne eax, edi
jmp 0x5477c0
mov eax, dword [esi + 8]
jmp 0x5477c0
mov eax, 0xffb13445
jmp 0x5477c0
mov eax, dword [esi + 0x40]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [esi + 0x4c]
cmp edx, dword [eax]
mov edx, dword [esi + 0x48]
sbb edx, dword [eax + 4]
jge 0x547964
cmp dword [esi + 0x38], 0
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
nop word cs:[eax + eax]
cmp eax, 0xffb13444
jle 0x547890
cmp eax, 0xffb13445
je 0x5478cd
cmp eax, 0x20ab24e5
jne 0x547870
jmp 0x5478e0
cmp eax, 0xbf25ae54
je 0x5478d2
cmp eax, 0xe6642f9a
jne 0x547870
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test dl, dl
mov ebx, 0xbf25ae54
cmove eax, ebx
mov ebx, dword [esi + 0xc]
test dh, dh
cmovne eax, edi
jmp 0x547870
mov eax, dword [esi + 8]
jmp 0x547870
mov eax, 0xffb13445
jmp 0x547870
cmp dword [esi + 0x38], 0
mov eax, dword [esi + 0x40]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
nop
cmp eax, 0xffb13444
jle 0x547920
cmp eax, 0xffb13445
je 0x547958
cmp eax, 0x20ab24e5
jne 0x547900
jmp 0x547690
cmp eax, 0xbf25ae54
je 0x54795d
cmp eax, 0xe6642f9a
jne 0x547900
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov edi, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edi, ebx
test al, al
mov eax, edi
cmovne eax, ebx
test cl, cl
mov ebx, dword [esi + 0xc]
cmove eax, edi
jmp 0x547900
mov eax, dword [esi + 8]
jmp 0x547900
mov eax, 0xffb13445
jmp 0x547900
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x54763c
xor dl, al
jne 0x54763c
jmp 0x591510
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x5479ef
cmp edi, 0x88e9608c
je 0x547a34
cmp edi, 0xdf32ec89
jne 0x5479c8
mov ecx, dword [esi + 0x94]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x5479c8
cmp edi, 0x30b7124c
je 0x547a8e
cmp edi, 0x124998e2
jne 0x5479c8
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
test bh, bh
mov edi, 0xdf32ec89
mov dword [esi + 4], edx
mov edx, 0x88e9608c
cmovne edi, edx
test cl, cl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bl, bl
cmovne edi, edx
mov edx, dword [esi + 4]
jmp 0x5479c8
mov ecx, dword [esi + 0x94]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
imul ecx, edx
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 8], ebx
cmp ebx, 0xa
mov ebx, 0xdf32ec89
cmovge edi, ebx
setl ch
xor ch, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x5479c8
lea eax, [edx + 1]
imul eax, edx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
mov edx, dword [esi + 0x98]
cmp ecx, 0x124998e1
jg 0x547adc
cmp ecx, 0x88e9608c
je 0x547b22
cmp ecx, 0xdf32ec89
jne 0x547abb
mov dword [edx], eax
mov ecx, 0x88e9608c
jmp 0x547abb
cmp ecx, 0x30b7124c
je 0x547b73
cmp ecx, 0x124998e2
jne 0x547abb
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
mov edx, dword [esi + 0x98]
cmovne ecx, ebx
jmp 0x547abb
mov dword [esi + 0x18], edx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
mov edx, dword [esi + 0x98]
cmovne ecx, edi
jmp 0x547abb
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x547ba3
or cl, al
test cl, 1
jne 0x591470
mov ecx, dword [esi + 0x94]
mov eax, dword [ecx]
mov edx, dword [esi + 0x98]
cmp eax, dword [edx]
je 0x547fff
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmovne ebx, edi
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
mov edi, ebx
mov ecx, 0x2601f5a7
cmove edi, ecx
cmp edx, 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov ecx, dword [eax]
mov dword [esi + 8], ecx
cmovge edi, ebx
mov edx, 0x5a893bc4
nop dword [eax + eax]
cmp edx, 0x2601f5a6
jg 0x547c40
cmp edx, 0x87fb68d6
je 0x547c77
cmp edx, 0xfc04dcc5
jne 0x547c20
mov edx, 0x87fb68d6
jmp 0x547c20
cmp edx, 0x2601f5a7
je 0x547c7b
cmp edx, 0x5a893bc4
jne 0x547c20
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, bl
xor dh, dl
mov ecx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne ecx, eax
test dl, dl
mov edx, ecx
cmovne edx, eax
test bl, bl
cmove edx, ecx
jmp 0x547c20
mov edx, edi
jmp 0x547c20
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov dword [esi + 0x40], ecx
cmp dword [esi + 8], ecx
je 0x547ebd
mov eax, dword [0x5cf6f0]
mov dword [esi + 0xc], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x547cc2
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x40]
je 0x547ebd
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x38], 0xa
setl cl
or cl, al
mov byte [esi + 0x24], cl
jne 0x547da9
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
test ecx, ecx
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov ebx, 0x6707b2cf
cmove ecx, ebx
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl dl
mov edi, 0x4c6ca682
cmovge ecx, edi
xor dl, al
cmovne ecx, ebx
mov eax, 0x1b272c9a
jmp 0x547d30
mov eax, ecx
nop
cmp eax, 0x4c6ca681
jle 0x547d50
cmp eax, 0x4c6ca682
je 0x547d8a
cmp eax, 0x6707b2cf
jne 0x547d30
jmp 0x547da0
cmp eax, 0xf74fd645
je 0x547d2c
cmp eax, 0x1b272c9a
jne 0x547d30
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne eax, ebx
test dl, dl
mov edi, 0x4c6ca682
cmove eax, edi
test dh, dh
cmovne eax, ebx
jmp 0x547d30
mov eax, 0xf74fd645
jmp 0x547d30
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0xc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
and eax, 1
sete al
mov edi, dword [esi + 4]
cmp edi, 0xa
setl dl
xor dl, al
mov eax, 0x4c6ca682
mov ebx, 0x6707b2cf
cmovne eax, ebx
and ecx, 1
sete byte [esi + 0x10]
mov edx, eax
cmove edx, ebx
cmp edi, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov eax, 0x1b272c9a
nop dword [eax]
cmp eax, 0x4c6ca681
jle 0x547e10
cmp eax, 0x4c6ca682
je 0x547e4f
cmp eax, 0x6707b2cf
jne 0x547df0
jmp 0x547e60
cmp eax, 0xf74fd645
je 0x547e56
cmp eax, 0x1b272c9a
jne 0x547df0
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, al
xor bh, bl
test al, al
mov eax, 0x4c6ca682
mov edi, 0xf74fd645
cmovne eax, edi
test bl, bl
mov edi, 0x4c6ca682
cmove eax, edi
test bh, bh
mov edi, 0xf74fd645
cmovne eax, edi
jmp 0x547df0
mov eax, 0xf74fd645
jmp 0x547df0
mov eax, edx
jmp 0x547df0
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x24], 0
je 0x547cf7
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x547cb0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0xc], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x547cb0
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x38], 0xa
setl cl
test cl, al
jne 0x547ee3
xor cl, al
je 0x5914a0
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
mov ecx, dword [esi + 0x94]
nop word cs:[eax + eax]
cmp eax, 0x5499d803
jg 0x547f40
cmp eax, 0xcd5e6053
je 0x547f98
cmp eax, 0x18ed46ca
jne 0x547f20
add dword [ecx], 0xc
mov eax, 0x685e39a2
jmp 0x547f20
cmp eax, 0x5499d804
je 0x547fc2
cmp eax, 0x685e39a2
jne 0x547f20
mov dword [esi + 0x18], ecx
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
mov ecx, dword [esi + 0x94]
cmovne eax, edi
jmp 0x547f20
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x547f0c
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x547ba3
or cl, al
je 0x547ba3
jmp 0x591470
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov edx, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea eax, [edx + 1]
mov dword [esi + 0xc], edx
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete dl
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl dh
mov ebx, dword [esi + 0x80]
test dh, dl
jne 0x546f89
xor dh, dl
mov ebx, dword [esi + 0x80]
jne 0x546f89
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov edx, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea eax, [edx + 1]
mov dword [esi + 0xc], edx
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl ah
mov dl, ah
xor dl, al
test ah, al
jne 0x54809c
test dl, dl
je 0x54804b
mov ebx, dword [esi + 0x80]
jmp 0x546f89
mov ebx, dword [esi + 0x80]
jmp 0x546f89
cmp edx, 0x12345678
jne 0x5480b9
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
lea ecx, [esi + 0x28]
call fcn.0041e540
lea ecx, [esi + 0x18]
call fcn.0041e540
mov dword [esi + 0x80], esp
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx - 1]
mov dword [esi + 0xc], ecx
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
setne dh
mov dword [esi + 4], eax
cmp eax, 0xa
setge al
mov ebx, eax
xor bl, dh
or al, dh
xor al, 1
or al, bl
mov byte [esi + 8], al
nop word cs:[eax + eax]
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x70], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
push eax
mov dword [esi + 0x54], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
mov ebx, esp
push eax
mov ecx, esp
push eax
mov edx, esp
cmp byte [esi + 8], 0
je 0x548110
mov dword [esi + 0x8c], edx
mov dword [esi + 0x64], ecx
mov dword [esi + 0x88], ebx
mov dword [esi + 0x94], eax
add eax, 0x10
mov dword [esi + 0x60], eax
lea eax, [edi + 0x10]
mov dword [esi + 0x58], eax
mov eax, 0xa
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x84], edi
cmp eax, 0x1f4
jae 0x5493cd
mov ebx, eax
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea edi, [ebx + 1]
imul ebx, edi
shr ebx, 1
mov dword [esi + 0x68], ebx
mov dword [esi + 0x90], edi
shr edi, 1
xor ecx, ecx
mov ebx, ecx
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
mov dword [esi + 8], ecx
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov ecx, dword [0x5cf6c4]
sete al
cmp ecx, 0xa
setl ah
test ah, al
jne 0x5481d7
xor ah, al
je 0x5913b0
mov eax, edi
imul eax, ebx
mov edx, edi
mov dword [esi + 0x38], ebx
mov dword [esi + 0x24], edi
mulx edx, ebx, edi
add eax, eax
add eax, edx
mov edx, dword [esi + 0x68]
cmp ebx, edx
sbb eax, 0
jae 0x54881e
mov eax, dword [esi + 0x24]
sub edx, eax
mov dword [esi + 0x40], edx
mov ebx, 0
mov edi, dword [esi + 0x38]
sbb ebx, edi
add eax, 1
adc edi, 0
mov dword [esi + 4], edi
push edi
push eax
mov edi, eax
push ebx
push edx
call fcn.00594a90
mov ecx, eax
mov dword [esi + 8], edx
mov edx, eax
mov eax, edi
mov dword [esi + 0xc], edi
mulx edi, edx, edi
mov dword [esi + 0x48], edx
mov dword [esi + 0x34], ecx
mov edx, ecx
mov ecx, dword [esi + 4]
imul edx, ecx
add edi, edx
mov edx, dword [esi + 8]
imul edx, eax
add edx, edi
mov eax, dword [esi + 0x40]
sub eax, dword [esi + 0x48]
sbb ebx, edx
or ebx, eax
mov edi, dword [esi + 0xc]
jne 0x5481a3
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x10]
mov ebx, edi
mov eax, 0x3b23d0b1
cmove ebx, eax
cmp ecx, 0xa
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 0x24]
mov dword [edx], eax
mov eax, dword [esi + 0x38]
mov dword [edx + 4], eax
mov eax, dword [esi + 0x34]
mov dword [edx + 8], eax
setl byte [esi + 0x28]
mov eax, dword [esi + 8]
mov dword [edx + 0xc], eax
cmovge ebx, edi
mov eax, 0x9c6e8745
mov ecx, dword [esi + 0x70]
mov edi, dword [esi + 0x54]
cmp eax, 0x20e9c048
jle 0x5482f0
cmp eax, 0x20e9c049
je 0x548305
cmp eax, 0x3b23d0b1
jne 0x5482d0
jmp 0x54833b
cmp eax, 0x9c6e8745
je 0x548309
cmp eax, 0xeb760989
jne 0x5482d0
mov eax, 0x20e9c049
jmp 0x5482d0
mov eax, ebx
jmp 0x5482d0
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov eax, 0xeb760989
mov ecx, 0x20e9c049
cmovne eax, ecx
test dl, dl
mov edi, 0xeb760989
cmove eax, edi
mov edi, dword [esi + 0x54]
test dh, dh
cmovne eax, ecx
mov ecx, dword [esi + 0x70]
jmp 0x5482d0
mov dword [esi + 0x18], edi
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov edi, dword [0x5cf4d4]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp edi, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov ebx, edx
mov eax, 0xcfcad29c
cmove ebx, eax
cmp edi, 0xa
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov eax, dword [esi + 0x60]
mov dword [esi + 0x28], eax
setl byte [esi + 0x74]
mov eax, dword [esi + 0x94]
mov dword [esi + 0x10], eax
cmovge ebx, edx
mov eax, 0x389c0e25
nop word cs:[eax + eax]
cmp eax, 0x7c4a5f1
jg 0x5483e0
cmp eax, 0xcfcad29c
je 0x548424
cmp eax, 0x3aca7e6
jne 0x5483c0
mov eax, ebx
jmp 0x5483c0
cmp eax, 0x7c4a5f2
je 0x54841d
cmp eax, 0x389c0e25
jne 0x5483c0
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov eax, 0x7c4a5f2
mov ecx, 0x3aca7e6
cmovne eax, ecx
test dl, dl
mov edi, 0x7c4a5f2
cmove eax, edi
test dh, dh
cmovne eax, ecx
mov ecx, dword [esi + 0x70]
jmp 0x5483c0
mov eax, 0x3aca7e6
jmp 0x5483c0
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 4
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 6
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x70]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
mov ebx, dword [esi + 0x70]
mov edi, dword [esi + 0x34]
mov ecx, dword [esi + 8]
nop dword [eax]
cmp eax, 0x31a61df4
jg 0x5484b0
cmp eax, 0xc6e82640
je 0x54853c
cmp eax, 0x950d98a
jne 0x548490
jmp 0x5484cc
cmp eax, 0x31a61df5
je 0x5484f6
cmp eax, 0x4d86efb0
jne 0x548490
mov ecx, ebx
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x548489
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
mov edi, dword [esi + 0x34]
test cl, cl
cmove eax, edx
jmp 0x548489
mov ecx, ebx
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x548486
mov ebx, dword [esi + 0x84]
mov dword [ebx + 4], ecx
mov dword [ebx], edi
mov eax, dword [esi + 0x38]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf6cc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, dword [esi + 0x24]
mov dword [ebx + 8], ecx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
mov ebx, dword [esi + 0x4c]
mov edx, dword [esi + 0x88]
nop word cs:[eax + eax]
cmp ecx, 0x20e9c048
jle 0x5485d0
cmp ecx, 0x20e9c049
je 0x5485e7
cmp ecx, 0x3b23d0b1
jne 0x5485b0
jmp 0x548620
cmp ecx, 0x9c6e8745
je 0x5485eb
cmp ecx, 0xeb760989
jne 0x5485b0
mov ecx, 0x20e9c049
jmp 0x5485b0
mov ecx, eax
jmp 0x5485b0
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
mov edx, dword [esi + 0x88]
cmovne ecx, ebx
mov ebx, dword [esi + 0x4c]
jmp 0x5485b0
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edi, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete dh
mov eax, 0x7c4a5f2
mov ecx, 0xcfcad29c
cmove eax, ecx
cmp edi, 0xa
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov ecx, dword [esi + 0x58]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x84]
mov dword [esi + 0x10], ecx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
mov ecx, dword [esi + 0x4c]
xor dl, dh
mov edx, 0xcfcad29c
cmovne eax, edx
mov dword [esi + 8], eax
mov eax, 0x389c0e25
nop dword [eax]
cmp eax, 0x7c4a5f1
jg 0x5486c0
cmp eax, 0xcfcad29c
je 0x5486ff
cmp eax, 0x3aca7e6
jne 0x5486a0
mov eax, dword [esi + 8]
jmp 0x5486a0
cmp eax, 0x7c4a5f2
je 0x5486f8
cmp eax, 0x389c0e25
jne 0x5486a0
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov eax, edi
cmovne eax, ebx
mov ecx, dword [esi + 0x4c]
test dl, dl
cmove eax, edi
jmp 0x5486a0
mov eax, 0x3aca7e6
jmp 0x5486a0
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 4
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 5
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
mov ebx, dword [esi + 0x4c]
mov edi, dword [esi + 0xc]
mov ecx, dword [esi + 4]
nop dword [eax + eax]
cmp eax, 0x31a61df4
jg 0x548790
cmp eax, 0xc6e82640
je 0x5481a3
cmp eax, 0x950d98a
jne 0x548770
jmp 0x5487ac
cmp eax, 0x31a61df5
je 0x5487d8
cmp eax, 0x4d86efb0
jne 0x548770
mov ecx, ebx
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x548765
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x548762
mov ecx, ebx
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x548762
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
mov edi, ecx
mov ecx, dword [esi + 8]
jb 0x548ba5
mov ebx, 1
jmp 0x548865
mov ebx, dword [esi + 0x68]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp ebx, edx
jae 0x548ba5
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edi, 0xa
setl cl
mov dword [esi + 0x68], ebx
mov dword [esi + 4], ebx
test cl, al
jne 0x5488b9
xor cl, al
mov eax, dword [esi + 0x68]
mov dword [esi + 4], eax
jne 0x5488b9
jmp 0x591500
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push ebx
call fcn.00433980
cmp dword [esi + 4], 0
je 0x548b68
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0x24], ecx
mov dword [esi + 0x38], eax
test eax, ecx
sete byte [esi + 0x10]
mov ebx, 0xbf25ae54
mov ecx, 0x20ab24e5
cmove ebx, ecx
sete al
mov dword [esi + 0xc], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ebx, edx
setl dl
xor dl, al
mov eax, dword [esi + 0x3c]
mov edi, dword [eax]
mov eax, dword [esi + 4]
lea edx, [eax + eax*2]
lea eax, [edi + edx*4]
mov dword [esi + 0x34], eax
cmovne ebx, ecx
mov dword [esi + 8], ebx
mov edx, 0xe6642f9a
nop
cmp edx, 0xffb13444
jle 0x548940
cmp edx, 0xffb13445
je 0x548977
cmp edx, 0x20ab24e5
jne 0x548920
jmp 0x548990
cmp edx, 0xbf25ae54
je 0x54897c
cmp edx, 0xe6642f9a
jne 0x548920
movzx ecx, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ch, cl
xor ch, dl
mov eax, 0xbf25ae54
mov ebx, 0xffb13445
cmovne eax, ebx
test dl, dl
mov edx, eax
cmovne edx, ebx
test cl, cl
cmove edx, eax
jmp 0x548920
mov edx, dword [esi + 8]
jmp 0x548920
mov edx, 0xffb13445
jmp 0x548920
mov ecx, dword [esi + 4]
dec ecx
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ebx, dword [eax]
mov edx, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
lea eax, [edi + eax*4]
mov dword [esi + 0x40], eax
mov eax, 0xe6642f9a
nop word [eax + eax]
cmp eax, 0xffb13444
jle 0x5489f0
cmp eax, 0xffb13445
je 0x548a2b
cmp eax, 0x20ab24e5
jne 0x5489d0
jmp 0x548a40
cmp eax, 0xbf25ae54
je 0x548a30
cmp eax, 0xe6642f9a
jne 0x5489d0
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov dword [esi + 0x48], edx
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
mov edx, dword [esi + 0x48]
jmp 0x5489d0
mov eax, dword [esi + 8]
jmp 0x5489d0
mov eax, 0xffb13445
jmp 0x5489d0
mov eax, dword [esi + 0x40]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
cmp ebx, dword [eax]
sbb edx, dword [eax + 4]
jge 0x548b68
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov edx, 0xe6642f9a
nop dword [eax]
cmp edx, 0xffb13444
jle 0x548a90
cmp edx, 0xffb13445
je 0x548acc
cmp edx, 0x20ab24e5
jne 0x548a70
jmp 0x548ae0
cmp edx, 0xbf25ae54
je 0x548ad1
cmp edx, 0xe6642f9a
jne 0x548a70
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ah, cl
xor ah, al
test cl, cl
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov ecx, 0xbf25ae54
cmove edx, ecx
test ah, ah
cmovne edx, edi
jmp 0x548a70
mov edx, dword [esi + 8]
jmp 0x548a70
mov edx, 0xffb13445
jmp 0x548a70
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x40]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x548b20
cmp ecx, 0xffb13445
je 0x548b5c
cmp ecx, 0x20ab24e5
jne 0x548b00
jmp 0x5488a0
cmp ecx, 0xbf25ae54
je 0x548b61
cmp ecx, 0xe6642f9a
jne 0x548b00
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ah, cl
xor ah, al
test cl, cl
mov ecx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ecx, edx
test al, al
mov edi, 0xbf25ae54
cmove ecx, edi
test ah, ah
cmovne ecx, edx
jmp 0x548b00
mov ecx, dword [esi + 8]
jmp 0x548b00
mov ecx, 0xffb13445
jmp 0x548b00
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete ah
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
jne 0x548846
or dl, al
je 0x548846
jmp 0x591530
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x548bf5
cmp edi, 0x88e9608c
je 0x548c3a
cmp edi, 0xdf32ec89
jne 0x548bd1
mov ecx, dword [esi + 0x64]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x548bd1
cmp edi, 0x30b7124c
je 0x548c96
cmp edi, 0x124998e2
jne 0x548bd1
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, cl
xor bh, bl
test cl, cl
mov edi, 0xdf32ec89
mov ecx, 0x88e9608c
cmovne edi, ecx
test bl, bl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bh, bh
mov ecx, 0x88e9608c
cmovne edi, ecx
jmp 0x548bd1
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov dword [esi + 4], ecx
mov edx, dword [0x5cf6e4]
lea edi, [ecx + 1]
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete cl
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne ecx, ebx
cmp edi, 0xffffffff
mov edi, ecx
cmove edi, ebx
mov dword [esi + 8], edx
cmp edx, 0xa
mov edx, dword [esi + 4]
cmovge edi, ecx
mov ecx, dword [esi + 0x18]
jmp 0x548bd1
lea eax, [edx - 1]
imul eax, edx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
mov edx, dword [esi + 0x8c]
cmp ecx, 0x124998e1
jg 0x548ce5
cmp ecx, 0x88e9608c
je 0x548d2b
cmp ecx, 0xdf32ec89
jne 0x548cc4
mov dword [edx], eax
mov ecx, 0x88e9608c
jmp 0x548cc4
cmp ecx, 0x30b7124c
je 0x548d7c
cmp ecx, 0x124998e2
jne 0x548cc4
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
mov edx, dword [esi + 0x8c]
cmovne ecx, ebx
jmp 0x548cc4
mov dword [esi + 0x18], edx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
mov edx, dword [esi + 0x8c]
cmovne ecx, edi
jmp 0x548cc4
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x548dac
or cl, al
test cl, 1
jne 0x591460
mov ecx, dword [esi + 0x64]
mov eax, dword [ecx]
mov edx, dword [esi + 0x8c]
cmp eax, dword [edx]
je 0x5491ef
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov edi, dword [eax]
mov dword [esi + 8], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
nop word [eax + eax]
cmp edx, 0x2601f5a6
jg 0x548e40
cmp edx, 0x87fb68d6
je 0x548e7c
cmp edx, 0xfc04dcc5
jne 0x548e20
mov edx, 0x87fb68d6
jmp 0x548e20
cmp edx, 0x2601f5a7
je 0x548e80
cmp edx, 0x5a893bc4
jne 0x548e20
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x548e20
mov edx, ecx
jmp 0x548e20
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov dword [esi + 0x40], ecx
cmp dword [esi + 8], ecx
je 0x5490cb
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x548ed2
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x40]
je 0x5490cb
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne cl
cmp dword [esi + 0x38], 0xa
setge al
mov edx, eax
xor dl, cl
or al, cl
xor al, 1
or al, dl
jne 0x548fb9
mov ecx, dword [esi + 0x24]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
test ecx, ecx
sete byte [esi + 0x10]
sete dl
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl ah
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor ah, dl
cmovne ecx, edi
mov edx, 0x1b272c9a
jmp 0x548f50
mov edx, ecx
nop word cs:[eax + eax]
cmp edx, 0x4c6ca681
jle 0x548f70
cmp edx, 0x4c6ca682
je 0x548fa6
cmp edx, 0x6707b2cf
jne 0x548f50
jmp 0x548fb0
cmp edx, 0xf74fd645
je 0x548f41
cmp edx, 0x1b272c9a
jne 0x548f50
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov dh, ah
xor dh, dl
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test dl, dl
mov edx, edi
cmovne edx, ebx
test ah, ah
cmove edx, edi
jmp 0x548f50
mov edx, 0xf74fd645
jmp 0x548f50
mov ecx, dword [esi + 8]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov ecx, dword [esi + 0x24]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete byte [esi + 0x10]
sete ah
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove edx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl bl
mov edi, 0x4c6ca682
cmovge edx, edi
xor bl, ah
mov edi, 0x6707b2cf
cmovne edx, edi
mov ebx, 0x1b272c9a
nop
cmp ebx, 0x4c6ca681
jle 0x549020
cmp ebx, 0x4c6ca682
je 0x54905c
cmp ebx, 0x6707b2cf
jne 0x549000
jmp 0x549070
cmp ebx, 0xf74fd645
je 0x549063
cmp ebx, 0x1b272c9a
jne 0x549000
mov ah, byte [esi + 0x10]
movzx ebx, byte [esi + 0x28]
mov bh, ah
xor bh, bl
mov edi, 0x4c6ca682
mov dword [esi + 0xc], ecx
mov ecx, 0xf74fd645
cmovne edi, ecx
test bl, bl
mov ebx, edi
cmovne ebx, ecx
mov ecx, dword [esi + 0xc]
test ah, ah
cmove ebx, edi
jmp 0x549000
mov ebx, 0xf74fd645
jmp 0x549000
mov ebx, edx
jmp 0x549000
mov edx, dword [esi + 8]
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x18]
test al, al
je 0x548f0c
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x548ec0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x548ec0
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x38], 0xa
setl cl
test cl, al
jne 0x5490f1
xor cl, al
je 0x5914b0
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
mov ecx, dword [esi + 0x64]
nop dword [eax]
cmp eax, 0x5499d803
jg 0x549140
cmp eax, 0xcd5e6053
je 0x54918f
cmp eax, 0x18ed46ca
jne 0x549120
add dword [ecx], 0xc
mov eax, 0x685e39a2
jmp 0x549120
cmp eax, 0x5499d804
je 0x5491c1
cmp eax, 0x685e39a2
jne 0x549120
mov dword [esi + 0x18], ecx
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
jmp 0x5491b6
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
mov ecx, dword [esi + 0x64]
cmovne eax, edi
jmp 0x549120
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ch
xor ch, dl
je 0x548da1
jmp 0x548dac
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete byte [esi + 8]
mov dword [esi + 4], eax
cmp eax, 0xa
setge bl
setl bh
xor bh, byte [esi + 8]
mov eax, dword [esi + 0x90]
jne 0x548179
or bl, dl
mov eax, dword [esi + 0x90]
test bl, 1
je 0x548179
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
mov dword [esi + 4], eax
cmp eax, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x549288
test dl, dl
je 0x54923b
mov eax, dword [esi + 0x90]
jmp 0x548179
mov eax, dword [esi + 0x90]
jmp 0x548179
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
cmp dword [esi + 4], 0xa
setl al
test al, cl
jne 0x5492ba
xor al, cl
je 0x59162a
mov esp, dword [esi + 0x5c]
mov dword [esi + 0x10], 1
mov dword [esi + 0x14], 0xa
mov dword [esi + 0x74], 0xf
mov dword [esi + 0x78], 0x1e
lea ecx, [esi + 0x18]
call fcn.00540a80
mov ecx, dword [0x5cf588]
xor edi, edi
mov eax, dword [0x5cf58c]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x549311
xor al, cl
je 0x5915a0
mov dword [esi + 8], edi
cmp edi, 0x63
ja 0x549501
mov eax, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
mov dword [esi + 0xc0], 0x40
lea ecx, [esi + 0x74]
push edx
push eax
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov ecx, dword [0x5cf588]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete ch
setne cl
cmp dword [0x5cf58c], 0xa
setl dh
setge dl
cmp dh, ch
jne 0x54936d
or dl, cl
jne 0x5915f0
mov dword [esi + 0x28], eax
lea ecx, [esi + 0x10]
push dword [esi + 0x14]
push dword [esi + 0x10]
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov dword [esi + 0x50], eax
lea ecx, [esi + 0x18]
lea eax, [esi + 0x28]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.004341a0
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp eax, 0xa
setl dl
or dl, dh
cmp dl, 1
mov edi, dword [esi + 8]
jne 0x5493ca
inc edi
test dl, dl
jne 0x5492ee
inc edi
jmp 0x5493c1
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp dword [esi + 4], 0xa
setl al
test al, cl
jne 0x5493f0
xor al, cl
je 0x59162e
mov esp, dword [esi + 0x80]
mov dword [esi + 0x10], 1
mov dword [esi + 0x14], 0xa
mov dword [esi + 0x74], 0xf
mov dword [esi + 0x78], 0x1e
lea ecx, [esi + 0x18]
call fcn.00540a80
mov ecx, dword [0x5cf588]
xor edi, edi
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete cl
cmp eax, 0xa
setl ah
setge al
cmp ah, cl
jne 0x54944a
or al, dl
test al, 1
jne 0x5915d0
mov dword [esi + 8], edi
cmp edi, 0x63
ja 0x549a04
mov eax, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
mov dword [esi + 0xc0], 7
lea ecx, [esi + 0x74]
push edx
push eax
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov ecx, dword [0x5cf588]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [0x5cf58c], 0xa
setl dl
test dl, cl
jne 0x5494a1
xor dl, cl
je 0x591610
mov dword [esi + 0x28], eax
lea ecx, [esi + 0x10]
push dword [esi + 0x14]
push dword [esi + 0x10]
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov dword [esi + 0x50], eax
lea ecx, [esi + 0x18]
lea eax, [esi + 0x28]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.004341a0
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp eax, 0xa
setl dl
or dl, dh
cmp dl, 1
mov edi, dword [esi + 8]
jne 0x5494fe
inc edi
test dl, dl
jne 0x549427
inc edi
jmp 0x5494f5
lea ecx, [esi + 0x28]
call fcn.00540a80
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x4c], eax
mov dword [esi + 0x54], ecx
cmp eax, ecx
jne 0x54963e
mov edx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea ecx, [edx - 1]
imul ecx, edx
and ecx, 1
test ecx, ecx
sete cl
cmp eax, 0xa
setl al
test cl, al
jne 0x549548
xor cl, al
je 0x59164c
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
cmp eax, ecx
je 0x549ef9
mov ecx, dword [0x5cf590]
mov edi, dword [0x5cf594]
lea edx, [ecx - 1]
imul edx, ecx
and edx, 1
mov dword [esi + 0x24], edx
sete cl
mov ebx, 0xbd723542
mov edx, 0xd08af799
cmove ebx, edx
mov dword [esi + 0xc], edi
cmp edi, 0xa
setl ch
mov edi, 0xbd723542
cmovge ebx, edi
xor ch, cl
cmovne ebx, edx
mov dword [esi + 0x38], ebx
xor ecx, ecx
jmp 0x5495be
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edx, dword [esi + 0x50]
add ecx, dword [edx + 4]
sub ecx, dword [edx]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 4]
je 0x549ee7
cmp dword [esi + 0x24], 0
sete byte [esi + 0x46]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x47]
mov ebx, 0x553a1bc1
cmp ebx, 0xd08af798
jg 0x5495f2
cmp ebx, 0xb4e27a0f
je 0x54962d
cmp ebx, 0xbd723542
jne 0x5495d3
mov ebx, 0xb4e27a0f
jmp 0x5495d3
cmp ebx, 0xd08af799
je 0x5495a1
cmp ebx, 0x553a1bc1
jne 0x5495d3
movzx edx, byte [esi + 0x46]
mov dh, byte [esi + 0x47]
mov ebx, edx
xor bl, dh
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test dh, dh
mov ebx, edi
mov eax, 0xb4e27a0f
cmovne ebx, eax
test dl, dl
cmove ebx, edi
jmp 0x5495d3
mov ebx, dword [esi + 0x38]
jmp 0x5495d3
mov dword [esi + 0x4c], edi
cmp edi, dword [esi + 0x54]
je 0x549531
mov eax, dword [0x5cf590]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf594]
sete byte [esi + 0x46]
sete dl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
setl cl
mov ebx, 0xbd723542
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x553a1bc1
mov edi, dword [esi + 0x4c]
cmp ecx, 0xd08af798
jg 0x5496a8
cmp ecx, 0xb4e27a0f
je 0x5496e7
cmp ecx, 0xbd723542
jne 0x549689
mov ecx, 0xb4e27a0f
jmp 0x549689
cmp ecx, 0xd08af799
je 0x5496eb
cmp ecx, 0x553a1bc1
jne 0x549689
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
mov edi, dword [esi + 0x4c]
test dh, dh
cmovne ecx, ebx
jmp 0x549689
mov ecx, eax
jmp 0x549689
mov dword [esi + 0x50], edi
mov eax, dword [esi + 0x50]
mov edx, dword [esi + 0x28]
mov ebx, dword [esi + 0x2c]
mov cl, 1
mov dword [esi + 0x70], ecx
mov dword [esi + 8], edx
mov dword [esi + 0x48], ebx
cmp edx, ebx
mov dword [esi + 4], eax
je 0x549979
add eax, 4
mov dword [esi + 0xc], eax
mov ecx, dword [0x5cf588]
mov edx, dword [0x5cf58c]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edx, 0xa
setl cl
test cl, al
jne 0x549759
xor cl, al
je 0x549876
jmp 0x549759
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
mov edx, dword [esi + 0x38]
jne 0x54971f
jmp 0x549976
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xbd723542
mov ebx, 0xd08af799
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x46]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edi
mov ecx, 0x553a1bc1
nop word cs:[eax + eax]
cmp ecx, 0xd08af798
jg 0x5497d0
cmp ecx, 0xb4e27a0f
je 0x549807
cmp ecx, 0xbd723542
jne 0x5497b0
mov ecx, 0xb4e27a0f
jmp 0x5497b0
cmp ecx, 0xd08af799
je 0x54980b
cmp ecx, 0x553a1bc1
jne 0x5497b0
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5497b0
mov ecx, eax
jmp 0x5497b0
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
mov dword [esi + 0x40], eax
mov dword [esi + 0x24], edx
mov dword [esi + 0x34], edi
lea eax, [edi + 4]
push dword [esi + 0xc]
push eax
call fcn.00433d30
add esp, 8
mov dword [esi + 0x3c], edx
mov ecx, dword [0x5cf588]
lea edx, [ecx + 1]
imul edx, ecx
mov ebx, edx
xor ebx, 0xfffffffe
test ebx, edx
sete dl
setne bl
mov edi, dword [0x5cf58c]
mov dword [esi + 0x38], edi
cmp edi, 0xa
setl dh
setge bh
cmp dh, dl
jne 0x549950
or bh, bl
je 0x549950
mov eax, dword [0x5cf590]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf594]
sete byte [esi + 0x46]
sete dl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
setl cl
mov ebx, 0xbd723542
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x553a1bc1
jmp 0x5498d0
mov ecx, eax
nop word cs:[eax + eax]
cmp ecx, 0xd08af798
jg 0x5498f0
cmp ecx, 0xb4e27a0f
je 0x5498c0
cmp ecx, 0xbd723542
jne 0x5498d0
mov ecx, 0xb4e27a0f
jmp 0x5498d0
cmp ecx, 0xd08af799
je 0x549927
cmp ecx, 0x553a1bc1
jne 0x5498d0
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5498d0
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
add edi, 4
push dword [esi + 0xc]
push edi
call fcn.00433d30
add esp, 8
jmp 0x549759
mov edx, dword [esi + 0x24]
mov edx, dword [edx]
cmp edx, dword [eax]
jg 0x549743
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov ecx, dword [esi + 0x34]
mov dword [ecx], eax
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov dword [ecx + 4], eax
mov dword [esi + 0x70], 0
mov edi, dword [esi + 0x4c]
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete bl
setne dl
cmp eax, 0xa
setl bh
setge dh
cmp bh, bl
jne 0x5499ac
or dh, dl
jne 0x591612
cmp byte [esi + 0x70], 0
je 0x5499e2
mov dword [esi + 0xc0], 0x41
lea ecx, [esi + 0x28]
push dword [esi + 4]
call fcn.00540ea0
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
mov edi, dword [esi + 0x4c]
test ecx, ecx
sete dh
cmp eax, 0xa
setl dl
or dl, dh
cmp dl, 1
jne 0x5499ff
add edi, 8
test dl, dl
jne 0x549632
add edi, 8
jmp 0x5499f4
lea ecx, [esi + 0x28]
call fcn.00540a80
mov ebx, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x54], eax
cmp ebx, eax
jne 0x549b49
mov edx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
test ecx, ecx
sete dl
setne cl
cmp eax, 0xa
setl ah
setge al
cmp dl, ah
jne 0x549a4e
or cl, al
jne 0x591650
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0xc], ecx
mov dword [esi + 8], eax
cmp eax, ecx
je 0x54a025
mov ecx, dword [0x5cf590]
mov edi, dword [0x5cf594]
mov dword [esi + 4], edi
lea ebx, [ecx + 1]
imul ebx, ecx
mov ecx, ebx
xor ecx, 0xfffffffe
test ecx, ebx
sete dh
cmp edi, 0xa
setl dl
xor dl, dh
mov edx, 0xbd723542
mov edi, 0xd08af799
cmovne edx, edi
mov dword [esi + 0x24], ebx
mov dword [esi + 0x38], ecx
test ecx, ebx
mov ecx, edx
cmove ecx, edi
cmp dword [esi + 4], 0xa
cmovge ecx, edx
mov dword [esi + 0x34], ecx
xor edx, edx
jmp 0x549ace
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov ecx, dword [esi + 0x50]
add edx, dword [ecx + 4]
sub edx, dword [ecx]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0xc]
je 0x54a013
mov ecx, dword [esi + 0x38]
test dword [esi + 0x24], ecx
sete byte [esi + 0x46]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x47]
mov ecx, 0x553a1bc1
cmp ecx, 0xd08af798
jg 0x549b04
cmp ecx, 0xb4e27a0f
je 0x549b3b
cmp ecx, 0xbd723542
jne 0x549ae5
mov ecx, 0xb4e27a0f
jmp 0x549ae5
cmp ecx, 0xd08af799
je 0x549ab1
cmp ecx, 0x553a1bc1
jne 0x549ae5
movzx ebx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, bl
xor ch, cl
mov edi, 0xbd723542
mov eax, 0xb4e27a0f
cmovne edi, eax
test cl, cl
mov ecx, edi
cmovne ecx, eax
test bl, bl
cmove ecx, edi
jmp 0x549ae5
mov ecx, dword [esi + 0x34]
jmp 0x549ae5
cmp ebx, dword [esi + 0x54]
je 0x549a31
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xbd723542
mov edi, 0xd08af799
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x46]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edx
mov ecx, 0x553a1bc1
mov dword [esi + 0x4c], ebx
cmp ecx, 0xd08af798
jg 0x549bb8
cmp ecx, 0xb4e27a0f
je 0x549bf2
cmp ecx, 0xbd723542
jne 0x549b99
mov ecx, 0xb4e27a0f
jmp 0x549b99
cmp ecx, 0xd08af799
je 0x549bf6
cmp ecx, 0x553a1bc1
jne 0x549b99
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
mov ebx, dword [esi + 0x4c]
test dl, dl
cmove ecx, edi
jmp 0x549b99
mov ecx, eax
jmp 0x549b99
mov dword [esi + 0x50], ebx
mov edi, dword [esi + 0x50]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov al, 1
mov dword [esi + 0x70], eax
mov dword [esi + 8], ecx
mov dword [esi + 0x48], edx
cmp ecx, edx
je 0x549e6c
mov dword [esi + 4], edi
lea eax, [edi + 4]
mov dword [esi + 0xc], eax
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x549c63
xor al, cl
je 0x549d71
jmp 0x549c63
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
mov eax, dword [esi + 0x34]
jne 0x549c29
jmp 0x549e66
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xbd723542
mov ebx, 0xd08af799
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x46]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edi
mov ecx, 0x553a1bc1
nop
cmp ecx, 0xd08af798
jg 0x549cd0
cmp ecx, 0xb4e27a0f
je 0x549d07
cmp ecx, 0xbd723542
jne 0x549cb0
mov ecx, 0xb4e27a0f
jmp 0x549cb0
cmp ecx, 0xd08af799
je 0x549d0b
cmp ecx, 0x553a1bc1
jne 0x549cb0
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x549cb0
mov ecx, eax
jmp 0x549cb0
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
mov dword [esi + 0x40], eax
mov dword [esi + 0x24], edx
lea eax, [edi + 4]
push dword [esi + 0xc]
push eax
call fcn.00433d30
add esp, 8
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], edx
mov ecx, dword [0x5cf588]
lea ebx, [ecx + 1]
imul ebx, ecx
test bl, 1
sete dh
mov eax, dword [0x5cf58c]
mov dword [esi + 0x34], eax
cmp eax, 0xa
setl al
setge dl
cmp al, dh
jne 0x549e40
or dl, bl
test dl, 1
je 0x549e40
mov eax, dword [0x5cf590]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf594]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x46]
sete cl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x47]
setl dl
mov ebx, 0xbd723542
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x553a1bc1
jmp 0x549dc0
mov ecx, eax
nop
cmp ecx, 0xd08af798
jg 0x549de0
cmp ecx, 0xb4e27a0f
je 0x549dbc
cmp ecx, 0xbd723542
jne 0x549dc0
mov ecx, 0xb4e27a0f
jmp 0x549dc0
cmp ecx, 0xd08af799
je 0x549e17
cmp ecx, 0x553a1bc1
jne 0x549dc0
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x549dc0
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
add edi, 4
push dword [esi + 0xc]
push edi
call fcn.00433d30
add esp, 8
jmp 0x549c63
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov edx, dword [esi + 0x38]
cmp eax, dword [edx]
jg 0x549c4d
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov dword [edi], eax
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov dword [edi + 4], eax
mov dword [esi + 0x70], 0
mov ebx, dword [esi + 0x4c]
mov edi, dword [esi + 4]
mov edx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea ecx, [edx - 1]
imul ecx, edx
and ecx, 1
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x549e95
xor dh, dl
je 0x591616
cmp byte [esi + 0x70], 0
je 0x549ec5
mov dword [esi + 0xc0], 8
lea ecx, [esi + 0x28]
push edi
call fcn.00540ea0
mov edx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea ecx, [edx - 1]
imul ecx, edx
and ecx, 1
mov ebx, dword [esi + 0x4c]
test ecx, ecx
sete dh
cmp eax, 0xa
setl dl
or dl, dh
cmp dl, 1
jne 0x549ee2
add ebx, 8
test dl, dl
jne 0x549b40
add ebx, 8
jmp 0x549ed7
cmp ecx, 0x12345678
jne 0x549ef9
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
lea ecx, [esi + 0x28]
call fcn.0041e540
lea edi, [esi + 0x18]
mov ecx, edi
call fcn.0041e540
mov dword [esi + 0x10], 1
mov dword [esi + 0x14], 0xa
mov dword [esi + 0x74], 0xf
mov dword [esi + 0x78], 0x1e
mov ecx, edi
call fcn.00540a80
mov ecx, dword [0x5cf588]
xor edi, edi
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x549f5d
xor al, cl
je 0x59161a
mov dword [esi + 8], edi
cmp edi, 0x63
ja 0x54a148
mov eax, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
mov dword [esi + 0xc0], 0x42
lea ecx, [esi + 0x74]
push edx
push eax
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov ecx, dword [0x5cf588]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [0x5cf58c], 0xa
setl dl
test dl, cl
jne 0x549fb4
xor dl, cl
je 0x591622
mov dword [esi + 0x28], eax
lea ecx, [esi + 0x10]
push dword [esi + 0x14]
push dword [esi + 0x10]
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov dword [esi + 0x50], eax
lea ecx, [esi + 0x18]
lea eax, [esi + 0x28]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.004341a0
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp eax, 0xa
setl dl
or dl, dh
cmp dl, 1
mov edi, dword [esi + 8]
jne 0x54a010
inc edi
test dl, dl
jne 0x549f3b
inc edi
jmp 0x54a007
cmp edx, 0x12345678
jne 0x54a025
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
lea ecx, [esi + 0x28]
call fcn.0041e540
lea edi, [esi + 0x18]
mov ecx, edi
call fcn.0041e540
mov dword [esi + 0x10], 1
mov dword [esi + 0x14], 0xa
mov dword [esi + 0x74], 0xf
mov dword [esi + 0x78], 0x1e
mov ecx, edi
call fcn.00540a80
mov ecx, dword [0x5cf588]
xor ebx, ebx
mov edi, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete cl
cmp edi, 0xa
setge al
setl ah
xor ah, cl
jne 0x54a08b
or al, dl
test al, 1
jne 0x59161e
mov dword [esi + 8], ebx
cmp ebx, 0x63
ja 0x54a62f
mov eax, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
mov dword [esi + 0xc0], 9
lea ecx, [esi + 0x74]
push edx
push eax
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov ecx, dword [0x5cf588]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp dword [0x5cf58c], 0xa
setl dl
test dl, cl
jne 0x54a0e1
xor dl, cl
je 0x591626
mov dword [esi + 0x28], eax
lea ecx, [esi + 0x10]
push dword [esi + 0x14]
push dword [esi + 0x10]
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov dword [esi + 0x50], eax
lea ecx, [esi + 0x18]
lea eax, [esi + 0x28]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.004341a0
mov ecx, dword [0x5cf588]
mov edi, dword [0x5cf58c]
lea ebx, [ecx + 1]
imul ebx, ecx
test bl, 1
sete dh
cmp edi, 0xa
setge dl
setl al
or dl, bl
xor al, dh
xor dl, 1
or dl, al
test dl, 1
mov ebx, dword [esi + 8]
je 0x54a145
inc ebx
test dl, 1
jne 0x54a068
inc ebx
jmp 0x54a13b
lea ecx, [esi + 0x28]
call fcn.00540a80
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x4c], eax
mov dword [esi + 0x70], ecx
cmp eax, ecx
jne 0x54a290
mov edx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
test ecx, ecx
sete dl
setne cl
cmp eax, 0xa
setl ah
setge al
cmp dl, ah
jne 0x54a195
or cl, al
jne 0x591674
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
cmp eax, ecx
je 0x54ab22
mov ecx, dword [0x5cf590]
mov edx, dword [0x5cf594]
lea edi, [ecx + 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
mov dword [esi + 0x24], edi
mov dword [esi + 0x38], ecx
test ecx, edi
mov ebx, 0xbd723542
mov edi, 0xd08af799
cmove ebx, edi
sete cl
mov dword [esi + 0xc], edx
cmp edx, 0xa
mov edx, 0xbd723542
cmovge ebx, edx
setl dl
xor dl, cl
cmovne ebx, edi
mov dword [esi + 0x34], ebx
xor edx, edx
jmp 0x54a212
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov ecx, dword [esi + 0x50]
add edx, dword [ecx + 4]
sub edx, dword [ecx]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 4]
je 0x54ab10
mov ecx, dword [esi + 0x38]
test dword [esi + 0x24], ecx
sete byte [esi + 0x46]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x47]
mov ecx, 0x553a1bc1
cmp ecx, 0xd08af798
jg 0x54a248
cmp ecx, 0xb4e27a0f
je 0x54a27f
cmp ecx, 0xbd723542
jne 0x54a229
mov ecx, 0xb4e27a0f
jmp 0x54a229
cmp ecx, 0xd08af799
je 0x54a1f5
cmp ecx, 0x553a1bc1
jne 0x54a229
movzx ebx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, bl
xor ch, cl
mov edi, 0xbd723542
mov eax, 0xb4e27a0f
cmovne edi, eax
test cl, cl
mov ecx, edi
cmovne ecx, eax
test bl, bl
cmove ecx, edi
jmp 0x54a229
mov ecx, dword [esi + 0x34]
jmp 0x54a229
mov dword [esi + 0x4c], edi
cmp edi, dword [esi + 0x70]
je 0x54a178
mov eax, dword [0x5cf590]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf594]
sete byte [esi + 0x46]
sete dl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
setl cl
mov ebx, 0xbd723542
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x553a1bc1
jmp 0x54a304
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
mov edx, dword [esi + 0x4c]
cmp ecx, 0xd08af798
jg 0x54a326
cmp ecx, 0xb4e27a0f
je 0x54a338
cmp ecx, 0xbd723542
jne 0x54a307
mov ecx, 0xb4e27a0f
jmp 0x54a307
cmp ecx, 0xd08af799
je 0x54a33c
cmp ecx, 0x553a1bc1
jne 0x54a307
jmp 0x54a2da
mov ecx, eax
jmp 0x54a307
mov dword [esi + 0x50], edx
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov bl, 1
mov dword [esi + 8], ecx
mov dword [esi + 0x48], edx
cmp ecx, edx
mov dword [esi + 4], eax
je 0x54a5a3
add eax, 4
mov dword [esi + 0xc], eax
mov edi, dword [0x5cf588]
mov ecx, dword [0x5cf58c]
lea eax, [edi + 1]
imul eax, edi
test al, 1
sete dl
cmp ecx, 0xa
setl ch
setge cl
cmp ch, dl
jne 0x54a390
or cl, al
test cl, 1
jne 0x54a49a
mov eax, dword [0x5cf590]
lea ecx, [eax - 1]
imul ecx, eax
mov edx, dword [0x5cf594]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x46]
sete cl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x47]
setl dl
mov ebx, 0xbd723542
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x553a1bc1
cmp ecx, 0xd08af798
jg 0x54a3f8
cmp ecx, 0xb4e27a0f
je 0x54a42f
cmp ecx, 0xbd723542
jne 0x54a3d9
mov ecx, 0xb4e27a0f
jmp 0x54a3d9
cmp ecx, 0xd08af799
je 0x54a433
cmp ecx, 0x553a1bc1
jne 0x54a3d9
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x54a3d9
mov ecx, eax
jmp 0x54a3d9
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
mov dword [esi + 0x40], eax
mov dword [esi + 0x24], edx
mov dword [esi + 0x34], edi
lea eax, [edi + 4]
push dword [esi + 0xc]
push eax
call fcn.00433d30
add esp, 8
mov dword [esi + 0x3c], edx
mov edi, dword [0x5cf588]
lea ebx, [edi + 1]
imul ebx, edi
test bl, 1
sete dh
mov ecx, dword [0x5cf58c]
mov dword [esi + 0x38], ecx
cmp ecx, 0xa
setl cl
setge dl
cmp cl, dh
jne 0x54a56d
or dl, bl
test dl, 1
je 0x54a56d
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xbd723542
mov ebx, 0xd08af799
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x46]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edi
mov ecx, 0x553a1bc1
jmp 0x54a4e9
mov ecx, eax
cmp ecx, 0xd08af798
jg 0x54a508
cmp ecx, 0xb4e27a0f
je 0x54a4e7
cmp ecx, 0xbd723542
jne 0x54a4e9
mov ecx, 0xb4e27a0f
jmp 0x54a4e9
cmp ecx, 0xd08af799
je 0x54a544
cmp ecx, 0x553a1bc1
jne 0x54a4e9
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x54a4e9
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
add edi, 4
push dword [esi + 0xc]
push edi
call fcn.00433d30
add esp, 8
jmp 0x54a390
mov ecx, dword [esi + 0x24]
mov ecx, dword [ecx]
cmp ecx, dword [eax]
jle 0x54a58f
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x38]
jne 0x54a36d
mov bl, 1
jmp 0x54a5a3
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov ecx, dword [esi + 0x34]
mov dword [ecx], eax
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov dword [ecx + 4], eax
xor ebx, ebx
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x54a5d0
xor dh, dl
je 0x591634
test bl, bl
je 0x54a601
mov dword [esi + 0xc0], 0x43
lea ecx, [esi + 0x28]
push dword [esi + 4]
call fcn.00540ea0
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
test ecx, ecx
setne dl
cmp eax, 0xa
setge dh
mov ebx, edx
xor bl, dh
or dl, dh
xor dl, 1
or dl, bl
cmp dl, 1
mov edi, dword [esi + 0x4c]
jne 0x54a62a
add edi, 8
test dl, dl
jne 0x54a284
add edi, 8
jmp 0x54a61f
lea ecx, [esi + 0x28]
call fcn.00540a80
mov ebx, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x70], eax
cmp ebx, eax
jne 0x54a76a
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
test ecx, ecx
sete cl
cmp eax, 0xa
setl al
test cl, al
jne 0x54a677
xor cl, al
je 0x591676
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
cmp eax, ecx
je 0x55ae9f
mov ecx, dword [0x5cf590]
mov edi, dword [0x5cf594]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
mov dword [esi + 0x24], edx
sete cl
mov ebx, 0xbd723542
mov edx, 0xd08af799
cmove ebx, edx
mov dword [esi + 0xc], edi
cmp edi, 0xa
setl ch
mov edi, 0xbd723542
cmovge ebx, edi
xor ch, cl
cmovne ebx, edx
mov dword [esi + 0x38], ebx
xor ecx, ecx
jmp 0x54a6ed
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edx, dword [esi + 0x50]
add ecx, dword [edx + 4]
sub ecx, dword [edx]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 4]
je 0x55ae8d
cmp dword [esi + 0x24], 0
sete byte [esi + 0x46]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x47]
mov ebx, 0x553a1bc1
cmp ebx, 0xd08af798
jg 0x54a721
cmp ebx, 0xb4e27a0f
je 0x54a75c
cmp ebx, 0xbd723542
jne 0x54a702
mov ebx, 0xb4e27a0f
jmp 0x54a702
cmp ebx, 0xd08af799
je 0x54a6d0
cmp ebx, 0x553a1bc1
jne 0x54a702
movzx edx, byte [esi + 0x46]
mov dh, byte [esi + 0x47]
mov ebx, edx
xor bl, dh
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test dh, dh
mov ebx, edi
mov eax, 0xb4e27a0f
cmovne ebx, eax
test dl, dl
cmove ebx, edi
jmp 0x54a702
mov ebx, dword [esi + 0x38]
jmp 0x54a702
cmp ebx, dword [esi + 0x70]
je 0x54a660
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xbd723542
mov edi, 0xd08af799
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x46]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edx
mov ecx, 0x553a1bc1
mov dword [esi + 0x4c], ebx
cmp ecx, 0xd08af798
jg 0x54a7d9
cmp ecx, 0xb4e27a0f
je 0x54a813
cmp ecx, 0xbd723542
jne 0x54a7ba
mov ecx, 0xb4e27a0f
jmp 0x54a7ba
cmp ecx, 0xd08af799
je 0x54a817
cmp ecx, 0x553a1bc1
jne 0x54a7ba
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
mov ebx, dword [esi + 0x4c]
test dl, dl
cmove ecx, edi
jmp 0x54a7ba
mov ecx, eax
jmp 0x54a7ba
mov dword [esi + 0x50], ebx
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov bl, 1
mov dword [esi + 8], ecx
mov dword [esi + 0x48], edx
cmp ecx, edx
mov dword [esi + 4], eax
je 0x54aa88
add eax, 4
mov dword [esi + 0xc], eax
mov ecx, dword [0x5cf588]
mov edx, dword [0x5cf58c]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edx, 0xa
setl cl
test cl, al
jne 0x54a86a
xor cl, al
je 0x54a981
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xbd723542
mov edi, 0xd08af799
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x46]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edx
mov ecx, 0x553a1bc1
cmp ecx, 0xd08af798
jg 0x54a8d6
cmp ecx, 0xb4e27a0f
je 0x54a912
cmp ecx, 0xbd723542
jne 0x54a8b7
mov ecx, 0xb4e27a0f
jmp 0x54a8b7
cmp ecx, 0xd08af799
je 0x54a916
cmp ecx, 0x553a1bc1
jne 0x54a8b7
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x54a8b7
mov ecx, eax
jmp 0x54a8b7
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
mov dword [esi + 0x40], eax
mov dword [esi + 0x24], edx
mov dword [esi + 0x34], edi
lea eax, [edi + 4]
push dword [esi + 0xc]
push eax
call fcn.00433d30
add esp, 8
mov dword [esi + 0x3c], edx
mov ecx, dword [0x5cf588]
lea edx, [ecx + 1]
imul edx, ecx
mov ebx, edx
xor ebx, 0xfffffffe
test ebx, edx
setne bl
sete dl
mov edi, dword [0x5cf58c]
mov dword [esi + 0x38], edi
cmp edi, 0xa
setge bh
setl dh
xor dh, dl
jne 0x54aa52
or bh, bl
je 0x54aa52
mov eax, dword [0x5cf590]
lea ecx, [eax - 1]
imul ecx, eax
mov edx, dword [0x5cf594]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x46]
sete cl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x47]
setl dl
mov ebx, 0xbd723542
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x553a1bc1
jmp 0x54a9ce
mov ecx, eax
cmp ecx, 0xd08af798
jg 0x54a9ed
cmp ecx, 0xb4e27a0f
je 0x54a9cc
cmp ecx, 0xbd723542
jne 0x54a9ce
mov ecx, 0xb4e27a0f
jmp 0x54a9ce
cmp ecx, 0xd08af799
je 0x54aa29
cmp ecx, 0x553a1bc1
jne 0x54a9ce
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x54a9ce
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
add edi, 4
push dword [esi + 0xc]
push edi
call fcn.00433d30
add esp, 8
jmp 0x54a86a
mov edx, dword [esi + 0x24]
mov edx, dword [edx]
cmp edx, dword [eax]
jle 0x54aa74
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
mov edx, dword [esi + 0x38]
jne 0x54a848
mov bl, 1
jmp 0x54aa88
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov ecx, dword [esi + 0x34]
mov dword [ecx], eax
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov dword [ecx + 4], eax
xor ebx, ebx
mov edx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea ecx, [edx - 1]
imul ecx, edx
and ecx, 1
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x54aab1
xor dh, dl
je 0x591636
test bl, bl
je 0x54aade
mov dword [esi + 0xc0], 0xa
lea ecx, [esi + 0x28]
push dword [esi + 4]
call fcn.00540ea0
mov edx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
test ecx, ecx
setne dh
sete bl
cmp eax, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
xor dl, 1
or dl, bh
cmp dl, 1
mov ebx, dword [esi + 0x4c]
jne 0x54ab0b
add ebx, 8
test dl, dl
jne 0x54a761
add ebx, 8
jmp 0x54ab00
cmp edx, 0x12345678
jne 0x54ab22
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
lea ecx, [esi + 0x28]
call fcn.0041e540
lea ecx, [esi + 0x18]
call fcn.0041e540
mov eax, dword [0x5d21a0]
mov ecx, dword [0x5d21a4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0xa7]
cmp ecx, 0xa
setl byte [esi + 0x7c]
mov eax, 0x8f871a7e
cmp eax, 0xf60420d0
jg 0x54aba5
cmp eax, 0x8c5f966a
je 0x56b1eb
cmp eax, 0x8f871a7e
jne 0x54ab5d
movzx ecx, byte [esi + 0xa7]
movzx eax, byte [esi + 0x7c]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0xf60420d1
mov edi, 0x5ae21c5b
cmovne eax, edi
test cl, cl
mov ecx, 0xf60420d1
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x54ab5d
cmp eax, 0xf60420d1
je 0x54bc92
cmp eax, 0x5ae21c5b
jne 0x54ab5d
mov dword [esi + 0x5c], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
sete dh
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 0x40], esp
sub esp, 0xc
mov edi, esp
sub esp, 0x10
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
mov dword [esi + 0x70], esp
sub esp, 0xc
mov dword [esi + 0x48], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov esp, ecx
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x4c], esp
push eax
mov dword [esi + 0x68], esp
test dl, dl
je 0x54abe0
mov dword [esi + 0x64], edi
mov dword [esi + 0x60], ebx
lea edx, [ebx + 0x10]
mov dword [esi + 0x8c], edx
mov dword [esi + 0x58], ecx
add ecx, 0x10
mov dword [esi + 0x98], ecx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x54cd78
mov ecx, dword [esi + 0x40]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x88], edi
mov dword [esi + 0x80], eax
shr eax, 1
mov dword [esi + 4], eax
mov dword [esi + 0xc], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
mov dword [esi + 8], ecx
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov ebx, dword [esi + 0xc]
mov edi, dword [esi + 4]
mov ecx, dword [0x5cf6c4]
sete al
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl ah
test ah, al
jne 0x54aca8
xor ah, al
je 0x59163c
mov eax, edi
imul eax, ebx
mov edx, edi
mulx edx, ecx, edi
add eax, eax
add eax, edx
mov edx, dword [esi + 0x88]
cmp ecx, edx
sbb eax, 0
jae 0x54b28d
sub edx, edi
mov dword [esi + 0x38], edx
mov eax, 0
sbb eax, ebx
mov dword [esi + 0x24], eax
mov dword [esi + 0x3c], edi
add edi, 1
mov dword [esi + 0x94], ebx
adc ebx, 0
push ebx
push edi
push eax
push edx
call fcn.00594a90
mov dword [esi + 8], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x34], edx
mov dword [esi + 0x84], eax
mov edx, eax
mov dword [esi + 0xc], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 8]
mov dword [esi + 4], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x38]
sub eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x24]
sbb ecx, edx
or ecx, eax
jne 0x54ac6e
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x60]
mov edi, dword [esi + 0x3c]
mov dword [ecx], edi
mov edi, dword [esi + 0x94]
mov dword [ecx + 4], edi
mov edi, dword [esi + 0x84]
mov dword [ecx + 8], edi
setl byte [esi + 0x28]
mov edi, dword [esi + 8]
mov dword [ecx + 0xc], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x54adb2
cmp ecx, 0x20e9c049
je 0x54adc9
cmp ecx, 0x3b23d0b1
jne 0x54ad98
jmp 0x54adf9
cmp ecx, 0x9c6e8745
je 0x54adcd
cmp ecx, 0xeb760989
jne 0x54ad98
mov ecx, 0x20e9c049
jmp 0x54ad98
mov ecx, eax
jmp 0x54ad98
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x54ad98
mov eax, dword [esi + 0x70]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x64]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x8c]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x54ae8c
cmp ecx, 0xcfcad29c
je 0x54aeca
cmp ecx, 0x3aca7e6
jne 0x54ae70
mov ecx, eax
jmp 0x54ae70
cmp ecx, 0x7c4a5f2
je 0x54aec3
cmp ecx, 0x389c0e25
jne 0x54ae70
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x54ae70
mov ecx, 0x3aca7e6
jmp 0x54ae70
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x44
mov ecx, dword [esi + 0x64]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x46
mov ecx, dword [esi + 0x40]
push dword [esi + 0x64]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x54af71
cmp eax, 0xc6e82640
je 0x54afd9
cmp eax, 0x950d98a
jne 0x54af2c
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x54af2c
cmp eax, 0x31a61df5
je 0x54af8e
cmp eax, 0x4d86efb0
jne 0x54af2c
mov ecx, dword [esi + 0x64]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x54af2c
mov ecx, dword [esi + 0x64]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x54af2c
mov ebx, dword [esi + 0x58]
mov eax, dword [esi + 8]
mov dword [ebx + 4], eax
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
mov edx, dword [0x5cf6cc]
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne ecx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, dword [esi + 0x84]
mov dword [ebx], eax
mov eax, dword [esi + 0x94]
mov dword [ebx + 0xc], eax
mov eax, ecx
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 0x3c]
mov dword [ebx + 8], edx
cmovge eax, ecx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x54b060
cmp ecx, 0x20e9c049
je 0x54b077
cmp ecx, 0x3b23d0b1
jne 0x54b046
jmp 0x54b0a7
cmp ecx, 0x9c6e8745
je 0x54b07b
cmp ecx, 0xeb760989
jne 0x54b046
mov ecx, 0x20e9c049
jmp 0x54b046
mov ecx, eax
jmp 0x54b046
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x54b046
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x48]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x98]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x58]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x54b13b
cmp ecx, 0xcfcad29c
je 0x54b17e
cmp ecx, 0x3aca7e6
jne 0x54b11f
mov ecx, eax
jmp 0x54b11f
cmp ecx, 0x7c4a5f2
je 0x54b177
cmp ecx, 0x389c0e25
jne 0x54b11f
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x54b11f
mov ecx, 0x3aca7e6
jmp 0x54b11f
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x44
mov ecx, dword [esi + 0x48]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x45
mov ecx, dword [esi + 0x40]
push dword [esi + 0x48]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x54b225
cmp eax, 0xc6e82640
je 0x54ac6e
cmp eax, 0x950d98a
jne 0x54b1e0
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x54b1e0
cmp eax, 0x31a61df5
je 0x54b242
cmp eax, 0x4d86efb0
jne 0x54b1e0
mov ecx, dword [esi + 0x48]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x54b1e0
mov ecx, dword [esi + 0x48]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x54b1e0
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x54b5d1
mov dword [esi + 0x94], 1
jmp 0x54b2dd
mov ecx, dword [esi + 0x94]
inc ecx
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x94], ecx
cmp ecx, edx
jae 0x54b5d1
mov ecx, dword [esi + 8]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne al
sete dl
cmp dword [esi + 4], 0xa
setge cl
setl ah
xor ah, dl
mov edx, dword [esi + 0x94]
mov dword [esi + 4], edx
jne 0x54b335
or cl, al
mov eax, dword [esi + 0x94]
mov dword [esi + 4], eax
je 0x54b335
jmp 0x591682
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push ebx
call fcn.00433980
cmp dword [esi + 4], 0
je 0x54b593
mov eax, dword [0x5cf6d8]
mov ecx, dword [0x5cf6dc]
lea edx, [eax + 1]
imul edx, eax
and edx, 1
mov dword [esi + 0x24], edx
sete byte [esi + 0x10]
sete al
mov ebx, 0xbf25ae54
mov edx, 0x20ab24e5
cmove ebx, edx
mov dword [esi + 0xc], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, 0xbf25ae54
cmovge ebx, ecx
setl cl
xor cl, al
mov eax, dword [esi + 0x40]
mov edi, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
lea eax, [edi + eax*4]
mov dword [esi + 0x38], eax
cmovne ebx, edx
mov dword [esi + 8], ebx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x54b3ad
cmp edx, 0xffb13445
je 0x54b3e4
cmp edx, 0x20ab24e5
jne 0x54b393
jmp 0x54b3f0
cmp edx, 0xbf25ae54
je 0x54b3e9
cmp edx, 0xe6642f9a
jne 0x54b393
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
mov ecx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne ecx, ebx
test dl, dl
mov edx, ecx
cmovne edx, ebx
test al, al
cmove edx, ecx
jmp 0x54b393
mov edx, dword [esi + 8]
jmp 0x54b393
mov edx, 0xffb13445
jmp 0x54b393
mov ecx, dword [esi + 4]
dec ecx
cmp dword [esi + 0x24], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ebx, dword [eax]
mov edx, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
lea eax, [edi + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x54b43c
cmp eax, 0xffb13445
je 0x54b477
cmp eax, 0x20ab24e5
jne 0x54b425
jmp 0x54b483
cmp eax, 0xbf25ae54
je 0x54b47c
cmp eax, 0xe6642f9a
jne 0x54b425
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov dword [esi + 0x3c], edx
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
mov edx, dword [esi + 0x3c]
jmp 0x54b425
mov eax, dword [esi + 8]
jmp 0x54b425
mov eax, 0xffb13445
jmp 0x54b425
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
cmp ebx, dword [eax]
sbb edx, dword [eax + 4]
jge 0x54b593
cmp dword [esi + 0x24], 0
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x54b4c8
cmp edx, 0xffb13445
je 0x54b504
cmp edx, 0x20ab24e5
jne 0x54b4ae
jmp 0x54b510
cmp edx, 0xbf25ae54
je 0x54b509
cmp edx, 0xe6642f9a
jne 0x54b4ae
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ah, al
xor ah, cl
test cl, cl
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov ecx, 0xbf25ae54
cmove edx, ecx
test ah, ah
cmovne edx, edi
jmp 0x54b4ae
mov edx, dword [esi + 8]
jmp 0x54b4ae
mov edx, 0xffb13445
jmp 0x54b4ae
cmp dword [esi + 0x24], 0
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x54b54b
cmp ecx, 0xffb13445
je 0x54b587
cmp ecx, 0x20ab24e5
jne 0x54b52e
jmp 0x54b31c
cmp ecx, 0xbf25ae54
je 0x54b58c
cmp ecx, 0xe6642f9a
jne 0x54b52e
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ah, al
xor ah, cl
test cl, cl
mov ecx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ecx, edx
test al, al
mov edi, 0xbf25ae54
cmove ecx, edi
test ah, ah
cmovne ecx, edx
jmp 0x54b52e
mov ecx, dword [esi + 8]
jmp 0x54b52e
mov ecx, 0xffb13445
jmp 0x54b52e
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
mov dword [esi + 8], ecx
imul eax, ecx
test al, 1
sete dh
mov dword [esi + 4], edi
cmp edi, 0xa
setge dl
setl bl
xor bl, dh
jne 0x54b2b5
or dl, al
test dl, 1
je 0x54b2b5
jmp 0x591690
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x54b624
cmp edi, 0x88e9608c
je 0x54b663
cmp edi, 0xdf32ec89
jne 0x54b600
mov ecx, dword [esi + 0x4c]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x54b600
cmp edi, 0x30b7124c
je 0x54b6bc
cmp edi, 0x124998e2
jne 0x54b600
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
test bh, bh
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test cl, cl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bl, bl
cmovne edi, edx
jmp 0x54b600
mov ecx, dword [esi + 0x4c]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea edi, [ecx + 1]
mov dword [esi + 4], ecx
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete cl
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne ecx, ebx
cmp edi, 0xffffffff
mov edi, ecx
cmove edi, ebx
mov dword [esi + 8], edx
cmp edx, 0xa
cmovge edi, ecx
mov ecx, dword [esi + 0x18]
jmp 0x54b600
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 0x40]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x54b70b
cmp ecx, 0x88e9608c
je 0x54b74b
cmp ecx, 0xdf32ec89
jne 0x54b6e7
mov ecx, dword [esi + 0x68]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x54b6e7
cmp ecx, 0x30b7124c
je 0x54b799
cmp ecx, 0x124998e2
jne 0x54b6e7
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x54b6e7
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x54b6e7
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x54b7cd
or cl, al
jne 0x59165a
mov eax, dword [esi + 0x4c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x68]
cmp eax, dword [ecx]
je 0x54bbed
mov ecx, dword [esi + 0x4c]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
mov dword [esi + 8], edx
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edx, 0x2601f5a7
cmovne ebx, edx
test edi, ecx
sete byte [esi + 0x28]
mov edi, ebx
cmove edi, edx
cmp dword [esi + 8], 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov ecx, dword [eax]
mov dword [esi + 8], ecx
cmovge edi, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x54b85b
cmp edx, 0x87fb68d6
je 0x54b897
cmp edx, 0xfc04dcc5
jne 0x54b83c
mov edx, 0x87fb68d6
jmp 0x54b83c
cmp edx, 0x2601f5a7
je 0x54b89b
cmp edx, 0x5a893bc4
jne 0x54b83c
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov ecx, 0xfc04dcc5
cmove edx, ecx
test bh, bh
cmovne edx, eax
jmp 0x54b83c
mov edx, edi
jmp 0x54b83c
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
cmp dword [esi + 8], ecx
je 0x54babe
mov eax, dword [0x5cf6f0]
mov dword [esi + 0xc], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x54b8e1
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x3c]
je 0x54babe
mov eax, dword [esi + 0x34]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete dl
cmp dword [esi + 0x38], 0xa
setge al
setl ah
or al, cl
xor ah, dl
xor al, 1
or al, ah
mov byte [esi + 0x24], al
test al, 1
jne 0x54b9ba
mov eax, dword [esi + 0xc]
lea edx, [eax + 1]
imul edx, eax
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
test ecx, ecx
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
mov edx, 0x1b272c9a
jmp 0x54b954
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x54b96e
cmp edx, 0x4c6ca682
je 0x54b9aa
cmp edx, 0x6707b2cf
jne 0x54b954
jmp 0x54b9b1
cmp edx, 0xf74fd645
je 0x54b952
cmp edx, 0x1b272c9a
jne 0x54b954
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
test dl, dl
mov edx, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edx, ebx
test al, al
mov edi, 0x4c6ca682
cmove edx, edi
test ah, ah
cmovne edx, ebx
jmp 0x54b954
mov edx, 0xf74fd645
jmp 0x54b954
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0xc]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
sete byte [esi + 0x10]
sete ah
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove edx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl bl
mov edi, 0x4c6ca682
cmovge edx, edi
xor bl, ah
mov eax, 0x6707b2cf
cmovne edx, eax
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x54ba16
cmp ebx, 0x4c6ca682
je 0x54ba56
cmp ebx, 0x6707b2cf
jne 0x54b9fc
jmp 0x54ba61
cmp ebx, 0xf74fd645
je 0x54ba5d
cmp ebx, 0x1b272c9a
jne 0x54b9fc
mov ah, byte [esi + 0x10]
movzx ebx, byte [esi + 0x28]
mov al, bl
xor al, ah
test bl, bl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test ah, ah
mov edi, 0x4c6ca682
cmove ebx, edi
test al, al
mov eax, 0xf74fd645
cmovne ebx, eax
jmp 0x54b9fc
mov ebx, 0xf74fd645
jmp 0x54b9fc
mov ebx, edx
jmp 0x54b9fc
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
test byte [esi + 0x24], 1
je 0x54b91d
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x54b8cf
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0xc], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x54b8cf
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [esi + 0x38], 0xa
setge cl
setl ch
xor ch, dl
jne 0x54bae5
or cl, al
test cl, 1
jne 0x591664
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x54bb30
cmp eax, 0xcd5e6053
je 0x54bb8a
cmp eax, 0x18ed46ca
jne 0x54bb0e
mov eax, dword [esi + 0x4c]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x54bb0e
cmp eax, 0x5499d804
je 0x54bbb4
cmp eax, 0x685e39a2
jne 0x54bb0e
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x18ed46ca
mov ebx, 0x5499d804
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x54bb0e
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x54bb0e
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x54b7cd
or cl, al
test cl, 1
je 0x54b7cd
jmp 0x59165a
mov ecx, dword [esi + 0x40]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete bl
setne dl
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl bh
setge dh
mov edi, dword [esi + 0x80]
cmp bh, bl
jne 0x54ac3a
or dh, dl
mov edi, dword [esi + 0x80]
je 0x54ac3a
mov edi, dword [esi + 0x40]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x54bc87
test dl, dl
je 0x54bc3b
mov edi, dword [esi + 0x80]
jmp 0x54ac3a
mov edi, dword [esi + 0x80]
jmp 0x54ac3a
mov dword [esi + 0x5c], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
setne dh
mov dword [esi + 8], ecx
cmp ecx, 0xa
setge dl
mov ebx, edx
xor bl, dh
or dl, dh
xor dl, 1
or dl, bl
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov edi, esp
sub esp, 0x10
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
mov dword [esi + 0x54], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov esp, ecx
push eax
mov dword [esi + 0x68], esp
push eax
mov dword [esi + 0x70], esp
push eax
mov dword [esi + 0x64], esp
test dl, dl
je 0x54bcc4
mov dword [esi + 0x94], edi
mov dword [esi + 0x60], ebx
lea edx, [ebx + 0x10]
mov dword [esi + 0x8c], edx
mov dword [esi + 0x58], ecx
add ecx, 0x10
mov dword [esi + 0x98], ecx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x553d97
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x88], edi
mov dword [esi + 0x80], eax
shr eax, 1
mov dword [esi + 0xc], eax
mov dword [esi + 0x24], 0
mov edi, dword [esi + 0x24]
mov eax, dword [esi + 0xc]
mov dword [esi + 8], eax
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
mov dword [esi + 4], ecx
imul eax, ecx
test al, 1
sete dh
mov ecx, dword [0x5cf6c4]
mov dword [esi + 0xc], ecx
cmp ecx, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x54bd93
or dl, al
test dl, 1
jne 0x59163a
mov edx, dword [esi + 8]
mov eax, edx
imul eax, edi
mov ebx, edi
mulx edi, ecx, edx
add eax, eax
add eax, edi
mov edi, dword [esi + 0x88]
cmp ecx, edi
sbb eax, 0
jae 0x54c36c
sub edi, edx
mov ecx, edi
mov dword [esi + 0x34], edi
mov eax, 0
sbb eax, ebx
mov dword [esi + 0x38], eax
mov edi, edx
add edi, 1
mov dword [esi + 0x48], ebx
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 4], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x40], edx
mov dword [esi + 0x84], eax
mov edx, eax
mov dword [esi + 0x24], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 4]
mov dword [esi + 0xc], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x34]
sub eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x38]
sbb ecx, edx
or ecx, eax
jne 0x54bd55
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x60]
mov ebx, dword [esi + 8]
mov dword [ecx], ebx
mov ebx, dword [esi + 0x48]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x84]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 4]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x54be96
cmp ecx, 0x20e9c049
je 0x54bead
cmp ecx, 0x3b23d0b1
jne 0x54be7c
jmp 0x54bed8
cmp ecx, 0x9c6e8745
je 0x54beb1
cmp ecx, 0xeb760989
jne 0x54be7c
mov ecx, 0x20e9c049
jmp 0x54be7c
mov ecx, eax
jmp 0x54be7c
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x54be7c
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x94]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x8c]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x54bf6e
cmp ecx, 0xcfcad29c
je 0x54bfac
cmp ecx, 0x3aca7e6
jne 0x54bf52
mov ecx, eax
jmp 0x54bf52
cmp ecx, 0x7c4a5f2
je 0x54bfa5
cmp ecx, 0x389c0e25
jne 0x54bf52
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x54bf52
mov ecx, 0x3aca7e6
jmp 0x54bf52
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x5b
mov ecx, dword [esi + 0x94]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x5d
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x94]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x54c054
cmp eax, 0xc6e82640
je 0x54c0c4
cmp eax, 0x950d98a
jne 0x54c014
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x54c014
cmp eax, 0x31a61df5
je 0x54c074
cmp eax, 0x4d86efb0
jne 0x54c014
mov ecx, dword [esi + 0x94]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x54c014
mov ecx, dword [esi + 0x94]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x54c014
mov ebx, dword [esi + 0x58]
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x84]
mov dword [ebx], eax
mov eax, dword [esi + 0x48]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf6cc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
setl dl
mov ebx, 0xeb760989
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x54c144
cmp ecx, 0x20e9c049
je 0x54c15b
cmp ecx, 0x3b23d0b1
jne 0x54c12a
jmp 0x54c18b
cmp ecx, 0x9c6e8745
je 0x54c15f
cmp ecx, 0xeb760989
jne 0x54c12a
mov ecx, 0x20e9c049
jmp 0x54c12a
mov ecx, eax
jmp 0x54c12a
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x54c12a
mov eax, dword [esi + 0x68]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x98]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x58]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x54c223
cmp ecx, 0xcfcad29c
je 0x54c266
cmp ecx, 0x3aca7e6
jne 0x54c207
mov ecx, eax
jmp 0x54c207
cmp ecx, 0x7c4a5f2
je 0x54c25f
cmp ecx, 0x389c0e25
jne 0x54c207
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x54c207
mov ecx, 0x3aca7e6
jmp 0x54c207
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x5b
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x5c
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x54c308
cmp eax, 0xc6e82640
je 0x54bd55
cmp eax, 0x950d98a
jne 0x54c2c8
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x54c2c8
cmp eax, 0x31a61df5
je 0x54c325
cmp eax, 0x4d86efb0
jne 0x54c2c8
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x54c2c8
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x54c2c8
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x54c6b3
mov dword [esi + 0x84], 1
jmp 0x54c3bc
mov ecx, dword [esi + 0x84]
inc ecx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x84], ecx
cmp ecx, edx
jae 0x54c6b3
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0xc], 0xa
setl cl
mov edx, dword [esi + 0x84]
mov dword [esi + 4], edx
test cl, al
jne 0x54c40f
xor cl, al
mov eax, dword [esi + 0x84]
mov dword [esi + 4], eax
jne 0x54c40f
jmp 0x591680
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push ebx
call fcn.00433980
cmp dword [esi + 4], 0
je 0x54c670
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0x24], ecx
mov dword [esi + 0x38], eax
test eax, ecx
sete byte [esi + 0x10]
mov ebx, 0xbf25ae54
mov ecx, 0x20ab24e5
cmove ebx, ecx
sete al
mov dword [esi + 0xc], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ebx, edx
setl dl
xor dl, al
mov eax, dword [esi + 0x3c]
mov edi, dword [eax]
mov eax, dword [esi + 4]
lea edx, [eax + eax*2]
lea eax, [edi + edx*4]
mov dword [esi + 0x34], eax
cmovne ebx, ecx
mov dword [esi + 8], ebx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x54c48e
cmp edx, 0xffb13445
je 0x54c4c5
cmp edx, 0x20ab24e5
jne 0x54c474
jmp 0x54c4d1
cmp edx, 0xbf25ae54
je 0x54c4ca
cmp edx, 0xe6642f9a
jne 0x54c474
movzx ecx, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ch, cl
xor ch, dl
mov eax, 0xbf25ae54
mov ebx, 0xffb13445
cmovne eax, ebx
test dl, dl
mov edx, eax
cmovne edx, ebx
test cl, cl
cmove edx, eax
jmp 0x54c474
mov edx, dword [esi + 8]
jmp 0x54c474
mov edx, 0xffb13445
jmp 0x54c474
mov ecx, dword [esi + 4]
dec ecx
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ebx, dword [eax]
mov edx, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
lea eax, [edi + eax*4]
mov dword [esi + 0x40], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x54c51f
cmp eax, 0xffb13445
je 0x54c55a
cmp eax, 0x20ab24e5
jne 0x54c508
jmp 0x54c566
cmp eax, 0xbf25ae54
je 0x54c55f
cmp eax, 0xe6642f9a
jne 0x54c508
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov dword [esi + 0x48], edx
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
mov edx, dword [esi + 0x48]
jmp 0x54c508
mov eax, dword [esi + 8]
jmp 0x54c508
mov eax, 0xffb13445
jmp 0x54c508
mov eax, dword [esi + 0x40]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
cmp ebx, dword [eax]
sbb edx, dword [eax + 4]
jge 0x54c670
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x54c5aa
cmp eax, 0xffb13445
je 0x54c5df
cmp eax, 0x20ab24e5
jne 0x54c593
jmp 0x54c5eb
cmp eax, 0xbf25ae54
je 0x54c5e4
cmp eax, 0xe6642f9a
jne 0x54c593
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x54c593
mov eax, dword [esi + 8]
jmp 0x54c593
mov eax, 0xffb13445
jmp 0x54c593
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x40]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x54c628
cmp ecx, 0xffb13445
je 0x54c664
cmp ecx, 0x20ab24e5
jne 0x54c60b
jmp 0x54c3f6
cmp ecx, 0xbf25ae54
je 0x54c669
cmp ecx, 0xe6642f9a
jne 0x54c60b
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ah, al
xor ah, cl
test cl, cl
mov ecx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ecx, edx
test al, al
mov edi, 0xbf25ae54
cmove ecx, edi
test ah, ah
cmovne ecx, edx
jmp 0x54c60b
mov ecx, dword [esi + 8]
jmp 0x54c60b
mov ecx, 0xffb13445
jmp 0x54c60b
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
mov dword [esi + 4], ecx
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete ah
mov dword [esi + 0xc], edi
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
jne 0x54c394
or dl, al
je 0x54c394
jmp 0x59168e
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x54c704
cmp edi, 0x88e9608c
je 0x54c749
cmp edi, 0xdf32ec89
jne 0x54c6e0
mov ecx, dword [esi + 0x70]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x54c6e0
cmp edi, 0x30b7124c
je 0x54c7a1
cmp edi, 0x124998e2
jne 0x54c6e0
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, cl
xor bh, bl
test cl, cl
mov edi, 0xdf32ec89
mov ecx, 0x88e9608c
cmovne edi, ecx
test bl, bl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bh, bh
mov ecx, 0x88e9608c
cmovne edi, ecx
jmp 0x54c6e0
mov ecx, dword [esi + 0x70]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx - 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 8], ebx
cmp ebx, 0xa
mov ebx, 0xdf32ec89
cmovge edi, ebx
setl ch
xor ch, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x54c6e0
lea eax, [edx - 1]
imul eax, edx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x54c7f3
cmp ecx, 0x88e9608c
je 0x54c82e
cmp ecx, 0xdf32ec89
jne 0x54c7cc
mov eax, dword [esi + 0x64]
mov ecx, dword [esi + 4]
mov dword [eax], ecx
mov ecx, 0x88e9608c
jmp 0x54c7cc
cmp ecx, 0x30b7124c
je 0x54c882
cmp ecx, 0x124998e2
jne 0x54c7cc
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov eax, 0x88e9608c
cmovne edi, eax
test cl, cl
mov ecx, edi
cmovne ecx, eax
test dl, dl
cmove ecx, edi
jmp 0x54c7cc
mov eax, dword [esi + 0x64]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 4]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov eax, 0x30b7124c
cmovne ebx, eax
test edi, ecx
mov ecx, ebx
cmove ecx, eax
cmp edx, 0xa
cmovge ecx, ebx
mov edx, dword [esi + 0x18]
jmp 0x54c7cc
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x54c8b0
xor cl, al
je 0x591658
mov eax, dword [esi + 0x70]
mov eax, dword [eax]
mov ecx, dword [esi + 0x64]
cmp eax, dword [ecx]
je 0x54ccd2
mov ecx, dword [esi + 0x70]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmovne ebx, edi
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
mov ecx, ebx
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov eax, dword [eax]
mov dword [esi + 8], eax
cmovge ecx, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x54c93c
cmp edx, 0x87fb68d6
je 0x54c978
cmp edx, 0xfc04dcc5
jne 0x54c91d
mov edx, 0x87fb68d6
jmp 0x54c91d
cmp edx, 0x2601f5a7
je 0x54c97c
cmp edx, 0x5a893bc4
jne 0x54c91d
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x54c91d
mov edx, ecx
jmp 0x54c91d
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov dword [esi + 0x40], ecx
cmp dword [esi + 8], ecx
je 0x54cba1
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x54c9c2
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x40]
je 0x54cba1
mov ecx, dword [esi + 0x34]
lea eax, [ecx - 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
setne cl
cmp dword [esi + 0x38], 0xa
setge al
mov edx, eax
xor dl, cl
or al, cl
xor al, 1
or al, dl
jne 0x54caa4
mov edx, dword [esi + 0x24]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
test ecx, ecx
sete dl
mov ebx, dword [esi + 4]
cmp ebx, 0xa
setl ah
xor ah, dl
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
test ecx, ecx
sete byte [esi + 0x10]
mov ecx, edx
cmove ecx, edi
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge ecx, edx
mov edx, 0x1b272c9a
jmp 0x54ca3a
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x54ca54
cmp edx, 0x4c6ca682
je 0x54ca94
cmp edx, 0x6707b2cf
jne 0x54ca3a
jmp 0x54ca9b
cmp edx, 0xf74fd645
je 0x54ca38
cmp edx, 0x1b272c9a
jne 0x54ca3a
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov bl, ah
xor bl, dl
test dl, dl
mov edx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne edx, edi
test ah, ah
mov edi, 0x4c6ca682
cmove edx, edi
test bl, bl
mov edi, 0xf74fd645
cmovne edx, edi
jmp 0x54ca3a
mov edx, 0xf74fd645
jmp 0x54ca3a
mov ecx, dword [esi + 8]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x24]
lea ebx, [edx - 1]
imul ebx, edx
mov edx, ebx
and edx, 1
sete dl
mov ecx, dword [esi + 4]
cmp ecx, 0xa
setl ah
xor ah, dl
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
and ebx, 1
mov dword [esi + 0xc], ebx
sete byte [esi + 0x10]
mov ebx, edx
cmove ebx, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge ebx, edx
mov edx, 0x1b272c9a
cmp edx, 0x4c6ca681
jle 0x54cb05
cmp edx, 0x4c6ca682
je 0x54cb3b
cmp edx, 0x6707b2cf
jne 0x54caeb
jmp 0x54cb46
cmp edx, 0xf74fd645
je 0x54cb42
cmp edx, 0x1b272c9a
jne 0x54caeb
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov dh, ah
xor dh, dl
mov edi, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne edi, ecx
test dl, dl
mov edx, edi
cmovne edx, ecx
test ah, ah
cmove edx, edi
jmp 0x54caeb
mov edx, 0xf74fd645
jmp 0x54caeb
mov edx, ebx
jmp 0x54caeb
mov edx, dword [esi + 8]
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x18]
test al, al
je 0x54c9fc
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x54c9b0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x54c9b0
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x38], 0xa
setl cl
test cl, al
jne 0x54cbc8
xor cl, al
je 0x591666
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x54cc13
cmp eax, 0xcd5e6053
je 0x54cc6f
cmp eax, 0x18ed46ca
jne 0x54cbf1
mov eax, dword [esi + 0x70]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x54cbf1
cmp eax, 0x5499d804
je 0x54cc99
cmp eax, 0x685e39a2
jne 0x54cbf1
mov eax, dword [esi + 0x70]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x18ed46ca
mov edi, 0x5499d804
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x54cbf1
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x54cbf1
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x54c8b0
or cl, al
test cl, 1
je 0x54c8b0
jmp 0x591658
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl dh
mov edi, dword [esi + 0x80]
test dh, dl
jne 0x54bd21
xor dh, dl
mov edi, dword [esi + 0x80]
jne 0x54bd21
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dh
sete bl
mov dword [esi + 8], ecx
cmp ecx, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
test bh, bh
jne 0x54cd6d
test dl, dl
jne 0x54cd1b
mov edi, dword [esi + 0x80]
jmp 0x54bd21
mov edi, dword [esi + 0x80]
jmp 0x54bd21
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete ah
cmp dword [esi + 8], 0xa
setl cl
setge al
cmp cl, ah
jne 0x54cd9c
or al, dl
test al, 1
jne 0x5916c8
mov esp, dword [esi + 0x5c]
mov dword [esi + 0x94], esp
mov eax, dword [0x5d21a8]
mov ecx, dword [0x5d21ac]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x46]
cmp ecx, 0xa
setl byte [esi + 0x47]
mov eax, 0xd31607fa
cmp eax, 0x57676504
jg 0x54ce0e
cmp eax, 0xbf311110
je 0x55ae32
cmp eax, 0xd31607fa
jne 0x54cdce
movzx ecx, byte [esi + 0x46]
movzx eax, byte [esi + 0x47]
mov edx, ecx
xor dl, al
mov edx, 0x5af2d6e3
mov edi, 0x57676505
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x54cdce
cmp eax, 0x57676505
je 0x54ce4d
cmp eax, 0x5af2d6e3
jne 0x54cdce
mov dword [esi + 0x40], esp
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x54ce84
xor cl, al
je 0x54cfa5
jmp 0x54ce84
mov dword [esi + 0x40], esp
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x54d33b
xor cl, al
je 0x54d45c
jmp 0x54d33b
push eax
mov dword [esi + 0x38], esp
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
mov dword [esi + 0x34], ecx
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 4], edi
mov ecx, edi
call fcn.0040cd80
mov edx, dword [0x5cf4b8]
mov ecx, dword [0x5cf4bc]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x8f0f2ca8
mov ebx, 0x11f1fb1a
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x28]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x18]
cmovge eax, edx
mov ecx, 0x13d3b53a
cmp ecx, 0x13d3b539
jg 0x54cf15
cmp ecx, 0x8f0f2ca8
je 0x54cf51
cmp ecx, 0x11f1fb1a
jne 0x54cefb
jmp 0x54cf5c
cmp ecx, 0x1a1c1d98
je 0x54cf58
cmp ecx, 0x13d3b53a
jne 0x54cefb
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x8f0f2ca8
mov ebx, 0x1a1c1d98
cmovne ecx, ebx
test dl, dl
mov edi, 0x8f0f2ca8
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x54cefb
mov ecx, 0x1a1c1d98
jmp 0x54cefb
mov ecx, eax
jmp 0x54cefb
mov edi, dword [esi + 4]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf5f4], 0xa
mov byte [edi], 0
setl ah
setge cl
cmp ah, dl
jne 0x54d088
or cl, al
je 0x54d088
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 8], edi
mov ecx, edi
call fcn.0040cd80
mov eax, dword [0x5cf4b8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4bc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
sete cl
mov eax, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov ebx, 0x8f0f2ca8
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x13d3b53a
jmp 0x54d017
mov ecx, eax
cmp ecx, 0x13d3b539
jg 0x54d031
cmp ecx, 0x8f0f2ca8
je 0x54d068
cmp ecx, 0x11f1fb1a
jne 0x54d017
jmp 0x54d06f
cmp ecx, 0x1a1c1d98
je 0x54d015
cmp ecx, 0x13d3b53a
jne 0x54d017
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov ch, dl
xor ch, cl
mov ebx, 0x8f0f2ca8
mov edi, 0x1a1c1d98
cmovne ebx, edi
test cl, cl
mov ecx, ebx
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
jmp 0x54d017
mov ecx, 0x1a1c1d98
jmp 0x54d017
mov eax, dword [esi + 8]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
jmp 0x54ce84
mov dword [esi + 0x24], 0
cmp dword [esi + 0x24], 0x3e8
je 0x54d2f0
mov ecx, dword [esi + 0x34]
movsx eax, byte [ecx + 1]
movsx edx, byte [ecx]
mov dword [esi + 0xc0], 0x51
push eax
push edx
push dword [esi + 0x38]
call fcn.0041e700
movsx eax, al
mov ecx, dword [esi + 4]
push eax
call fcn.00441240
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf5f4], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x54d0f3
or cl, al
jne 0x54d129
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
setne cl
sete ch
cmp dword [0x5cf5f4], 0xa
setge dl
setl dh
xor dh, ch
jne 0x54d133
or dl, cl
je 0x54d133
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x54d0f3
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
cmp byte [ecx + eax - 1], 0x6f
je 0x54d158
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov ecx, dword [edi + 0x10]
cmp byte [ecx + eax - 1], 0x75
jne 0x54d2b5
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov dword [esi + 8], eax
mov ecx, edi
call fcn.00423280
add eax, dword [edi + 0x10]
mov dword [esi + 0xc], eax
mov edx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x54d19b
xor dh, dl
je 0x5916dc
mov edx, dword [esi + 0xc]
cmp dword [esi + 8], edx
jne 0x54d1b8
jmp 0x54d2cd
mov edx, dword [esi + 8]
inc edx
mov dword [esi + 8], edx
cmp edx, dword [esi + 0xc]
je 0x54d2cd
mov eax, dword [0x5cf5f8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf5fc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xc9893d93
mov edi, 0x603280c6
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0xc9893d93
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0xfc461c64
cmp ecx, 0xfc461c63
jg 0x54d21d
cmp ecx, 0xc9893d93
je 0x54d254
cmp ecx, 0xdac56cfa
jne 0x54d201
mov ecx, eax
jmp 0x54d201
cmp ecx, 0x603280c6
je 0x54d25b
cmp ecx, 0xfc461c64
jne 0x54d201
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov ebx, 0xc9893d93
mov edi, 0xdac56cfa
cmovne ebx, edi
test cl, cl
mov ecx, ebx
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
jmp 0x54d201
mov ecx, 0xdac56cfa
jmp 0x54d201
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x18]
movsx eax, byte [ebx]
push eax
call fcn.005a47b5
add esp, 4
mov ecx, eax
xor cl, 0xf5
and cl, al
mov byte [ebx], cl
mov ecx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete bl
setne dl
cmp eax, 0xa
setl bh
setge dh
cmp bh, bl
jne 0x54d1a8
or dh, dl
je 0x54d1a8
jmp 0x5916b8
mov ecx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
inc dword [esi + 0x24]
test ecx, ecx
sete cl
cmp eax, 0xa
setl al
test cl, al
jne 0x54d08f
xor cl, al
jne 0x54d08f
jmp 0x5916e8
mov ecx, dword [esi + 4]
call fcn.00423280
cmp byte [eax + 0xd7], 0x31
jne 0x550b48
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x550a93
or cl, al
test cl, 1
jne 0x550ac5
jmp 0x550a93
push eax
mov dword [esi + 0x38], esp
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
mov dword [esi + 0x34], ecx
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 4], edi
mov ecx, edi
call fcn.0040cd80
mov edx, dword [0x5cf4b8]
mov ecx, dword [0x5cf4bc]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x8f0f2ca8
mov ebx, 0x11f1fb1a
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x28]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x18]
cmovge eax, edx
mov ecx, 0x13d3b53a
cmp ecx, 0x13d3b539
jg 0x54d3cc
cmp ecx, 0x8f0f2ca8
je 0x54d408
cmp ecx, 0x11f1fb1a
jne 0x54d3b2
jmp 0x54d413
cmp ecx, 0x1a1c1d98
je 0x54d40f
cmp ecx, 0x13d3b53a
jne 0x54d3b2
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x8f0f2ca8
mov ebx, 0x1a1c1d98
cmovne ecx, ebx
test dl, dl
mov edi, 0x8f0f2ca8
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x54d3b2
mov ecx, 0x1a1c1d98
jmp 0x54d3b2
mov ecx, eax
jmp 0x54d3b2
mov edi, dword [esi + 4]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf5f4], 0xa
mov byte [edi], 0
setge cl
setl ah
xor ah, dl
jne 0x54d543
or cl, al
je 0x54d543
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 8], edi
mov ecx, edi
call fcn.0040cd80
mov edx, dword [0x5cf4b8]
mov ecx, dword [0x5cf4bc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x8f0f2ca8
mov ebx, 0x11f1fb1a
cmovne edx, ebx
cmp eax, 0xffffffff
sete byte [esi + 0x28]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x18]
cmovge eax, edx
mov ecx, 0x13d3b53a
jmp 0x54d4d2
mov ecx, eax
cmp ecx, 0x13d3b539
jg 0x54d4ec
cmp ecx, 0x8f0f2ca8
je 0x54d523
cmp ecx, 0x11f1fb1a
jne 0x54d4d2
jmp 0x54d52a
cmp ecx, 0x1a1c1d98
je 0x54d4d0
cmp ecx, 0x13d3b53a
jne 0x54d4d2
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov ch, dl
xor ch, cl
mov ebx, 0x8f0f2ca8
mov edi, 0x1a1c1d98
cmovne ebx, edi
test cl, cl
mov ecx, ebx
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
jmp 0x54d4d2
mov ecx, 0x1a1c1d98
jmp 0x54d4d2
mov eax, dword [esi + 8]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
jmp 0x54d33b
mov dword [esi + 0x24], 0
cmp dword [esi + 0x24], 0x3e8
je 0x54d79a
mov ecx, dword [esi + 0x34]
movsx eax, byte [ecx + 1]
movsx edx, byte [ecx]
mov dword [esi + 0xc0], 0x47
push eax
push edx
push dword [esi + 0x38]
call fcn.0041e700
movsx eax, al
mov ecx, dword [esi + 4]
push eax
call fcn.00441240
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x54d5a8
xor cl, al
je 0x54d5d8
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp dword [0x5cf5f4], 0xa
setl dl
test dl, cl
jne 0x54d5e2
xor dl, cl
jne 0x54d5e2
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x54d5a8
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
cmp byte [ecx + eax - 1], 0x6f
je 0x54d607
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov ecx, dword [edi + 0x10]
cmp byte [ecx + eax - 1], 0x75
jne 0x54d763
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov dword [esi + 8], eax
mov ecx, edi
call fcn.00423280
add eax, dword [edi + 0x10]
mov dword [esi + 0xc], eax
mov edx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x54d64a
xor dh, dl
je 0x5916e6
mov edx, dword [esi + 0xc]
cmp dword [esi + 8], edx
jne 0x54d667
jmp 0x54d777
mov edx, dword [esi + 8]
inc edx
mov dword [esi + 8], edx
cmp edx, dword [esi + 0xc]
je 0x54d777
mov edx, dword [0x5cf5f8]
mov ecx, dword [0x5cf5fc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xc9893d93
mov ebx, 0x603280c6
cmovne edx, ebx
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge eax, edx
mov ecx, 0xfc461c64
cmp ecx, 0xfc461c63
jg 0x54d6d0
cmp ecx, 0xc9893d93
je 0x54d70c
cmp ecx, 0xdac56cfa
jne 0x54d6b4
mov ecx, eax
jmp 0x54d6b4
cmp ecx, 0x603280c6
je 0x54d713
cmp ecx, 0xfc461c64
jne 0x54d6b4
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xc9893d93
mov edi, 0xdac56cfa
cmovne ecx, edi
test dl, dl
mov ebx, 0xc9893d93
cmove ecx, ebx
test dh, dh
cmovne ecx, edi
jmp 0x54d6b4
mov ecx, 0xdac56cfa
jmp 0x54d6b4
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x18]
movsx eax, byte [ebx]
push eax
call fcn.005a47b5
add esp, 4
mov ecx, eax
xor cl, 0xf5
and cl, al
mov byte [ebx], cl
mov edx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea ecx, [edx - 1]
imul ecx, edx
and ecx, 1
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x54d657
xor dh, dl
jne 0x54d657
jmp 0x5916b6
mov edx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea ecx, [edx - 1]
imul ecx, edx
and ecx, 1
inc dword [esi + 0x24]
test ecx, ecx
sete cl
cmp eax, 0xa
setl al
test cl, al
jne 0x54d54a
xor cl, al
jne 0x54d54a
jmp 0x5916da
mov ecx, dword [esi + 4]
call fcn.00423280
cmp byte [eax + 0xd7], 0x31
jne 0x54d888
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x54d7d8
or cl, al
test cl, 1
jne 0x54d809
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [0x5cf5f4], 0xa
setl dl
test dl, cl
jne 0x54d813
xor dl, cl
jne 0x54d813
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x54d7d8
cmp byte [eax + 0x2d0], 0x30
jne 0x54d888
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x54d888
or cl, al
test cl, 1
je 0x54d888
push 0
push 0
mov edi, dword [sym.imp.KERNEL32.dll_Beep]
call edi
push 0
push 0
call edi
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x54d888
xor cl, al
je 0x54d84f
mov ecx, dword [esi + 4]
call fcn.0040ed30
mov esp, dword [esi + 0x40]
mov dword [esi + 0xa0], esp
mov dword [esi + 0x9c], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
sete dh
cmp ecx, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x70], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x54d8c2
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x98], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x54e8e3
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
mov ecx, dword [0x5cf6c0]
lea eax, [ecx - 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x54d98f
xor dl, al
je 0x591716
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x54df56
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x54d954
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 8]
mov dword [ecx], ebx
mov ebx, dword [esi + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x8c]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0xc]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x54da90
cmp ecx, 0x20e9c049
je 0x54daa7
cmp ecx, 0x3b23d0b1
jne 0x54da76
jmp 0x54dad7
cmp ecx, 0x9c6e8745
je 0x54daab
cmp ecx, 0xeb760989
jne 0x54da76
mov ecx, 0x20e9c049
jmp 0x54da76
mov ecx, eax
jmp 0x54da76
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x54da76
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x4c]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x98]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x68]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x54db6e
cmp ecx, 0xcfcad29c
je 0x54dbb1
cmp ecx, 0x3aca7e6
jne 0x54db52
mov ecx, eax
jmp 0x54db52
cmp ecx, 0x7c4a5f2
je 0x54dbaa
cmp ecx, 0x389c0e25
jne 0x54db52
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x54db52
mov ecx, 0x3aca7e6
jmp 0x54db52
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x48
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x4a
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x54dc53
cmp eax, 0xc6e82640
je 0x54dcb6
cmp eax, 0x950d98a
jne 0x54dc13
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x54dc13
cmp eax, 0x31a61df5
je 0x54dc70
cmp eax, 0x4d86efb0
jne 0x54dc13
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x54dc13
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x54dc13
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf6cc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x54dd35
cmp ecx, 0x20e9c049
je 0x54dd4c
cmp ecx, 0x3b23d0b1
jne 0x54dd1b
jmp 0x54dd7c
cmp ecx, 0x9c6e8745
je 0x54dd50
cmp ecx, 0xeb760989
jne 0x54dd1b
mov ecx, 0x20e9c049
jmp 0x54dd1b
mov ecx, eax
jmp 0x54dd1b
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x54dd1b
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x70]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x54de12
cmp ecx, 0xcfcad29c
je 0x54de50
cmp ecx, 0x3aca7e6
jne 0x54ddf6
mov ecx, eax
jmp 0x54ddf6
cmp ecx, 0x7c4a5f2
je 0x54de49
cmp ecx, 0x389c0e25
jne 0x54ddf6
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x54ddf6
mov ecx, 0x3aca7e6
jmp 0x54ddf6
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x48
mov ecx, dword [esi + 0x70]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x49
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x70]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x54def3
cmp eax, 0xc6e82640
je 0x54d954
cmp eax, 0x950d98a
jne 0x54deb3
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x54deb3
cmp eax, 0x31a61df5
je 0x54df10
cmp eax, 0x4d86efb0
jne 0x54deb3
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x54deb3
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x54deb3
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x54e27e
mov dword [esi + 0x58], 1
jmp 0x54df9d
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x54e27e
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x58]
mov dword [esi + 8], edx
test cl, al
jne 0x54dfe7
xor cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 8], eax
jne 0x54dfe7
jmp 0x591838
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0xc]
call fcn.00433980
cmp dword [esi + 8], 0
je 0x54e246
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0xc], ecx
mov dword [esi + 0x24], eax
test eax, ecx
sete byte [esi + 0x10]
mov ecx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove ecx, ebx
sete al
mov dword [esi + 4], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ecx, edx
setl dl
xor dl, al
mov eax, dword [esi + 0x3c]
mov edx, dword [eax]
mov eax, dword [esi + 8]
lea eax, [eax + eax*2]
mov dword [esi + 0x34], edx
lea eax, [edx + eax*4]
mov dword [esi + 0x38], eax
cmovne ecx, ebx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x54e066
cmp edx, 0xffb13445
je 0x54e09d
cmp edx, 0x20ab24e5
jne 0x54e04c
jmp 0x54e0a8
cmp edx, 0xbf25ae54
je 0x54e0a1
cmp edx, 0xe6642f9a
jne 0x54e04c
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
mov ebx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x54e04c
mov edx, ecx
jmp 0x54e04c
mov edx, 0xffb13445
jmp 0x54e04c
mov edx, dword [esi + 8]
dec edx
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax]
mov dword [esi + 0x48], edi
mov eax, dword [eax + 4]
mov dword [esi + 0x40], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov dword [esi + 8], edx
lea eax, [edx + edx*2]
mov edx, dword [esi + 0x34]
lea eax, [edx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x54e0ff
cmp eax, 0xffb13445
je 0x54e134
cmp eax, 0x20ab24e5
jne 0x54e0e8
jmp 0x54e13f
cmp eax, 0xbf25ae54
je 0x54e138
cmp eax, 0xe6642f9a
jne 0x54e0e8
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test bl, bl
cmove eax, edx
jmp 0x54e0e8
mov eax, ecx
jmp 0x54e0e8
mov eax, 0xffb13445
jmp 0x54e0e8
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [esi + 0x48]
cmp edx, dword [eax]
mov edx, dword [esi + 0x40]
sbb edx, dword [eax + 4]
jge 0x54e246
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x54e189
cmp eax, 0xffb13445
je 0x54e1be
cmp eax, 0x20ab24e5
jne 0x54e172
jmp 0x54e1c9
cmp eax, 0xbf25ae54
je 0x54e1c2
cmp eax, 0xe6642f9a
jne 0x54e172
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ebx, edi
test al, al
mov eax, ebx
cmovne eax, edi
test dl, dl
cmove eax, ebx
jmp 0x54e172
mov eax, ecx
jmp 0x54e172
mov eax, 0xffb13445
jmp 0x54e172
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x54e206
cmp eax, 0xffb13445
je 0x54e23b
cmp eax, 0x20ab24e5
jne 0x54e1ec
jmp 0x54dfcc
cmp eax, 0xbf25ae54
je 0x54e23f
cmp eax, 0xe6642f9a
jne 0x54e1ec
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edi, 0xbf25ae54
mov edx, 0xffb13445
cmovne edi, edx
test al, al
mov eax, edi
cmovne eax, edx
test bl, bl
cmove eax, edi
jmp 0x54e1ec
mov eax, ecx
jmp 0x54e1ec
mov eax, 0xffb13445
jmp 0x54e1ec
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
cmp edi, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x54df7b
or dl, al
test dl, 1
je 0x54df7b
jmp 0x5917c6
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x54e2cf
cmp edi, 0x88e9608c
je 0x54e314
cmp edi, 0xdf32ec89
jne 0x54e2ab
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x54e2ab
cmp edi, 0x30b7124c
je 0x54e36b
cmp edi, 0x124998e2
jne 0x54e2ab
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, cl
xor bh, bl
test cl, cl
mov edi, 0xdf32ec89
mov ecx, 0x88e9608c
cmovne edi, ecx
test bl, bl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bh, bh
mov ecx, 0x88e9608c
cmovne edi, ecx
jmp 0x54e2ab
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
imul ecx, edx
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 8], ebx
cmp ebx, 0xa
mov ebx, 0xdf32ec89
cmovge edi, ebx
setl ch
xor ch, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x54e2ab
lea eax, [edx + 1]
imul eax, edx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x54e3b6
cmp ecx, 0x88e9608c
je 0x54e3f6
cmp ecx, 0xdf32ec89
jne 0x54e392
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x54e392
cmp ecx, 0x30b7124c
je 0x54e444
cmp ecx, 0x124998e2
jne 0x54e392
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x54e392
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x54e392
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x54e474
or cl, al
test cl, 1
jne 0x591822
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x54e856
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov eax, dword [eax]
mov dword [esi + 8], eax
mov eax, 0xfc04dcc5
cmovge ecx, eax
xor dl, bl
cmovne ecx, edi
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x54e4fc
cmp edx, 0x87fb68d6
je 0x54e533
cmp edx, 0xfc04dcc5
jne 0x54e4dd
mov edx, 0x87fb68d6
jmp 0x54e4dd
cmp edx, 0x2601f5a7
je 0x54e537
cmp edx, 0x5a893bc4
jne 0x54e4dd
movzx eax, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, al
xor dh, dl
mov ebx, 0xfc04dcc5
mov edi, 0x87fb68d6
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x54e4dd
mov edx, ecx
jmp 0x54e4dd
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x54e753
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x54e57d
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x54e753
mov ecx, dword [esi + 0x40]
lea eax, [ecx - 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x34], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x54e650
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
mov dword [esi + 0xc], ecx
cmp dword [esi + 0xc], 0
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
mov eax, 0x1b272c9a
jmp 0x54e5ef
mov eax, ecx
cmp eax, 0x4c6ca681
jle 0x54e606
cmp eax, 0x4c6ca682
je 0x54e640
cmp eax, 0x6707b2cf
jne 0x54e5ef
jmp 0x54e647
cmp eax, 0xf74fd645
je 0x54e5ed
cmp eax, 0x1b272c9a
jne 0x54e5ef
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, al
xor dh, dl
test al, al
mov eax, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne eax, ebx
test dl, dl
mov edi, 0x4c6ca682
cmove eax, edi
test dh, dh
cmovne eax, ebx
jmp 0x54e5ef
mov eax, 0xf74fd645
jmp 0x54e5ef
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ebx, eax
xor ebx, 0xfffffffe
mov edx, ebx
and edx, eax
sete dl
mov ecx, dword [esi + 4]
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
and ebx, eax
mov dword [esi + 0xc], ebx
sete byte [esi + 0x10]
mov ebx, edx
cmove ebx, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge ebx, edx
mov eax, 0x1b272c9a
cmp eax, 0x4c6ca681
jle 0x54e6b1
cmp eax, 0x4c6ca682
je 0x54e6eb
cmp eax, 0x6707b2cf
jne 0x54e69a
jmp 0x54e6f6
cmp eax, 0xf74fd645
je 0x54e6f2
cmp eax, 0x1b272c9a
jne 0x54e69a
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, al
xor dh, dl
test al, al
mov eax, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne eax, ecx
test dl, dl
mov edi, 0x4c6ca682
cmove eax, edi
test dh, dh
cmovne eax, ecx
jmp 0x54e69a
mov eax, 0xf74fd645
jmp 0x54e69a
mov eax, ebx
jmp 0x54e69a
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x54e5b6
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x54e56b
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x54e56b
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x34], 0xa
setl cl
test cl, al
jne 0x54e779
xor cl, al
je 0x5917ba
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x54e7c4
cmp eax, 0xcd5e6053
je 0x54e827
cmp eax, 0x18ed46ca
jne 0x54e7a2
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x54e7a2
cmp eax, 0x5499d804
je 0x54e444
cmp eax, 0x685e39a2
jne 0x54e7a2
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x18ed46ca
mov edi, 0x5499d804
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x54e7a2
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x54e7a2
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dl
cmp ecx, 0xa
setl dh
mov edi, dword [esi + 0x5c]
test dh, dl
jne 0x54d926
xor dh, dl
mov edi, dword [esi + 0x5c]
jne 0x54d926
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp ecx, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x54e8db
test dl, dl
je 0x54e895
mov edi, dword [esi + 0x5c]
jmp 0x54d926
mov edi, dword [esi + 0x5c]
jmp 0x54d926
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete al
cmp ecx, 0xa
setl cl
test cl, al
jne 0x54e905
xor cl, al
je 0x591834
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp edi, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 0x40], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x68], eax
mov esp, eax
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x70], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x64], eax
mov esp, eax
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x54e930
mov eax, dword [esi + 0x68]
add eax, 0x10
mov dword [esi + 0x98], eax
mov eax, dword [esi + 0x64]
add eax, 0x10
mov dword [esi + 0x80], eax
mov ebx, 0xa
cmp ebx, 0x1f4
jae 0x54f976
mov ecx, dword [esi + 0x40]
call fcn.004322e0
lea eax, [ebx + 1]
imul ebx, eax
shr ebx, 1
mov dword [esi + 0x34], ebx
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
sete ah
setne al
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setl dh
setge dl
cmp dh, ah
jne 0x54ea02
or dl, al
jne 0x5917cc
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x54efd0
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x3c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x3c]
sbb ecx, edx
or ecx, eax
jne 0x54e9c2
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 8]
mov dword [ecx], ebx
mov ebx, dword [esi + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x8c]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0xc]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x54eb03
cmp ecx, 0x20e9c049
je 0x54eb1a
cmp ecx, 0x3b23d0b1
jne 0x54eae9
jmp 0x54eb4a
cmp ecx, 0x9c6e8745
je 0x54eb1e
cmp ecx, 0xeb760989
jne 0x54eae9
mov ecx, 0x20e9c049
jmp 0x54eae9
mov ecx, eax
jmp 0x54eae9
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x54eae9
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x98]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x54ebe0
cmp ecx, 0xcfcad29c
je 0x54ec1e
cmp ecx, 0x3aca7e6
jne 0x54ebc4
mov ecx, eax
jmp 0x54ebc4
cmp ecx, 0x7c4a5f2
je 0x54ec17
cmp ecx, 0x389c0e25
jne 0x54ebc4
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x54ebc4
mov ecx, 0x3aca7e6
jmp 0x54ebc4
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x4b
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x4d
mov ecx, dword [esi + 0x40]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x54ecc6
cmp eax, 0xc6e82640
je 0x54ed2e
cmp eax, 0x950d98a
jne 0x54ec81
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x54ec81
cmp eax, 0x31a61df5
je 0x54ece3
cmp eax, 0x4d86efb0
jne 0x54ec81
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x54ec81
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x54ec81
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
mov edi, dword [0x5cf6cc]
cmp edi, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edx, ebx
test ecx, eax
mov ecx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
sete byte [esi + 0x10]
mov eax, dword [esi + 0x8c]
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov dword [ecx + 0xc], eax
mov eax, edx
cmove eax, ebx
cmp edi, 0xa
setl byte [esi + 0x28]
mov edi, dword [esi + 8]
mov dword [ecx + 8], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x54edb0
cmp ecx, 0x20e9c049
je 0x54edc7
cmp ecx, 0x3b23d0b1
jne 0x54ed96
jmp 0x54edf2
cmp ecx, 0x9c6e8745
je 0x54edcb
cmp ecx, 0xeb760989
jne 0x54ed96
mov ecx, 0x20e9c049
jmp 0x54ed96
mov ecx, eax
jmp 0x54ed96
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x54ed96
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x70]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x54ee88
cmp ecx, 0xcfcad29c
je 0x54eec6
cmp ecx, 0x3aca7e6
jne 0x54ee6c
mov ecx, eax
jmp 0x54ee6c
cmp ecx, 0x7c4a5f2
je 0x54eebf
cmp ecx, 0x389c0e25
jne 0x54ee6c
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x54ee6c
mov ecx, 0x3aca7e6
jmp 0x54ee6c
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x4b
mov ecx, dword [esi + 0x70]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x4c
mov ecx, dword [esi + 0x40]
push dword [esi + 0x70]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x54ef68
cmp eax, 0xc6e82640
je 0x54e9c2
cmp eax, 0x950d98a
jne 0x54ef28
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x54ef28
cmp eax, 0x31a61df5
je 0x54ef85
cmp eax, 0x4d86efb0
jne 0x54ef28
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x54ef28
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x54ef28
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x54f2ff
mov dword [esi + 0x58], 1
jmp 0x54f017
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x54f2ff
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x58]
mov dword [esi + 4], edx
test cl, al
jne 0x54f05f
xor cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 4], eax
jne 0x54f05f
jmp 0x5917c2
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edx
call fcn.00433980
cmp dword [esi + 4], 0
je 0x54f2c2
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax + 1]
imul edi, eax
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete al
cmp ebx, 0xa
setl dl
xor dl, al
mov eax, 0xbf25ae54
mov edx, 0x20ab24e5
cmovne eax, edx
mov dword [esi + 0x24], ecx
test ecx, edi
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
mov dword [esi + 0xc], ebx
cmp ebx, 0xa
cmovge ecx, eax
mov dword [esi + 8], ecx
setl byte [esi + 0x28]
mov eax, dword [esi + 0x40]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
lea edx, [eax + eax*2]
mov dword [esi + 0x34], ecx
lea eax, [ecx + edx*4]
mov dword [esi + 0x38], eax
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x54f0e0
cmp edx, 0xffb13445
je 0x54f11c
cmp edx, 0x20ab24e5
jne 0x54f0c6
jmp 0x54f128
cmp edx, 0xbf25ae54
je 0x54f121
cmp edx, 0xe6642f9a
jne 0x54f0c6
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, dl
xor ah, al
test dl, dl
mov edx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne edx, ecx
test al, al
mov ebx, 0xbf25ae54
cmove edx, ebx
test ah, ah
cmovne edx, ecx
jmp 0x54f0c6
mov edx, dword [esi + 8]
jmp 0x54f0c6
mov edx, 0xffb13445
jmp 0x54f0c6
mov ecx, dword [esi + 4]
dec ecx
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x48], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x3c], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x34]
lea eax, [ecx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x54f17c
cmp eax, 0xffb13445
je 0x54f1b6
cmp eax, 0x20ab24e5
jne 0x54f165
jmp 0x54f1c2
cmp eax, 0xbf25ae54
je 0x54f1bb
cmp eax, 0xe6642f9a
jne 0x54f165
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, al
xor bh, bl
test al, al
mov eax, 0xbf25ae54
mov ecx, 0xffb13445
cmovne eax, ecx
test bl, bl
mov edx, 0xbf25ae54
cmove eax, edx
test bh, bh
cmovne eax, ecx
jmp 0x54f165
mov eax, dword [esi + 8]
jmp 0x54f165
mov eax, 0xffb13445
jmp 0x54f165
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x48]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x3c]
sbb ecx, dword [eax + 4]
jge 0x54f2c2
test dword [esi + 0x24], edi
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x54f209
cmp eax, 0xffb13445
je 0x54f23e
cmp eax, 0x20ab24e5
jne 0x54f1f2
jmp 0x54f24a
cmp eax, 0xbf25ae54
je 0x54f243
cmp eax, 0xe6642f9a
jne 0x54f1f2
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne ebx, ecx
test al, al
mov eax, ebx
cmovne eax, ecx
test dl, dl
cmove eax, ebx
jmp 0x54f1f2
mov eax, dword [esi + 8]
jmp 0x54f1f2
mov eax, 0xffb13445
jmp 0x54f1f2
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x54f281
cmp eax, 0xffb13445
je 0x54f2b6
cmp eax, 0x20ab24e5
jne 0x54f267
jmp 0x54f046
cmp eax, 0xbf25ae54
je 0x54f2bb
cmp eax, 0xe6642f9a
jne 0x54f267
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov edi, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edi, ebx
test al, al
mov eax, edi
cmovne eax, ebx
test cl, cl
cmove eax, edi
jmp 0x54f267
mov eax, dword [esi + 8]
jmp 0x54f267
mov eax, 0xffb13445
jmp 0x54f267
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete ah
setne al
cmp edi, 0xa
setl dh
setge dl
cmp dh, ah
jne 0x54eff5
or dl, al
je 0x54eff5
jmp 0x5917b4
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x54f353
cmp edi, 0x88e9608c
je 0x54f393
cmp edi, 0xdf32ec89
jne 0x54f32f
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x54f32f
cmp edi, 0x30b7124c
je 0x54f3eb
cmp edi, 0x124998e2
jne 0x54f32f
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, cl
xor bh, bl
test cl, cl
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test bl, bl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bh, bh
cmovne edi, edx
jmp 0x54f32f
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
mov dword [esi + 8], edx
lea edi, [ecx + 1]
mov dword [esi + 4], ecx
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov edx, 0x30b7124c
cmovne ebx, edx
test ecx, edi
mov edi, ebx
cmove edi, edx
cmp dword [esi + 8], 0xa
cmovge edi, ebx
mov ecx, dword [esi + 0x18]
jmp 0x54f32f
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x40]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x54f43f
cmp ecx, 0x88e9608c
je 0x54f47f
cmp ecx, 0xdf32ec89
jne 0x54f418
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 4]
mov dword [eax], ecx
mov ecx, 0x88e9608c
jmp 0x54f418
cmp ecx, 0x30b7124c
je 0x54f4d3
cmp ecx, 0x124998e2
jne 0x54f418
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne ecx, edi
test dl, dl
mov eax, 0xdf32ec89
cmove ecx, eax
test dh, dh
cmovne ecx, edi
jmp 0x54f418
mov eax, dword [esi + 0x60]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 4]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov eax, 0x30b7124c
cmovne ebx, eax
test edi, ecx
mov ecx, ebx
cmove ecx, eax
cmp edx, 0xa
cmovge ecx, ebx
mov edx, dword [esi + 0x18]
jmp 0x54f418
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x54f503
or cl, al
test cl, 1
jne 0x591836
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x54f8e4
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov eax, dword [eax]
mov dword [esi + 8], eax
mov eax, 0xfc04dcc5
cmovge ecx, eax
xor dl, bl
cmovne ecx, edi
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x54f58b
cmp edx, 0x87fb68d6
je 0x54f5c2
cmp edx, 0xfc04dcc5
jne 0x54f56c
mov edx, 0x87fb68d6
jmp 0x54f56c
cmp edx, 0x2601f5a7
je 0x54f5c6
cmp edx, 0x5a893bc4
jne 0x54f56c
movzx eax, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, al
xor dh, dl
mov ebx, 0xfc04dcc5
mov edi, 0x87fb68d6
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x54f56c
mov edx, ecx
jmp 0x54f56c
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
cmp dword [esi + 8], ecx
je 0x54f7ef
mov eax, dword [0x5cf6f0]
mov dword [esi + 0xc], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x54f60c
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x3c]
je 0x54f7ef
mov eax, dword [esi + 0x34]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete dl
cmp dword [esi + 0x38], 0xa
setge al
setl ah
or al, cl
xor ah, dl
xor al, 1
or al, ah
mov byte [esi + 0x24], al
test al, 1
jne 0x54f6e9
mov eax, dword [esi + 0xc]
lea edx, [eax + 1]
imul edx, eax
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
test ecx, ecx
sete al
mov edi, dword [esi + 4]
cmp edi, 0xa
setl dl
xor dl, al
mov eax, 0x4c6ca682
mov edx, 0x6707b2cf
cmovne eax, edx
test ecx, ecx
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
cmp edi, 0xa
setl byte [esi + 0x28]
cmovge ecx, eax
mov edx, 0x1b272c9a
jmp 0x54f683
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x54f69d
cmp edx, 0x4c6ca682
je 0x54f6d9
cmp edx, 0x6707b2cf
jne 0x54f683
jmp 0x54f6e0
cmp edx, 0xf74fd645
je 0x54f681
cmp edx, 0x1b272c9a
jne 0x54f683
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, dl
xor ah, al
test dl, dl
mov edx, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edx, ebx
test al, al
mov edi, 0x4c6ca682
cmove edx, edi
test ah, ah
cmovne edx, ebx
jmp 0x54f683
mov edx, 0xf74fd645
jmp 0x54f683
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0xc]
lea ecx, [eax - 1]
imul ecx, eax
mov edx, ecx
and edx, 1
sete dl
mov edi, dword [esi + 4]
cmp edi, 0xa
setl ah
xor ah, dl
mov edx, 0x4c6ca682
mov eax, 0x6707b2cf
cmovne edx, eax
and ecx, 1
sete byte [esi + 0x10]
mov ebx, edx
cmove ebx, eax
cmp edi, 0xa
setl byte [esi + 0x28]
cmovge ebx, edx
mov edx, 0x1b272c9a
cmp edx, 0x4c6ca681
jle 0x54f747
cmp edx, 0x4c6ca682
je 0x54f787
cmp edx, 0x6707b2cf
jne 0x54f72d
jmp 0x54f792
cmp edx, 0xf74fd645
je 0x54f78e
cmp edx, 0x1b272c9a
jne 0x54f72d
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov al, dl
xor al, ah
test dl, dl
mov edx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne edx, edi
test ah, ah
mov edi, 0x4c6ca682
cmove edx, edi
test al, al
mov eax, 0xf74fd645
cmovne edx, eax
jmp 0x54f72d
mov edx, 0xf74fd645
jmp 0x54f72d
mov edx, ebx
jmp 0x54f72d
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
test byte [esi + 0x24], 1
je 0x54f648
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x54f5fa
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0xc], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x54f5fa
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x38], 0xa
setl cl
test cl, al
jne 0x54f815
xor cl, al
je 0x591830
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x54f860
cmp eax, 0xcd5e6053
je 0x54f8ba
cmp eax, 0x18ed46ca
jne 0x54f83e
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x54f83e
cmp eax, 0x5499d804
je 0x54f4d3
cmp eax, 0x685e39a2
jne 0x54f83e
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x54f83e
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x54f83e
mov ecx, dword [esi + 0x40]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete byte [esi + 8]
cmp edi, 0xa
setl ah
setge al
mov ebx, dword [esi + 0x5c]
cmp ah, byte [esi + 8]
jne 0x54e994
or al, dl
mov ebx, dword [esi + 0x5c]
test al, 1
je 0x54e994
mov edi, dword [esi + 0x40]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete bh
cmp edi, 0xa
setge bl
setl al
or bl, dl
xor al, bh
test al, al
jne 0x54f96e
test bl, 1
jne 0x54f927
mov ebx, dword [esi + 0x5c]
jmp 0x54e994
mov ebx, dword [esi + 0x5c]
jmp 0x54e994
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete cl
cmp edi, 0xa
setge al
setl ah
xor ah, cl
jne 0x54f999
or al, dl
test al, 1
jne 0x5917c0
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dh
sete bl
cmp eax, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
xor dl, 1
or dl, bh
push eax
sub esp, 8
mov dword [esi + 8], esp
sub esp, 0xc
mov dword [esi + 0x34], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x40], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x54f9cf
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x98], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x550a26
mov ecx, dword [esi + 8]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x48], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], 0
mov eax, dword [esi + 0x3c]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x54fa9c
or dl, al
test dl, 1
jne 0x59182a
mov edx, dword [esi + 4]
mov eax, edx
imul eax, dword [esi + 0xc]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x48]
sbb eax, 0
jae 0x550075
mov eax, dword [esi + 0x48]
mov edi, dword [esi + 4]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x70], eax
mov eax, 0
mov ebx, dword [esi + 0xc]
sbb eax, ebx
mov dword [esi + 0x4c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0x24], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x3c], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0x38], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x70]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
sbb ecx, edx
or ecx, eax
jne 0x54fa61
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 4]
mov dword [ecx], ebx
mov ebx, dword [esi + 0xc]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x8c]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0x24]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x54fb9d
cmp ecx, 0x20e9c049
je 0x54fbb4
cmp ecx, 0x3b23d0b1
jne 0x54fb83
jmp 0x54fbe4
cmp ecx, 0x9c6e8745
je 0x54fbb8
cmp ecx, 0xeb760989
jne 0x54fb83
mov ecx, 0x20e9c049
jmp 0x54fb83
mov ecx, eax
jmp 0x54fb83
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x54fb83
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x34]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x98]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x54fc7f
cmp ecx, 0xcfcad29c
je 0x54fcbd
cmp ecx, 0x3aca7e6
jne 0x54fc63
mov ecx, eax
jmp 0x54fc63
cmp ecx, 0x7c4a5f2
je 0x54fcb6
cmp ecx, 0x389c0e25
jne 0x54fc63
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x54fc63
mov ecx, 0x3aca7e6
jmp 0x54fc63
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x4e
mov ecx, dword [esi + 0x34]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x50
mov ecx, dword [esi + 8]
push dword [esi + 0x34]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x54fd64
cmp eax, 0xc6e82640
je 0x54fdcc
cmp eax, 0x950d98a
jne 0x54fd1f
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x54fd1f
cmp eax, 0x31a61df5
je 0x54fd81
cmp eax, 0x4d86efb0
jne 0x54fd1f
mov ecx, dword [esi + 0x34]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x54fd1f
mov ecx, dword [esi + 0x34]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x54fd1f
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0x24]
mov dword [ebx + 4], eax
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
mov edx, dword [0x5cf6cc]
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne ecx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, ecx
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 4]
mov dword [ebx + 8], edx
cmovge eax, ecx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x54fe50
cmp ecx, 0x20e9c049
je 0x54fe67
cmp ecx, 0x3b23d0b1
jne 0x54fe36
jmp 0x54fe92
cmp ecx, 0x9c6e8745
je 0x54fe6b
cmp ecx, 0xeb760989
jne 0x54fe36
mov ecx, 0x20e9c049
jmp 0x54fe36
mov ecx, eax
jmp 0x54fe36
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x54fe36
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x40]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x54ff2d
cmp ecx, 0xcfcad29c
je 0x54ff6b
cmp ecx, 0x3aca7e6
jne 0x54ff11
mov ecx, eax
jmp 0x54ff11
cmp ecx, 0x7c4a5f2
je 0x54ff64
cmp ecx, 0x389c0e25
jne 0x54ff11
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x54ff11
mov ecx, 0x3aca7e6
jmp 0x54ff11
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x4e
mov ecx, dword [esi + 0x40]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x4f
mov ecx, dword [esi + 8]
push dword [esi + 0x40]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x55000d
cmp eax, 0xc6e82640
je 0x54fa61
cmp eax, 0x950d98a
jne 0x54ffcd
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x54ffcd
cmp eax, 0x31a61df5
je 0x55002a
cmp eax, 0x4d86efb0
jne 0x54ffcd
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x54ffcd
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x54ffcd
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x5503ad
mov dword [esi + 0x58], 1
jmp 0x5500bc
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x5503ad
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp edi, 0xa
setl ch
setge cl
mov edi, dword [esi + 0x58]
mov dword [esi + 4], edi
cmp ch, dl
jne 0x550107
or cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 4], eax
test cl, 1
je 0x550107
jmp 0x5917c4
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0x24]
call fcn.00433980
cmp dword [esi + 4], 0
je 0x550375
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0x24], ecx
mov dword [esi + 0x38], eax
test eax, ecx
sete byte [esi + 0x10]
mov ecx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove ecx, ebx
sete al
mov dword [esi + 0xc], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ecx, edx
setl dl
xor dl, al
mov eax, dword [esi + 8]
mov edx, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
mov dword [esi + 0x48], edx
lea eax, [edx + eax*4]
mov dword [esi + 0x3c], eax
cmovne ecx, ebx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x550186
cmp edx, 0xffb13445
je 0x5501c2
cmp edx, 0x20ab24e5
jne 0x55016c
jmp 0x5501cd
cmp edx, 0xbf25ae54
je 0x5501c6
cmp edx, 0xe6642f9a
jne 0x55016c
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
test dl, dl
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov ebx, 0xbf25ae54
cmove edx, ebx
test ah, ah
cmovne edx, edi
jmp 0x55016c
mov edx, ecx
jmp 0x55016c
mov edx, 0xffb13445
jmp 0x55016c
mov edx, dword [esi + 4]
dec edx
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax]
mov dword [esi + 0x70], edi
mov eax, dword [eax + 4]
mov dword [esi + 0x4c], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], edx
lea eax, [edx + edx*2]
mov edx, dword [esi + 0x48]
lea eax, [edx + eax*4]
mov dword [esi + 0x48], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x550224
cmp eax, 0xffb13445
je 0x55025e
cmp eax, 0x20ab24e5
jne 0x55020d
jmp 0x550269
cmp eax, 0xbf25ae54
je 0x550262
cmp eax, 0xe6642f9a
jne 0x55020d
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, al
xor bh, bl
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test bl, bl
mov edx, 0xbf25ae54
cmove eax, edx
test bh, bh
cmovne eax, edi
jmp 0x55020d
mov eax, ecx
jmp 0x55020d
mov eax, 0xffb13445
jmp 0x55020d
mov eax, dword [esi + 0x48]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [esi + 0x70]
cmp edx, dword [eax]
mov edx, dword [esi + 0x4c]
sbb edx, dword [eax + 4]
jge 0x550375
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5502b3
cmp eax, 0xffb13445
je 0x5502ed
cmp eax, 0x20ab24e5
jne 0x55029c
jmp 0x5502f8
cmp eax, 0xbf25ae54
je 0x5502f1
cmp eax, 0xe6642f9a
jne 0x55029c
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test dl, dl
mov ebx, 0xbf25ae54
cmove eax, ebx
test dh, dh
cmovne eax, edi
jmp 0x55029c
mov eax, ecx
jmp 0x55029c
mov eax, 0xffb13445
jmp 0x55029c
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x48]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x24], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x550335
cmp eax, 0xffb13445
je 0x55036a
cmp eax, 0x20ab24e5
jne 0x55031b
jmp 0x5500ec
cmp eax, 0xbf25ae54
je 0x55036e
cmp eax, 0xe6642f9a
jne 0x55031b
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edi, 0xbf25ae54
mov edx, 0xffb13445
cmovne edi, edx
test al, al
mov eax, edi
cmovne eax, edx
test bl, bl
cmove eax, edi
jmp 0x55031b
mov eax, ecx
jmp 0x55031b
mov eax, 0xffb13445
jmp 0x55031b
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x55009a
xor dl, al
jne 0x55009a
jmp 0x59181e
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx - 1]
mov dword [esi + 0xc], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x550401
cmp edi, 0x88e9608c
je 0x550440
cmp edi, 0xdf32ec89
jne 0x5503dd
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x5503dd
cmp edi, 0x30b7124c
je 0x550499
cmp edi, 0x124998e2
jne 0x5503dd
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x5503dd
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea edi, [ecx - 1]
mov dword [esi + 0xc], ecx
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete cl
cmp ebx, 0xa
setl dl
xor dl, cl
mov ecx, 0xdf32ec89
mov edx, 0x30b7124c
cmovne ecx, edx
cmp edi, 0xffffffff
mov edi, ecx
cmove edi, edx
mov dword [esi + 4], ebx
cmp ebx, 0xa
cmovge edi, ecx
mov ecx, dword [esi + 0x18]
jmp 0x5503dd
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x5504e8
cmp ecx, 0x88e9608c
je 0x55051f
cmp ecx, 0xdf32ec89
jne 0x5504c4
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x5504c4
cmp ecx, 0x30b7124c
je 0x55056d
cmp ecx, 0x124998e2
jne 0x5504c4
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5504c4
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x5504c4
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x55059d
or cl, al
test cl, 1
jne 0x591824
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x550997
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 0xc], eax
mov eax, dword [eax]
mov dword [esi + 4], eax
mov eax, 0xfc04dcc5
cmovge ecx, eax
xor dl, bl
cmovne ecx, edi
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x550625
cmp edx, 0x87fb68d6
je 0x55065c
cmp edx, 0xfc04dcc5
jne 0x550606
mov edx, 0x87fb68d6
jmp 0x550606
cmp edx, 0x2601f5a7
je 0x550660
cmp edx, 0x5a893bc4
jne 0x550606
movzx eax, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, al
xor dh, dl
mov ebx, 0xfc04dcc5
mov edi, 0x87fb68d6
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x550606
mov edx, ecx
jmp 0x550606
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x4c], ecx
cmp dword [esi + 4], ecx
je 0x550871
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x5506a6
mov eax, dword [esi + 4]
add eax, 8
mov dword [esi + 4], eax
cmp eax, dword [esi + 0x4c]
je 0x550871
mov ecx, dword [esi + 0x48]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x3c], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x55076f
mov eax, dword [esi + 0x24]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
test ecx, ecx
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov ebx, 0x6707b2cf
cmove ecx, ebx
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl dl
mov edi, 0x4c6ca682
cmovge ecx, edi
xor dl, al
cmovne ecx, ebx
mov eax, 0x1b272c9a
jmp 0x55070e
mov eax, ecx
cmp eax, 0x4c6ca681
jle 0x550725
cmp eax, 0x4c6ca682
je 0x55075f
cmp eax, 0x6707b2cf
jne 0x55070e
jmp 0x550766
cmp eax, 0xf74fd645
je 0x55070c
cmp eax, 0x1b272c9a
jne 0x55070e
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne eax, ebx
test dl, dl
mov edi, 0x4c6ca682
cmove eax, edi
test dh, dh
cmovne eax, ebx
jmp 0x55070e
mov eax, 0xf74fd645
jmp 0x55070e
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x24]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and eax, 1
sete al
mov edi, dword [esi + 0xc]
cmp edi, 0xa
setl dl
xor dl, al
mov eax, 0x4c6ca682
mov ebx, 0x6707b2cf
cmovne eax, ebx
and ecx, 1
sete byte [esi + 0x10]
mov edx, eax
cmove edx, ebx
cmp edi, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov eax, 0x1b272c9a
cmp eax, 0x4c6ca681
jle 0x5507ca
cmp eax, 0x4c6ca682
je 0x550809
cmp eax, 0x6707b2cf
jne 0x5507b3
jmp 0x550814
cmp eax, 0xf74fd645
je 0x550810
cmp eax, 0x1b272c9a
jne 0x5507b3
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, al
xor bh, bl
test al, al
mov eax, 0x4c6ca682
mov edi, 0xf74fd645
cmovne eax, edi
test bl, bl
mov edi, 0x4c6ca682
cmove eax, edi
test bh, bh
mov edi, 0xf74fd645
cmovne eax, edi
jmp 0x5507b3
mov eax, 0xf74fd645
jmp 0x5507b3
mov eax, edx
jmp 0x5507b3
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x5506d7
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x550694
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x3c], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x550694
mov ecx, dword [esi + 0x48]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [esi + 0x3c], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x550898
or cl, al
test cl, 1
jne 0x5917bc
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x5508e3
cmp eax, 0xcd5e6053
je 0x55093f
cmp eax, 0x18ed46ca
jne 0x5508c1
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x5508c1
cmp eax, 0x5499d804
je 0x550969
cmp eax, 0x685e39a2
jne 0x5508c1
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x18ed46ca
mov edi, 0x5499d804
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x5508c1
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x5508c1
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ch
xor ch, dl
je 0x550592
jmp 0x55059d
mov ecx, dword [esi + 8]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
cmp eax, 0xa
setl dh
mov edi, dword [esi + 0x5c]
test dh, dl
jne 0x54fa33
xor dh, dl
mov edi, dword [esi + 0x5c]
jne 0x54fa33
mov edi, dword [esi + 8]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp eax, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x550a1e
test dl, dl
je 0x5509d7
mov edi, dword [esi + 0x5c]
jmp 0x54fa33
mov edi, dword [esi + 0x5c]
jmp 0x54fa33
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x550a48
xor al, cl
je 0x5917ea
mov esp, dword [esi + 0xa0]
mov edx, dword [0x5d21a8]
mov ecx, dword [0x5d21ac]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x5af2d6e3
mov edi, 0xbf311110
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x54cdce
mov ecx, dword [esi + 4]
call fcn.00423280
mov edx, dword [0x5cf5f0]
lea ecx, [edx + 1]
imul ecx, edx
test cl, 1
sete dh
cmp dword [0x5cf5f4], 0xa
setl bl
setge dl
cmp bl, dh
jne 0x550acf
or dl, cl
test dl, 1
je 0x550acf
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x550a93
cmp byte [eax + 0x2d0], 0x30
jne 0x550b48
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x550b48
xor cl, al
jne 0x550b48
push 0
push 0
mov edi, dword [sym.imp.KERNEL32.dll_Beep]
call edi
push 0
push 0
call edi
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf5f4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x550b48
or cl, al
jne 0x550b09
mov ecx, dword [esi + 4]
call fcn.0040ed30
mov esp, dword [esi + 0x40]
mov dword [esi + 0xa0], esp
mov dword [esi + 0x9c], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
setne dh
cmp ecx, 0xa
setge dl
mov ebx, edx
xor bl, dh
or dl, dh
xor dl, 1
or dl, bl
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x70], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x550b8b
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x98], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x551c01
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x550c58
or dl, al
test dl, 1
jne 0x591718
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x55122c
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x550c1d
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov edi, dword [esi + 8]
mov dword [ecx], edi
mov edi, dword [esi + 4]
mov dword [ecx + 4], edi
mov edi, dword [esi + 0x8c]
mov dword [ecx + 8], edi
setl byte [esi + 0x28]
mov edi, dword [esi + 0xc]
mov dword [ecx + 0xc], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x550d5e
cmp ecx, 0x20e9c049
je 0x550d75
cmp ecx, 0x3b23d0b1
jne 0x550d44
jmp 0x550da5
cmp ecx, 0x9c6e8745
je 0x550d79
cmp ecx, 0xeb760989
jne 0x550d44
mov ecx, 0x20e9c049
jmp 0x550d44
mov ecx, eax
jmp 0x550d44
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x550d44
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x98]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x550e3b
cmp ecx, 0xcfcad29c
je 0x550e79
cmp ecx, 0x3aca7e6
jne 0x550e1f
mov ecx, eax
jmp 0x550e1f
cmp ecx, 0x7c4a5f2
je 0x550e72
cmp ecx, 0x389c0e25
jne 0x550e1f
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x550e1f
mov ecx, 0x3aca7e6
jmp 0x550e1f
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x52
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x54
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x550f1b
cmp eax, 0xc6e82640
je 0x550f83
cmp eax, 0x950d98a
jne 0x550edb
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x550edb
cmp eax, 0x31a61df5
je 0x550f38
cmp eax, 0x4d86efb0
jne 0x550edb
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x550edb
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x550edb
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
mov edx, dword [0x5cf6cc]
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne ecx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, ecx
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
cmovge eax, ecx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x551007
cmp ecx, 0x20e9c049
je 0x55101e
cmp ecx, 0x3b23d0b1
jne 0x550fed
jmp 0x551049
cmp ecx, 0x9c6e8745
je 0x551022
cmp ecx, 0xeb760989
jne 0x550fed
mov ecx, 0x20e9c049
jmp 0x550fed
mov ecx, eax
jmp 0x550fed
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x550fed
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x70]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x5510e2
cmp ecx, 0xcfcad29c
je 0x551120
cmp ecx, 0x3aca7e6
jne 0x5510c6
mov ecx, eax
jmp 0x5510c6
cmp ecx, 0x7c4a5f2
je 0x551119
cmp ecx, 0x389c0e25
jne 0x5510c6
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5510c6
mov ecx, 0x3aca7e6
jmp 0x5510c6
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x52
mov ecx, dword [esi + 0x70]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x53
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x70]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x5511c8
cmp eax, 0xc6e82640
je 0x550c1d
cmp eax, 0x950d98a
jne 0x551183
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x551183
cmp eax, 0x31a61df5
je 0x5511e5
cmp eax, 0x4d86efb0
jne 0x551183
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x551183
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x551183
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x55155e
mov dword [esi + 0x58], 1
jmp 0x551273
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x55155e
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne al
sete dl
cmp edi, 0xa
setge cl
setl ah
xor ah, dl
mov edx, dword [esi + 0x58]
mov dword [esi + 8], edx
jne 0x5512c3
or cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 8], eax
je 0x5512c3
jmp 0x591816
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0xc]
call fcn.00433980
cmp dword [esi + 8], 0
je 0x551527
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0xc], ecx
mov dword [esi + 0x24], eax
test eax, ecx
sete byte [esi + 0x10]
mov ecx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove ecx, ebx
sete al
mov dword [esi + 4], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ecx, edx
setl dl
xor dl, al
mov eax, dword [esi + 0x3c]
mov edx, dword [eax]
mov eax, dword [esi + 8]
lea eax, [eax + eax*2]
mov dword [esi + 0x34], edx
lea eax, [edx + eax*4]
mov dword [esi + 0x38], eax
cmovne ecx, ebx
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55133f
cmp eax, 0xffb13445
je 0x551374
cmp eax, 0x20ab24e5
jne 0x551328
jmp 0x55137f
cmp eax, 0xbf25ae54
je 0x551378
cmp eax, 0xe6642f9a
jne 0x551328
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ebx, edi
test al, al
mov eax, ebx
cmovne eax, edi
test dl, dl
cmove eax, ebx
jmp 0x551328
mov eax, ecx
jmp 0x551328
mov eax, 0xffb13445
jmp 0x551328
mov edx, dword [esi + 8]
dec edx
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax]
mov dword [esi + 0x48], edi
mov eax, dword [eax + 4]
mov dword [esi + 0x40], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov dword [esi + 8], edx
lea eax, [edx + edx*2]
mov edx, dword [esi + 0x34]
lea eax, [edx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5513d6
cmp eax, 0xffb13445
je 0x551410
cmp eax, 0x20ab24e5
jne 0x5513bf
jmp 0x55141b
cmp eax, 0xbf25ae54
je 0x551414
cmp eax, 0xe6642f9a
jne 0x5513bf
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, al
xor bh, bl
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test bl, bl
mov edx, 0xbf25ae54
cmove eax, edx
test bh, bh
cmovne eax, edi
jmp 0x5513bf
mov eax, ecx
jmp 0x5513bf
mov eax, 0xffb13445
jmp 0x5513bf
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [esi + 0x48]
cmp edx, dword [eax]
mov edx, dword [esi + 0x40]
sbb edx, dword [eax + 4]
jge 0x551527
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x551465
cmp eax, 0xffb13445
je 0x55149f
cmp eax, 0x20ab24e5
jne 0x55144e
jmp 0x5514aa
cmp eax, 0xbf25ae54
je 0x5514a3
cmp eax, 0xe6642f9a
jne 0x55144e
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, al
xor dh, dl
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test dl, dl
mov ebx, 0xbf25ae54
cmove eax, ebx
test dh, dh
cmovne eax, edi
jmp 0x55144e
mov eax, ecx
jmp 0x55144e
mov eax, 0xffb13445
jmp 0x55144e
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5514e7
cmp eax, 0xffb13445
je 0x55151c
cmp eax, 0x20ab24e5
jne 0x5514cd
jmp 0x5512a8
cmp eax, 0xbf25ae54
je 0x551520
cmp eax, 0xe6642f9a
jne 0x5514cd
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edi, 0xbf25ae54
mov edx, 0xffb13445
cmovne edi, edx
test al, al
mov eax, edi
cmovne eax, edx
test bl, bl
cmove eax, edi
jmp 0x5514cd
mov eax, ecx
jmp 0x5514cd
mov eax, 0xffb13445
jmp 0x5514cd
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x551251
xor dl, al
jne 0x551251
jmp 0x5917be
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x5515b1
cmp edi, 0x88e9608c
je 0x5515f1
cmp edi, 0xdf32ec89
jne 0x55158d
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x55158d
cmp edi, 0x30b7124c
je 0x551649
cmp edi, 0x124998e2
jne 0x55158d
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, cl
xor bh, bl
test cl, cl
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test bl, bl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bh, bh
cmovne edi, edx
jmp 0x55158d
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
mov dword [esi + 8], edx
lea edi, [ecx + 1]
mov dword [esi + 4], ecx
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov edx, 0x30b7124c
cmovne ebx, edx
test ecx, edi
mov edi, ebx
cmove edi, edx
cmp dword [esi + 8], 0xa
cmovge edi, ebx
mov ecx, dword [esi + 0x18]
jmp 0x55158d
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x551697
cmp ecx, 0x88e9608c
je 0x5516d7
cmp ecx, 0xdf32ec89
jne 0x551673
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x551673
cmp ecx, 0x30b7124c
je 0x55172a
cmp ecx, 0x124998e2
jne 0x551673
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x551673
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov edi, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne edi, ebx
cmp ecx, 0xffffffff
mov ecx, edi
cmove ecx, ebx
cmp edx, 0xa
cmovge ecx, edi
mov edx, dword [esi + 0x18]
jmp 0x551673
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x551759
xor cl, al
je 0x59181a
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x551b6c
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov edi, dword [eax]
mov dword [esi + 8], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x5517e6
cmp edx, 0x87fb68d6
je 0x55181d
cmp edx, 0xfc04dcc5
jne 0x5517c7
mov edx, 0x87fb68d6
jmp 0x5517c7
cmp edx, 0x2601f5a7
je 0x551821
cmp edx, 0x5a893bc4
jne 0x5517c7
movzx eax, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, al
xor dh, dl
mov ebx, 0xfc04dcc5
mov edi, 0x87fb68d6
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x5517c7
mov edx, ecx
jmp 0x5517c7
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x551a38
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x551867
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x551a38
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x34], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x55193a
mov eax, dword [esi + 0x24]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0xc], ecx
mov ebx, dword [esi + 0xc]
test ebx, ebx
sete al
mov ecx, dword [esi + 4]
cmp ecx, 0xa
setl dl
xor dl, al
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
test ebx, ebx
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge eax, edx
mov ecx, 0x1b272c9a
jmp 0x5518d9
mov ecx, eax
cmp ecx, 0x4c6ca681
jle 0x5518f3
cmp ecx, 0x4c6ca682
je 0x55192a
cmp ecx, 0x6707b2cf
jne 0x5518d9
jmp 0x551931
cmp ecx, 0xf74fd645
je 0x5518d7
cmp ecx, 0x1b272c9a
jne 0x5518d9
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5518d9
mov ecx, 0xf74fd645
jmp 0x5518d9
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ebx, eax
xor ebx, 0xfffffffe
mov edx, ebx
and edx, eax
sete dl
mov ecx, dword [esi + 4]
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
and ebx, eax
mov dword [esi + 0xc], ebx
sete byte [esi + 0x10]
mov ebx, edx
cmove ebx, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge ebx, edx
mov eax, 0x1b272c9a
cmp eax, 0x4c6ca681
jle 0x55199b
cmp eax, 0x4c6ca682
je 0x5519d0
cmp eax, 0x6707b2cf
jne 0x551984
jmp 0x5519db
cmp eax, 0xf74fd645
je 0x5519d7
cmp eax, 0x1b272c9a
jne 0x551984
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov edi, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne edi, ecx
test al, al
mov eax, edi
cmovne eax, ecx
test dl, dl
cmove eax, edi
jmp 0x551984
mov eax, 0xf74fd645
jmp 0x551984
mov eax, ebx
jmp 0x551984
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x55189b
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x551855
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x551855
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
setne al
cmp dword [esi + 0x34], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x551a64
or cl, al
jne 0x59182c
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x551aaf
cmp eax, 0xcd5e6053
je 0x551b05
cmp eax, 0x18ed46ca
jne 0x551a8d
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x551a8d
cmp eax, 0x5499d804
je 0x551b2f
cmp eax, 0x685e39a2
jne 0x551a8d
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x551a8d
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x551a8d
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x551759
or cl, al
je 0x551759
jmp 0x59181a
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete byte [esi + 8]
cmp ecx, 0xa
setge bl
setl bh
xor bh, byte [esi + 8]
mov edi, dword [esi + 0x5c]
jne 0x550bef
or bl, dl
mov edi, dword [esi + 0x5c]
test bl, 1
je 0x550bef
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
setne bl
cmp ecx, 0xa
setl bh
setge dl
or dl, bl
cmp bh, dh
jne 0x551bf9
test dl, dl
jne 0x551baf
mov edi, dword [esi + 0x5c]
jmp 0x550bef
mov edi, dword [esi + 0x5c]
jmp 0x550bef
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete ah
cmp ecx, 0xa
setl cl
setge al
cmp cl, ah
jne 0x551c24
or al, dl
test al, 1
jne 0x5917ce
mov esp, dword [esi + 0x9c]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
setne dh
sete bl
cmp ecx, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
xor dl, 1
or dl, bh
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x70], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x551c5a
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x98], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x552cac
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x551d27
xor dl, al
je 0x591818
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x552304
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x551cec
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov edi, dword [esi + 8]
mov dword [ecx], edi
mov edi, dword [esi + 4]
mov dword [ecx + 4], edi
mov edi, dword [esi + 0x8c]
mov dword [ecx + 8], edi
setl byte [esi + 0x28]
mov edi, dword [esi + 0xc]
mov dword [ecx + 0xc], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x551e2d
cmp ecx, 0x20e9c049
je 0x551e44
cmp ecx, 0x3b23d0b1
jne 0x551e13
jmp 0x551e74
cmp ecx, 0x9c6e8745
je 0x551e48
cmp ecx, 0xeb760989
jne 0x551e13
mov ecx, 0x20e9c049
jmp 0x551e13
mov ecx, eax
jmp 0x551e13
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x551e13
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x98]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x551f0f
cmp ecx, 0xcfcad29c
je 0x551f52
cmp ecx, 0x3aca7e6
jne 0x551ef3
mov ecx, eax
jmp 0x551ef3
cmp ecx, 0x7c4a5f2
je 0x551f4b
cmp ecx, 0x389c0e25
jne 0x551ef3
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x551ef3
mov ecx, 0x3aca7e6
jmp 0x551ef3
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x55
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x57
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x551ff9
cmp eax, 0xc6e82640
je 0x55205d
cmp eax, 0x950d98a
jne 0x551fb4
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x551fb4
cmp eax, 0x31a61df5
je 0x552016
cmp eax, 0x4d86efb0
jne 0x551fb4
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x551fb4
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x551fb4
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
mov edi, dword [0x5cf6cc]
cmp edi, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edx, ebx
test ecx, eax
mov ecx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
sete byte [esi + 0x10]
mov eax, dword [esi + 0x8c]
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov dword [ecx + 0xc], eax
mov eax, edx
cmove eax, ebx
cmp edi, 0xa
setl byte [esi + 0x28]
mov edi, dword [esi + 8]
mov dword [ecx + 8], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x5520df
cmp ecx, 0x20e9c049
je 0x5520f6
cmp ecx, 0x3b23d0b1
jne 0x5520c5
jmp 0x552121
cmp ecx, 0x9c6e8745
je 0x5520fa
cmp ecx, 0xeb760989
jne 0x5520c5
mov ecx, 0x20e9c049
jmp 0x5520c5
mov ecx, eax
jmp 0x5520c5
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5520c5
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x70]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x5521b7
cmp ecx, 0xcfcad29c
je 0x5521fa
cmp ecx, 0x3aca7e6
jne 0x55219b
mov ecx, eax
jmp 0x55219b
cmp ecx, 0x7c4a5f2
je 0x5521f3
cmp ecx, 0x389c0e25
jne 0x55219b
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55219b
mov ecx, 0x3aca7e6
jmp 0x55219b
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x55
mov ecx, dword [esi + 0x70]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x56
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x70]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x55229c
cmp eax, 0xc6e82640
je 0x551cec
cmp eax, 0x950d98a
jne 0x55225c
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x55225c
cmp eax, 0x31a61df5
je 0x5522b9
cmp eax, 0x4d86efb0
jne 0x55225c
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x55225c
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x55225c
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x55262d
mov dword [esi + 0x48], 1
jmp 0x55234b
mov ebx, dword [esi + 0x48]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x48], ebx
cmp ebx, edx
jae 0x55262d
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
setne al
cmp edi, 0xa
setl ah
setge cl
mov edi, dword [esi + 0x48]
mov dword [esi + 4], edi
cmp ah, dl
jne 0x552399
or cl, al
mov eax, dword [esi + 0x48]
mov dword [esi + 4], eax
je 0x552399
jmp 0x591826
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edi
call fcn.00433980
cmp dword [esi + 4], 0
je 0x5525f0
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax + 1]
imul edi, eax
mov eax, edi
and eax, 1
sete al
cmp ebx, 0xa
setl cl
xor cl, al
mov eax, 0xbf25ae54
mov ecx, 0x20ab24e5
cmovne eax, ecx
and edi, 1
sete byte [esi + 0x10]
mov edx, eax
cmove edx, ecx
mov dword [esi + 0xc], ebx
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
mov dword [esi + 0x38], ecx
lea eax, [ecx + eax*4]
mov dword [esi + 0x24], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x552413
cmp eax, 0xffb13445
je 0x552448
cmp eax, 0x20ab24e5
jne 0x5523fc
jmp 0x552454
cmp eax, 0xbf25ae54
je 0x55244d
cmp eax, 0xe6642f9a
jne 0x5523fc
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov ecx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ecx, edx
test al, al
mov eax, ecx
cmovne eax, edx
test bl, bl
cmove eax, ecx
jmp 0x5523fc
mov eax, dword [esi + 8]
jmp 0x5523fc
mov eax, 0xffb13445
jmp 0x5523fc
mov ecx, dword [esi + 4]
dec ecx
test edi, edi
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x40], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x34], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x38]
lea eax, [ecx + eax*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5524a7
cmp eax, 0xffb13445
je 0x5524e1
cmp eax, 0x20ab24e5
jne 0x552490
jmp 0x5524ed
cmp eax, 0xbf25ae54
je 0x5524e6
cmp eax, 0xe6642f9a
jne 0x552490
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, cl
xor ch, al
test al, al
mov eax, 0xbf25ae54
mov ebx, 0xffb13445
cmovne eax, ebx
test cl, cl
mov edx, 0xbf25ae54
cmove eax, edx
test ch, ch
cmovne eax, ebx
jmp 0x552490
mov eax, dword [esi + 8]
jmp 0x552490
mov eax, 0xffb13445
jmp 0x552490
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x40]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x34]
sbb ecx, dword [eax + 4]
jge 0x5525f0
test edi, edi
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x552533
cmp eax, 0xffb13445
je 0x552568
cmp eax, 0x20ab24e5
jne 0x55251c
jmp 0x552574
cmp eax, 0xbf25ae54
je 0x55256d
cmp eax, 0xe6642f9a
jne 0x55251c
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov ebx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ebx, edx
test al, al
mov eax, ebx
cmovne eax, edx
test cl, cl
cmove eax, ebx
jmp 0x55251c
mov eax, dword [esi + 8]
jmp 0x55251c
mov eax, 0xffb13445
jmp 0x55251c
test edi, edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov edi, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5525aa
cmp eax, 0xffb13445
je 0x5525e4
cmp eax, 0x20ab24e5
jne 0x552590
jmp 0x552380
cmp eax, 0xbf25ae54
je 0x5525e9
cmp eax, 0xe6642f9a
jne 0x552590
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, cl
xor ch, al
test al, al
mov eax, 0xbf25ae54
mov ebx, 0xffb13445
cmovne eax, ebx
test cl, cl
mov edx, 0xbf25ae54
cmove eax, edx
test ch, ch
cmovne eax, ebx
jmp 0x552590
mov eax, dword [esi + 8]
jmp 0x552590
mov eax, 0xffb13445
jmp 0x552590
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete ah
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
jne 0x552329
or dl, al
je 0x552329
jmp 0x59182e
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx - 1]
mov dword [esi + 4], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x552681
cmp edi, 0x88e9608c
je 0x5526c0
cmp edi, 0xdf32ec89
jne 0x55265d
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x55265d
cmp edi, 0x30b7124c
je 0x55271a
cmp edi, 0x124998e2
jne 0x55265d
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x55265d
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
mov dword [esi + 4], edx
imul ecx, edx
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 8], ebx
cmp ebx, 0xa
mov edx, 0xdf32ec89
cmovge edi, edx
setl dl
xor dl, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x55265d
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x552769
cmp ecx, 0x88e9608c
je 0x5527a0
cmp ecx, 0xdf32ec89
jne 0x552745
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x552745
cmp ecx, 0x30b7124c
je 0x5527ed
cmp ecx, 0x124998e2
jne 0x552745
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x552745
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x552745
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
jmp 0x55281a
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x552833
xor cl, al
je 0x5917b6
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x552c18
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov edi, dword [eax]
mov dword [esi + 8], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x5528c0
cmp edx, 0x87fb68d6
je 0x5528fc
cmp edx, 0xfc04dcc5
jne 0x5528a1
mov edx, 0x87fb68d6
jmp 0x5528a1
cmp edx, 0x2601f5a7
je 0x552900
cmp edx, 0x5a893bc4
jne 0x5528a1
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, bl
xor bh, dl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x5528a1
mov edx, ecx
jmp 0x5528a1
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x552b1e
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x552946
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x552b1e
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x34], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x552a1d
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
mov dword [esi + 0xc], ecx
cmp dword [esi + 0xc], 0
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
mov ebx, 0x1b272c9a
jmp 0x5529b7
mov ebx, ecx
cmp ebx, 0x4c6ca681
jle 0x5529d1
cmp ebx, 0x4c6ca682
je 0x552a0d
cmp ebx, 0x6707b2cf
jne 0x5529b7
jmp 0x552a14
cmp ebx, 0xf74fd645
je 0x5529b5
cmp ebx, 0x1b272c9a
jne 0x5529b7
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, dl
xor ah, al
test dl, dl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test al, al
mov edx, 0x4c6ca682
cmove ebx, edx
test ah, ah
cmovne ebx, edi
jmp 0x5529b7
mov ebx, 0xf74fd645
jmp 0x5529b7
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
mov dword [esi + 0xc], ecx
sete byte [esi + 0x10]
sete bl
mov eax, 0x4c6ca682
mov edx, 0x6707b2cf
cmove eax, edx
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl bh
mov edi, 0x4c6ca682
cmovge eax, edi
xor bh, bl
cmovne eax, edx
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x552a7b
cmp ebx, 0x4c6ca682
je 0x552ab6
cmp ebx, 0x6707b2cf
jne 0x552a61
jmp 0x552ac1
cmp ebx, 0xf74fd645
je 0x552abd
cmp ebx, 0x1b272c9a
jne 0x552a61
movzx edx, byte [esi + 0x10]
mov dh, byte [esi + 0x28]
mov ebx, edx
xor bl, dh
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test dh, dh
mov ebx, edi
mov ecx, 0xf74fd645
cmovne ebx, ecx
test dl, dl
cmove ebx, edi
jmp 0x552a61
mov ebx, 0xf74fd645
jmp 0x552a61
mov ebx, eax
jmp 0x552a61
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x55297e
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x552934
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x552934
mov ecx, dword [esi + 0x40]
lea eax, [ecx - 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x34], 0xa
setl cl
test cl, al
jne 0x552b45
xor cl, al
je 0x5917c8
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x552b90
cmp eax, 0xcd5e6053
je 0x552be9
cmp eax, 0x18ed46ca
jne 0x552b6e
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x552b6e
cmp eax, 0x5499d804
je 0x552805
cmp eax, 0x685e39a2
jne 0x552b6e
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x552b6e
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x552b6e
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete bl
setne dl
cmp ecx, 0xa
setl bh
setge dh
mov edi, dword [esi + 0x5c]
cmp bh, bl
jne 0x551cbe
or dh, dl
mov edi, dword [esi + 0x5c]
je 0x551cbe
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp ecx, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x552ca4
test dl, dl
je 0x552c5d
mov edi, dword [esi + 0x5c]
jmp 0x551cbe
mov edi, dword [esi + 0x5c]
jmp 0x551cbe
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete ah
cmp ecx, 0xa
setl cl
setge al
cmp cl, ah
jne 0x552ccf
or al, dl
test al, 1
jne 0x5917b2
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp eax, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 8], esp
sub esp, 0xc
mov dword [esi + 0x40], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x3c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x552cf8
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x98], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x553d64
mov ecx, dword [esi + 8]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x48], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x38], eax
mov dword [esi + 0x34], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete ah
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
mov ebx, dword [esi + 0x34]
mov dword [esi + 0xc], ebx
mov ebx, dword [esi + 0x38]
mov dword [esi + 4], ebx
jne 0x552dca
or dl, al
jne 0x5917ca
mov edx, dword [esi + 4]
mov eax, edx
imul eax, dword [esi + 0xc]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x48]
sbb eax, 0
jae 0x553393
mov eax, dword [esi + 0x48]
mov edi, dword [esi + 4]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x70], eax
mov eax, 0
mov ebx, dword [esi + 0xc]
sbb eax, ebx
mov dword [esi + 0x4c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0x24], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x34], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0x38], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x70]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
sbb ecx, edx
or ecx, eax
jne 0x552d8a
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 4]
mov dword [ecx], ebx
mov ebx, dword [esi + 0xc]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x8c]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0x24]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x552ecb
cmp ecx, 0x20e9c049
je 0x552ee2
cmp ecx, 0x3b23d0b1
jne 0x552eb1
jmp 0x552f0d
cmp ecx, 0x9c6e8745
je 0x552ee6
cmp ecx, 0xeb760989
jne 0x552eb1
mov ecx, 0x20e9c049
jmp 0x552eb1
mov ecx, eax
jmp 0x552eb1
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x552eb1
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x40]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x98]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x552fa8
cmp ecx, 0xcfcad29c
je 0x552fe6
cmp ecx, 0x3aca7e6
jne 0x552f8c
mov ecx, eax
jmp 0x552f8c
cmp ecx, 0x7c4a5f2
je 0x552fdf
cmp ecx, 0x389c0e25
jne 0x552f8c
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x552f8c
mov ecx, 0x3aca7e6
jmp 0x552f8c
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x58
mov ecx, dword [esi + 0x40]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x5a
mov ecx, dword [esi + 8]
push dword [esi + 0x40]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x553088
cmp eax, 0xc6e82640
je 0x5530ec
cmp eax, 0x950d98a
jne 0x553048
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x553048
cmp eax, 0x31a61df5
je 0x5530a5
cmp eax, 0x4d86efb0
jne 0x553048
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x553048
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x553048
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0x24]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf6cc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, dword [esi + 4]
mov dword [ebx + 8], ecx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x55316b
cmp ecx, 0x20e9c049
je 0x553182
cmp ecx, 0x3b23d0b1
jne 0x553151
jmp 0x5531b2
cmp ecx, 0x9c6e8745
je 0x553186
cmp ecx, 0xeb760989
jne 0x553151
mov ecx, 0x20e9c049
jmp 0x553151
mov ecx, eax
jmp 0x553151
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x553151
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x3c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x55324b
cmp ecx, 0xcfcad29c
je 0x553289
cmp ecx, 0x3aca7e6
jne 0x55322f
mov ecx, eax
jmp 0x55322f
cmp ecx, 0x7c4a5f2
je 0x553282
cmp ecx, 0x389c0e25
jne 0x55322f
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x55322f
mov ecx, 0x3aca7e6
jmp 0x55322f
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x58
mov ecx, dword [esi + 0x3c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x59
mov ecx, dword [esi + 8]
push dword [esi + 0x3c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x55332b
cmp eax, 0xc6e82640
je 0x552d8a
cmp eax, 0x950d98a
jne 0x5532eb
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x5532eb
cmp eax, 0x31a61df5
je 0x553348
cmp eax, 0x4d86efb0
jne 0x5532eb
mov ecx, dword [esi + 0x3c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x5532eb
mov ecx, dword [esi + 0x3c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x5532eb
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x5536c6
mov dword [esi + 0x58], 1
jmp 0x5533da
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x5536c6
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp edi, 0xa
setl ch
setge cl
mov edi, dword [esi + 0x58]
mov dword [esi + 4], edi
cmp ch, dl
jne 0x553425
or cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 4], eax
test cl, 1
je 0x553425
jmp 0x5917b8
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0x24]
call fcn.00433980
cmp dword [esi + 4], 0
je 0x55368e
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0x24], ecx
mov dword [esi + 0x38], eax
test eax, ecx
sete byte [esi + 0x10]
mov ecx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove ecx, ebx
sete al
mov dword [esi + 0xc], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ecx, edx
setl dl
xor dl, al
mov eax, dword [esi + 8]
mov edx, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
mov dword [esi + 0x48], edx
lea eax, [edx + eax*4]
mov dword [esi + 0x34], eax
cmovne ecx, ebx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x5534a4
cmp edx, 0xffb13445
je 0x5534db
cmp edx, 0x20ab24e5
jne 0x55348a
jmp 0x5534e6
cmp edx, 0xbf25ae54
je 0x5534df
cmp edx, 0xe6642f9a
jne 0x55348a
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
mov ebx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x55348a
mov edx, ecx
jmp 0x55348a
mov edx, 0xffb13445
jmp 0x55348a
mov edx, dword [esi + 4]
dec edx
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax]
mov dword [esi + 0x70], edi
mov eax, dword [eax + 4]
mov dword [esi + 0x4c], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], edx
lea eax, [edx + edx*2]
mov edx, dword [esi + 0x48]
lea eax, [edx + eax*4]
mov dword [esi + 0x48], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55353d
cmp eax, 0xffb13445
je 0x553572
cmp eax, 0x20ab24e5
jne 0x553526
jmp 0x55357d
cmp eax, 0xbf25ae54
je 0x553576
cmp eax, 0xe6642f9a
jne 0x553526
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test bl, bl
cmove eax, edx
jmp 0x553526
mov eax, ecx
jmp 0x553526
mov eax, 0xffb13445
jmp 0x553526
mov eax, dword [esi + 0x48]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [esi + 0x70]
cmp edx, dword [eax]
mov edx, dword [esi + 0x4c]
sbb edx, dword [eax + 4]
jge 0x55368e
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x5535ca
cmp edx, 0xffb13445
je 0x553606
cmp edx, 0x20ab24e5
jne 0x5535b0
jmp 0x553611
cmp edx, 0xbf25ae54
je 0x55360a
cmp edx, 0xe6642f9a
jne 0x5535b0
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, dl
xor ah, al
test dl, dl
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov ebx, 0xbf25ae54
cmove edx, ebx
test ah, ah
cmovne edx, edi
jmp 0x5535b0
mov edx, ecx
jmp 0x5535b0
mov edx, 0xffb13445
jmp 0x5535b0
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x48]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x24], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55364e
cmp eax, 0xffb13445
je 0x553683
cmp eax, 0x20ab24e5
jne 0x553634
jmp 0x55340a
cmp eax, 0xbf25ae54
je 0x553687
cmp eax, 0xe6642f9a
jne 0x553634
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edi, 0xbf25ae54
mov edx, 0xffb13445
cmovne edi, edx
test al, al
mov eax, edi
cmovne eax, edx
test bl, bl
cmove eax, edi
jmp 0x553634
mov eax, ecx
jmp 0x553634
mov eax, 0xffb13445
jmp 0x553634
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x5533b8
xor dl, al
jne 0x5533b8
jmp 0x591832
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx - 1]
mov dword [esi + 0xc], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x55371a
cmp edi, 0x88e9608c
je 0x553759
cmp edi, 0xdf32ec89
jne 0x5536f6
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x5536f6
cmp edi, 0x30b7124c
je 0x5537b1
cmp edi, 0x124998e2
jne 0x5536f6
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
test bh, bh
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test cl, cl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bl, bl
cmovne edi, edx
jmp 0x5536f6
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
mov dword [esi + 4], edx
lea edi, [ecx + 1]
mov dword [esi + 0xc], ecx
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov edx, 0x30b7124c
cmovne ebx, edx
test ecx, edi
mov edi, ebx
cmove edi, edx
cmp dword [esi + 4], 0xa
cmovge edi, ebx
mov ecx, dword [esi + 0x18]
jmp 0x5536f6
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
mov dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x553805
cmp ecx, 0x88e9608c
je 0x553840
cmp ecx, 0xdf32ec89
jne 0x5537de
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0xc]
mov dword [eax], ecx
mov ecx, 0x88e9608c
jmp 0x5537de
cmp ecx, 0x30b7124c
je 0x553894
cmp ecx, 0x124998e2
jne 0x5537de
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov eax, 0x88e9608c
cmovne edi, eax
test cl, cl
mov ecx, edi
cmovne ecx, eax
test dl, dl
cmove ecx, edi
jmp 0x5537de
mov eax, dword [esi + 0x60]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0xc]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov eax, 0x30b7124c
cmovne ebx, eax
test edi, ecx
mov ecx, ebx
cmove ecx, eax
cmp edx, 0xa
cmovge ecx, ebx
mov edx, dword [esi + 0x18]
jmp 0x5537de
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x5538c8
or cl, al
jne 0x59181c
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x553ccf
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 0xc], eax
mov edi, dword [eax]
mov dword [esi + 4], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x553956
cmp edx, 0x87fb68d6
je 0x55398d
cmp edx, 0xfc04dcc5
jne 0x553937
mov edx, 0x87fb68d6
jmp 0x553937
cmp edx, 0x2601f5a7
je 0x553991
cmp edx, 0x5a893bc4
jne 0x553937
movzx eax, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, al
xor dh, dl
mov ebx, 0xfc04dcc5
mov edi, 0x87fb68d6
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x553937
mov edx, ecx
jmp 0x553937
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x4c], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x48], eax
mov dword [esi + 0x70], ecx
cmp dword [esi + 4], ecx
je 0x553ba2
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x5539d7
mov eax, dword [esi + 4]
add eax, 8
mov dword [esi + 4], eax
cmp eax, dword [esi + 0x70]
je 0x553ba2
mov ecx, dword [esi + 0x4c]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x48], 0xa
setl cl
or cl, al
mov byte [esi + 0x34], cl
jne 0x553aa1
mov eax, dword [esi + 0x38]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0x24], ecx
cmp dword [esi + 0x24], 0
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
mov eax, 0x1b272c9a
jmp 0x553a45
mov eax, ecx
cmp eax, 0x4c6ca681
jle 0x553a5c
cmp eax, 0x4c6ca682
je 0x553a91
cmp eax, 0x6707b2cf
jne 0x553a45
jmp 0x553a98
cmp eax, 0xf74fd645
je 0x553a43
cmp eax, 0x1b272c9a
jne 0x553a45
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test al, al
mov eax, edi
cmovne eax, ebx
test dl, dl
cmove eax, edi
jmp 0x553a45
mov eax, 0xf74fd645
jmp 0x553a45
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x38]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
mov dword [esi + 0x24], ecx
sete byte [esi + 0x10]
sete bl
mov eax, 0x4c6ca682
mov ecx, 0x6707b2cf
cmove eax, ecx
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl bh
mov edx, 0x4c6ca682
cmovge eax, edx
xor bh, bl
cmovne eax, ecx
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x553aff
cmp ebx, 0x4c6ca682
je 0x553b3a
cmp ebx, 0x6707b2cf
jne 0x553ae5
jmp 0x553b45
cmp ebx, 0xf74fd645
je 0x553b41
cmp ebx, 0x1b272c9a
jne 0x553ae5
movzx ecx, byte [esi + 0x10]
mov dh, byte [esi + 0x28]
mov dl, cl
xor dl, dh
test dh, dh
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test cl, cl
mov ecx, 0x4c6ca682
cmove ebx, ecx
test dl, dl
cmovne ebx, edi
jmp 0x553ae5
mov ebx, 0xf74fd645
jmp 0x553ae5
mov ebx, eax
jmp 0x553ae5
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x34], 0
je 0x553a0c
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x5539c5
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x4c], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x5539c5
mov ecx, dword [esi + 0x4c]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [esi + 0x48], 0xa
setge cl
setl ch
xor ch, dl
jne 0x553bc9
or cl, al
test cl, 1
jne 0x591828
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x553c14
cmp eax, 0xcd5e6053
je 0x553c70
cmp eax, 0x18ed46ca
jne 0x553bf2
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x553bf2
cmp eax, 0x5499d804
je 0x553c9a
cmp eax, 0x685e39a2
jne 0x553bf2
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x18ed46ca
mov edi, 0x5499d804
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x553bf2
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x553bf2
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf6c4], 0xa
setl ah
setge cl
cmp ah, dl
je 0x5538c0
jmp 0x5538c8
mov ecx, dword [esi + 8]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete byte [esi + 4]
cmp eax, 0xa
setl bh
setge bl
mov edi, dword [esi + 0x5c]
cmp bh, byte [esi + 4]
jne 0x552d5c
or bl, dl
mov edi, dword [esi + 0x5c]
test bl, 1
je 0x552d5c
mov edi, dword [esi + 8]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
setne bl
cmp eax, 0xa
setl bh
setge dl
or dl, bl
cmp bh, dh
jne 0x553d5c
test dl, dl
jne 0x553d12
mov edi, dword [esi + 0x5c]
jmp 0x552d5c
mov edi, dword [esi + 0x5c]
jmp 0x552d5c
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete cl
cmp eax, 0xa
setge al
setl ah
xor ah, cl
jne 0x553d87
or al, dl
test al, 1
jne 0x591820
mov esp, dword [esi + 0xa0]
mov eax, 0x57676505
jmp 0x54cdce
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete al
cmp dword [esi + 8], 0xa
setl cl
test cl, al
jne 0x553dba
xor cl, al
je 0x5916c6
mov esp, dword [esi + 0x5c]
mov dword [esi + 0x94], esp
mov eax, dword [0x5d21a8]
mov ecx, dword [0x5d21ac]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x46]
cmp ecx, 0xa
setl byte [esi + 0x47]
mov eax, 0xd31607fa
cmp eax, 0x57676504
jg 0x553e2b
cmp eax, 0xbf311110
je 0x55ae7d
cmp eax, 0xd31607fa
jne 0x553deb
movzx ecx, byte [esi + 0x46]
movzx eax, byte [esi + 0x47]
mov edx, ecx
xor dl, al
mov edx, 0x5af2d6e3
mov edi, 0x57676505
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x553deb
cmp eax, 0x57676505
je 0x553e6b
cmp eax, 0x5af2d6e3
jne 0x553deb
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
mov dword [esi + 0x40], esp
setl ch
setge cl
cmp ch, dl
jne 0x553ea3
or cl, al
test cl, 1
jne 0x553fb8
jmp 0x553ea3
mov dword [esi + 0x40], esp
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x554352
xor cl, al
je 0x55446e
jmp 0x554352
push eax
mov dword [esi + 0x38], esp
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
mov dword [esi + 0x34], ecx
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 4], edi
mov ecx, edi
call fcn.0040cd80
mov eax, dword [0x5cf4b8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4bc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
sete cl
mov eax, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov ebx, 0x8f0f2ca8
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x13d3b53a
cmp ecx, 0x13d3b539
jg 0x553f32
cmp ecx, 0x8f0f2ca8
je 0x553f69
cmp ecx, 0x11f1fb1a
jne 0x553f18
jmp 0x553f74
cmp ecx, 0x1a1c1d98
je 0x553f70
cmp ecx, 0x13d3b53a
jne 0x553f18
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov ch, dl
xor ch, cl
mov edi, 0x8f0f2ca8
mov ebx, 0x1a1c1d98
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x553f18
mov ecx, 0x1a1c1d98
jmp 0x553f18
mov ecx, eax
jmp 0x553f18
mov eax, dword [esi + 4]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x55409f
xor cl, al
jne 0x55409f
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 8], edi
mov ecx, edi
call fcn.0040cd80
mov edx, dword [0x5cf4b8]
mov ecx, dword [0x5cf4bc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x8f0f2ca8
mov ebx, 0x11f1fb1a
cmovne edx, ebx
cmp eax, 0xffffffff
sete byte [esi + 0x28]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x18]
cmovge eax, edx
mov ecx, 0x13d3b53a
jmp 0x55402e
mov ecx, eax
cmp ecx, 0x13d3b539
jg 0x554048
cmp ecx, 0x8f0f2ca8
je 0x55407f
cmp ecx, 0x11f1fb1a
jne 0x55402e
jmp 0x554086
cmp ecx, 0x1a1c1d98
je 0x55402c
cmp ecx, 0x13d3b53a
jne 0x55402e
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov ch, dl
xor ch, cl
mov ebx, 0x8f0f2ca8
mov edi, 0x1a1c1d98
cmovne ebx, edi
test cl, cl
mov ecx, ebx
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
jmp 0x55402e
mov ecx, 0x1a1c1d98
jmp 0x55402e
mov eax, dword [esi + 8]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
jmp 0x553ea3
mov dword [esi + 0x24], 0
cmp dword [esi + 0x24], 0x3e8
je 0x554309
mov ecx, dword [esi + 0x34]
movsx eax, byte [ecx + 1]
movsx edx, byte [ecx]
mov dword [esi + 0xc0], 0x68
push eax
push edx
push dword [esi + 0x38]
call fcn.0041e700
movsx eax, al
mov ecx, dword [esi + 4]
push eax
call fcn.00441240
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x554105
xor cl, al
je 0x55413b
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete ch
setne cl
cmp dword [0x5cf5f4], 0xa
setl dh
setge dl
cmp dh, ch
jne 0x554145
or dl, cl
je 0x554145
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x554105
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
cmp byte [ecx + eax - 1], 0x6f
je 0x55416a
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov ecx, dword [edi + 0x10]
cmp byte [ecx + eax - 1], 0x75
jne 0x5542cb
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov dword [esi + 8], eax
mov ecx, edi
call fcn.00423280
add eax, dword [edi + 0x10]
mov dword [esi + 0xc], eax
mov ecx, dword [0x5cf5f0]
mov edi, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete dl
cmp edi, 0xa
setl dh
test dh, dl
jne 0x5541b2
xor dh, dl
je 0x5916de
mov eax, dword [esi + 0xc]
cmp dword [esi + 8], eax
jne 0x5541cf
jmp 0x5542e0
mov eax, dword [esi + 8]
inc eax
mov dword [esi + 8], eax
cmp eax, dword [esi + 0xc]
je 0x5542e0
mov eax, dword [0x5cf5f8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf5fc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xc9893d93
mov edi, 0x603280c6
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0xc9893d93
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0xfc461c64
cmp ecx, 0xfc461c63
jg 0x554234
cmp ecx, 0xc9893d93
je 0x554270
cmp ecx, 0xdac56cfa
jne 0x554218
mov ecx, eax
jmp 0x554218
cmp ecx, 0x603280c6
je 0x554277
cmp ecx, 0xfc461c64
jne 0x554218
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xc9893d93
mov edi, 0xdac56cfa
cmovne ecx, edi
test dl, dl
mov ebx, 0xc9893d93
cmove ecx, ebx
test dh, dh
cmovne ecx, edi
jmp 0x554218
mov ecx, 0xdac56cfa
jmp 0x554218
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x18]
movsx eax, byte [ebx]
push eax
call fcn.005a47b5
add esp, 4
and al, 0xa
mov byte [ebx], al
mov ecx, dword [0x5cf5f0]
mov edi, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
and ecx, 1
sete bh
cmp edi, 0xa
setge bl
setl al
xor al, bh
jne 0x5541bf
or bl, dl
test bl, 1
je 0x5541bf
jmp 0x5916b4
mov edx, dword [0x5cf5f0]
mov edi, dword [0x5cf5f4]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
inc dword [esi + 0x24]
test ecx, ecx
sete dl
setne cl
cmp edi, 0xa
setl ah
setge al
cmp dl, ah
jne 0x5540a6
or cl, al
je 0x5540a6
jmp 0x5916e4
mov ecx, dword [esi + 4]
call fcn.00423280
cmp byte [eax + 0xd7], 0x31
jne 0x557c01
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x557b4c
xor cl, al
je 0x557b7e
jmp 0x557b4c
push eax
mov dword [esi + 0x38], esp
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
mov dword [esi + 0x34], ecx
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 4], edi
mov ecx, edi
call fcn.0040cd80
mov edx, dword [0x5cf4b8]
mov ecx, dword [0x5cf4bc]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x8f0f2ca8
mov ebx, 0x11f1fb1a
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x28]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x18]
cmovge eax, edx
mov ecx, 0x13d3b53a
cmp ecx, 0x13d3b539
jg 0x5543e3
cmp ecx, 0x8f0f2ca8
je 0x55441f
cmp ecx, 0x11f1fb1a
jne 0x5543c9
jmp 0x55442a
cmp ecx, 0x1a1c1d98
je 0x554426
cmp ecx, 0x13d3b53a
jne 0x5543c9
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x8f0f2ca8
mov ebx, 0x1a1c1d98
cmovne ecx, ebx
test dl, dl
mov edi, 0x8f0f2ca8
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5543c9
mov ecx, 0x1a1c1d98
jmp 0x5543c9
mov ecx, eax
jmp 0x5543c9
mov eax, dword [esi + 4]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov eax, dword [0x5cf5f0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x554550
xor cl, al
jne 0x554550
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 8], edi
mov ecx, edi
call fcn.0040cd80
mov eax, dword [0x5cf4b8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4bc]
sete byte [esi + 0x28]
sete dl
mov eax, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x18]
setl cl
mov ebx, 0x8f0f2ca8
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x13d3b53a
jmp 0x5544df
mov ecx, eax
cmp ecx, 0x13d3b539
jg 0x5544f9
cmp ecx, 0x8f0f2ca8
je 0x554530
cmp ecx, 0x11f1fb1a
jne 0x5544df
jmp 0x554537
cmp ecx, 0x1a1c1d98
je 0x5544dd
cmp ecx, 0x13d3b53a
jne 0x5544df
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov ch, dl
xor ch, cl
mov ebx, 0x8f0f2ca8
mov edi, 0x1a1c1d98
cmovne ebx, edi
test cl, cl
mov ecx, ebx
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
jmp 0x5544df
mov ecx, 0x1a1c1d98
jmp 0x5544df
mov eax, dword [esi + 8]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
jmp 0x554352
mov dword [esi + 0x24], 0
cmp dword [esi + 0x24], 0x3e8
je 0x5547c0
mov ecx, dword [esi + 0x34]
movsx eax, byte [ecx + 1]
movsx edx, byte [ecx]
mov dword [esi + 0xc0], 0x5e
push eax
push edx
push dword [esi + 0x38]
call fcn.0041e700
movsx eax, al
mov ecx, dword [esi + 4]
push eax
call fcn.00441240
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf5f4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x5545bb
or cl, al
jne 0x5545f1
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
setne cl
sete ch
cmp dword [0x5cf5f4], 0xa
setge dl
setl dh
xor dh, ch
jne 0x5545fb
or dl, cl
je 0x5545fb
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x5545bb
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
cmp byte [ecx + eax - 1], 0x6f
je 0x554620
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov ecx, dword [edi + 0x10]
cmp byte [ecx + eax - 1], 0x75
jne 0x554782
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov dword [esi + 8], eax
mov ecx, edi
call fcn.00423280
mov ecx, dword [0x5cf5f0]
mov ebx, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
add eax, dword [edi + 0x10]
mov dword [esi + 0xc], eax
and ecx, 1
sete al
mov edi, ebx
cmp ebx, 0xa
setge ah
setl bh
xor bh, al
jne 0x55466e
or ah, dl
test ah, 1
jne 0x5916e2
mov eax, dword [esi + 0xc]
cmp dword [esi + 8], eax
jne 0x55468b
jmp 0x554797
mov eax, dword [esi + 8]
inc eax
mov dword [esi + 8], eax
cmp eax, dword [esi + 0xc]
je 0x554797
mov eax, dword [0x5cf5f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf5fc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xc9893d93
mov edi, 0x603280c6
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
setl cl
mov ebx, 0xc9893d93
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0xfc461c64
cmp ecx, 0xfc461c63
jg 0x5546ef
cmp ecx, 0xc9893d93
je 0x554726
cmp ecx, 0xdac56cfa
jne 0x5546d3
mov ecx, eax
jmp 0x5546d3
cmp ecx, 0x603280c6
je 0x55472d
cmp ecx, 0xfc461c64
jne 0x5546d3
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov ebx, 0xc9893d93
mov edi, 0xdac56cfa
cmovne ebx, edi
test cl, cl
mov ecx, ebx
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
jmp 0x5546d3
mov ecx, 0xdac56cfa
jmp 0x5546d3
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x18]
movsx eax, byte [ebx]
push eax
call fcn.005a47b5
add esp, 4
and al, 0xa
mov byte [ebx], al
mov ecx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
and ecx, 1
sete bh
mov edi, eax
cmp eax, 0xa
setge bl
setl al
xor al, bh
jne 0x55467b
or bl, dl
test bl, 1
je 0x55467b
jmp 0x5916b2
mov edx, dword [0x5cf5f0]
mov edi, dword [0x5cf5f4]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
inc dword [esi + 0x24]
test ecx, ecx
setne cl
sete dl
cmp edi, 0xa
setge al
setl ah
xor ah, dl
jne 0x554557
or cl, al
je 0x554557
jmp 0x5916e0
mov ecx, dword [esi + 4]
call fcn.00423280
cmp byte [eax + 0xd7], 0x31
jne 0x5548b7
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x5547fc
xor cl, al
je 0x554832
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete ch
setne cl
cmp dword [0x5cf5f4], 0xa
setl dh
setge dl
cmp dh, ch
jne 0x55483c
or dl, cl
je 0x55483c
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x5547fc
cmp byte [eax + 0x2d0], 0x30
jne 0x5548b7
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x5548b7
or cl, al
test cl, 1
je 0x5548b7
push 0
push 0
mov edi, dword [sym.imp.KERNEL32.dll_Beep]
call edi
push 0
push 0
call edi
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf5f4], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x5548b7
or cl, al
jne 0x554878
mov ecx, dword [esi + 4]
call fcn.0040ed30
mov esp, dword [esi + 0x40]
mov dword [esi + 0xa0], esp
mov dword [esi + 0x9c], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov ecx, dword [0x5cf6c4]
sete dh
cmp ecx, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x70], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x5548f2
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x98], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x555959
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
sete ah
setne al
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setl dh
setge dl
cmp dh, ah
jne 0x5549c4
or dl, al
jne 0x591714
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x554f99
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x554984
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov edi, dword [esi + 8]
mov dword [ecx], edi
mov edi, dword [esi + 4]
mov dword [ecx + 4], edi
mov edi, dword [esi + 0x8c]
mov dword [ecx + 8], edi
setl byte [esi + 0x28]
mov edi, dword [esi + 0xc]
mov dword [ecx + 0xc], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x554aca
cmp ecx, 0x20e9c049
je 0x554ae1
cmp ecx, 0x3b23d0b1
jne 0x554ab0
jmp 0x554b11
cmp ecx, 0x9c6e8745
je 0x554ae5
cmp ecx, 0xeb760989
jne 0x554ab0
mov ecx, 0x20e9c049
jmp 0x554ab0
mov ecx, eax
jmp 0x554ab0
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x554ab0
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x4c]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x98]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x68]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x554ba8
cmp ecx, 0xcfcad29c
je 0x554beb
cmp ecx, 0x3aca7e6
jne 0x554b8c
mov ecx, eax
jmp 0x554b8c
cmp ecx, 0x7c4a5f2
je 0x554be4
cmp ecx, 0x389c0e25
jne 0x554b8c
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x554b8c
mov ecx, 0x3aca7e6
jmp 0x554b8c
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x5f
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x61
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x554c8d
cmp eax, 0xc6e82640
je 0x554cf1
cmp eax, 0x950d98a
jne 0x554c4d
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x554c4d
cmp eax, 0x31a61df5
je 0x554caa
cmp eax, 0x4d86efb0
jne 0x554c4d
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x554c4d
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x554c4d
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf6cc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x554d70
cmp ecx, 0x20e9c049
je 0x554d87
cmp ecx, 0x3b23d0b1
jne 0x554d56
jmp 0x554db2
cmp ecx, 0x9c6e8745
je 0x554d8b
cmp ecx, 0xeb760989
jne 0x554d56
mov ecx, 0x20e9c049
jmp 0x554d56
mov ecx, eax
jmp 0x554d56
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x554d56
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x70]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x80]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x64]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x554e49
cmp ecx, 0xcfcad29c
je 0x554e8c
cmp ecx, 0x3aca7e6
jne 0x554e2d
mov ecx, eax
jmp 0x554e2d
cmp ecx, 0x7c4a5f2
je 0x554e85
cmp ecx, 0x389c0e25
jne 0x554e2d
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x554e2d
mov ecx, 0x3aca7e6
jmp 0x554e2d
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x5f
mov ecx, dword [esi + 0x70]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x60
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x70]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x554f2f
cmp eax, 0xc6e82640
je 0x554984
cmp eax, 0x950d98a
jne 0x554eef
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x554eef
cmp eax, 0x31a61df5
je 0x554f4c
cmp eax, 0x4d86efb0
jne 0x554eef
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x554eef
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x554eef
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x5552d0
mov dword [esi + 0x58], 1
jmp 0x554fe0
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x5552d0
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x58]
mov dword [esi + 8], edx
test cl, al
jne 0x55502a
xor cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 8], eax
jne 0x55502a
jmp 0x5917ec
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0xc]
call fcn.00433980
cmp dword [esi + 8], 0
je 0x555298
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0xc], ecx
mov dword [esi + 0x24], eax
test eax, ecx
sete byte [esi + 0x10]
mov ecx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove ecx, ebx
sete al
mov dword [esi + 4], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ecx, edx
setl dl
xor dl, al
mov eax, dword [esi + 0x3c]
mov edx, dword [eax]
mov eax, dword [esi + 8]
lea eax, [eax + eax*2]
mov dword [esi + 0x34], edx
lea eax, [edx + eax*4]
mov dword [esi + 0x38], eax
cmovne ecx, ebx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x5550a9
cmp edx, 0xffb13445
je 0x5550e5
cmp edx, 0x20ab24e5
jne 0x55508f
jmp 0x5550f0
cmp edx, 0xbf25ae54
je 0x5550e9
cmp edx, 0xe6642f9a
jne 0x55508f
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, dl
xor ah, al
test dl, dl
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov ebx, 0xbf25ae54
cmove edx, ebx
test ah, ah
cmovne edx, edi
jmp 0x55508f
mov edx, ecx
jmp 0x55508f
mov edx, 0xffb13445
jmp 0x55508f
mov edx, dword [esi + 8]
dec edx
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax]
mov dword [esi + 0x48], edi
mov eax, dword [eax + 4]
mov dword [esi + 0x40], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov dword [esi + 8], edx
lea eax, [edx + edx*2]
mov edx, dword [esi + 0x34]
lea eax, [edx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x555147
cmp eax, 0xffb13445
je 0x555181
cmp eax, 0x20ab24e5
jne 0x555130
jmp 0x55518c
cmp eax, 0xbf25ae54
je 0x555185
cmp eax, 0xe6642f9a
jne 0x555130
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, al
xor bh, bl
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test bl, bl
mov edx, 0xbf25ae54
cmove eax, edx
test bh, bh
cmovne eax, edi
jmp 0x555130
mov eax, ecx
jmp 0x555130
mov eax, 0xffb13445
jmp 0x555130
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [esi + 0x48]
cmp edx, dword [eax]
mov edx, dword [esi + 0x40]
sbb edx, dword [eax + 4]
jge 0x555298
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5551d6
cmp eax, 0xffb13445
je 0x555210
cmp eax, 0x20ab24e5
jne 0x5551bf
jmp 0x55521b
cmp eax, 0xbf25ae54
je 0x555214
cmp eax, 0xe6642f9a
jne 0x5551bf
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test dl, dl
mov ebx, 0xbf25ae54
cmove eax, ebx
test dh, dh
cmovne eax, edi
jmp 0x5551bf
mov eax, ecx
jmp 0x5551bf
mov eax, 0xffb13445
jmp 0x5551bf
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x555258
cmp eax, 0xffb13445
je 0x55528d
cmp eax, 0x20ab24e5
jne 0x55523e
jmp 0x55500f
cmp eax, 0xbf25ae54
je 0x555291
cmp eax, 0xe6642f9a
jne 0x55523e
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edi, 0xbf25ae54
mov edx, 0xffb13445
cmovne edi, edx
test al, al
mov eax, edi
cmovne eax, edx
test bl, bl
cmove eax, edi
jmp 0x55523e
mov eax, ecx
jmp 0x55523e
mov eax, 0xffb13445
jmp 0x55523e
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x554fbe
xor dl, al
jne 0x554fbe
jmp 0x5917ee
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x555323
cmp edi, 0x88e9608c
je 0x555362
cmp edi, 0xdf32ec89
jne 0x5552ff
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x5552ff
cmp edi, 0x30b7124c
je 0x5553bc
cmp edi, 0x124998e2
jne 0x5552ff
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x5552ff
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
mov dword [esi + 4], edx
imul ecx, edx
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 8], ebx
cmp ebx, 0xa
mov edx, 0xdf32ec89
cmovge edi, edx
setl dl
xor dl, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x5552ff
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x55540a
cmp ecx, 0x88e9608c
je 0x555441
cmp ecx, 0xdf32ec89
jne 0x5553e6
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x5553e6
cmp ecx, 0x30b7124c
je 0x55548e
cmp ecx, 0x124998e2
jne 0x5553e6
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5553e6
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x5553e6
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x5554c2
or cl, al
jne 0x5917f0
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x5558c7
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov edi, dword [eax]
mov dword [esi + 8], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x55554f
cmp edx, 0x87fb68d6
je 0x55558b
cmp edx, 0xfc04dcc5
jne 0x555530
mov edx, 0x87fb68d6
jmp 0x555530
cmp edx, 0x2601f5a7
je 0x55558f
cmp edx, 0x5a893bc4
jne 0x555530
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, bl
xor bh, dl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x555530
mov edx, ecx
jmp 0x555530
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x555793
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x5555d5
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x555793
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x34], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x55569a
mov eax, dword [esi + 0x24]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
test ecx, ecx
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
mov eax, 0x1b272c9a
jmp 0x55563e
mov eax, ecx
cmp eax, 0x4c6ca681
jle 0x555655
cmp eax, 0x4c6ca682
je 0x55568a
cmp eax, 0x6707b2cf
jne 0x55563e
jmp 0x555691
cmp eax, 0xf74fd645
je 0x55563c
cmp eax, 0x1b272c9a
jne 0x55563e
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test al, al
mov eax, edi
cmovne eax, ebx
test dl, dl
cmove eax, edi
jmp 0x55563e
mov eax, 0xf74fd645
jmp 0x55563e
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x24]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and eax, 1
sete al
mov ebx, dword [esi + 4]
cmp ebx, 0xa
setl dl
xor dl, al
mov eax, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne eax, edi
and ecx, 1
sete byte [esi + 0x10]
mov edx, eax
cmove edx, edi
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov eax, 0x1b272c9a
cmp eax, 0x4c6ca681
jle 0x5556f5
cmp eax, 0x4c6ca682
je 0x55572b
cmp eax, 0x6707b2cf
jne 0x5556de
jmp 0x555736
cmp eax, 0xf74fd645
je 0x555732
cmp eax, 0x1b272c9a
jne 0x5556de
mov ah, byte [esi + 0x10]
mov byte [esi + 0xc], ah
mov al, byte [esi + 0x28]
xor ah, al
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test al, al
mov eax, edi
cmovne eax, ebx
cmp byte [esi + 0xc], 0
cmove eax, edi
jmp 0x5556de
mov eax, 0xf74fd645
jmp 0x5556de
mov eax, edx
jmp 0x5556de
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x555607
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x5555c3
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x5555c3
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
setne al
cmp dword [esi + 0x34], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x5557bf
or cl, al
jne 0x5917e0
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x55580a
cmp eax, 0xcd5e6053
je 0x55585f
cmp eax, 0x18ed46ca
jne 0x5557e8
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x5557e8
cmp eax, 0x5499d804
je 0x55588e
cmp eax, 0x685e39a2
jne 0x5557e8
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x5557e8
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x5557e8
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x5554c2
or cl, al
test cl, 1
je 0x5554c2
jmp 0x5917f0
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
mov edi, dword [esi + 0x5c]
test dh, dl
jne 0x554956
xor dh, dl
mov edi, dword [esi + 0x5c]
jne 0x554956
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
setne bl
cmp ecx, 0xa
setl bh
setge dl
or dl, bl
cmp bh, dh
jne 0x555951
test dl, dl
jne 0x555907
mov edi, dword [esi + 0x5c]
jmp 0x554956
mov edi, dword [esi + 0x5c]
jmp 0x554956
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete al
cmp ecx, 0xa
setl cl
test cl, al
jne 0x55597b
xor cl, al
je 0x5917fe
mov esp, dword [esi + 0x9c]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
setne dh
sete bl
cmp ecx, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
xor dl, 1
or dl, bh
push eax
sub esp, 8
mov dword [esi + 0x40], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x70], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x5559b1
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x98], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x556a16
mov ecx, dword [esi + 0x40]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x555a7d
xor dl, al
je 0x5917f2
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x556044
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x3c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x3c]
sbb ecx, edx
or ecx, eax
jne 0x555a43
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 8]
mov dword [ecx], ebx
mov ebx, dword [esi + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x8c]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0xc]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x555b7e
cmp ecx, 0x20e9c049
je 0x555b95
cmp ecx, 0x3b23d0b1
jne 0x555b64
jmp 0x555bc0
cmp ecx, 0x9c6e8745
je 0x555b99
cmp ecx, 0xeb760989
jne 0x555b64
mov ecx, 0x20e9c049
jmp 0x555b64
mov ecx, eax
jmp 0x555b64
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x555b64
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x98]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x555c56
cmp ecx, 0xcfcad29c
je 0x555c94
cmp ecx, 0x3aca7e6
jne 0x555c3a
mov ecx, eax
jmp 0x555c3a
cmp ecx, 0x7c4a5f2
je 0x555c8d
cmp ecx, 0x389c0e25
jne 0x555c3a
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x555c3a
mov ecx, 0x3aca7e6
jmp 0x555c3a
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x62
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x64
mov ecx, dword [esi + 0x40]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x555d36
cmp eax, 0xc6e82640
je 0x555d99
cmp eax, 0x950d98a
jne 0x555cf6
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x555cf6
cmp eax, 0x31a61df5
je 0x555d53
cmp eax, 0x4d86efb0
jne 0x555cf6
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x555cf6
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x555cf6
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
mov edi, dword [0x5cf6cc]
cmp edi, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edx, ebx
test ecx, eax
mov ecx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
sete byte [esi + 0x10]
mov eax, dword [esi + 0x8c]
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov dword [ecx + 0xc], eax
mov eax, edx
cmove eax, ebx
cmp edi, 0xa
setl byte [esi + 0x28]
mov edi, dword [esi + 8]
mov dword [ecx + 8], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x555e1b
cmp ecx, 0x20e9c049
je 0x555e32
cmp ecx, 0x3b23d0b1
jne 0x555e01
jmp 0x555e5d
cmp ecx, 0x9c6e8745
je 0x555e36
cmp ecx, 0xeb760989
jne 0x555e01
mov ecx, 0x20e9c049
jmp 0x555e01
mov ecx, eax
jmp 0x555e01
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x555e01
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x70]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x555ef6
cmp ecx, 0xcfcad29c
je 0x555f39
cmp ecx, 0x3aca7e6
jne 0x555eda
mov ecx, eax
jmp 0x555eda
cmp ecx, 0x7c4a5f2
je 0x555f32
cmp ecx, 0x389c0e25
jne 0x555eda
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x555eda
mov ecx, 0x3aca7e6
jmp 0x555eda
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x62
mov ecx, dword [esi + 0x70]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x63
mov ecx, dword [esi + 0x40]
push dword [esi + 0x70]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x555fe1
cmp eax, 0xc6e82640
je 0x555a43
cmp eax, 0x950d98a
jne 0x555f9c
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x555f9c
cmp eax, 0x31a61df5
je 0x555ffe
cmp eax, 0x4d86efb0
jne 0x555f9c
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x555f9c
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x555f9c
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x556374
mov dword [esi + 0x58], 1
jmp 0x55608b
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x556374
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp edi, 0xa
setge cl
setl ch
xor ch, dl
mov edx, dword [esi + 0x58]
mov dword [esi + 4], edx
jne 0x5560d4
or cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 4], eax
test cl, 1
je 0x5560d4
jmp 0x5917dc
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edx
call fcn.00433980
cmp dword [esi + 4], 0
je 0x55633c
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax + 1]
imul edi, eax
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete al
cmp ebx, 0xa
setl dl
xor dl, al
mov eax, 0xbf25ae54
mov edx, 0x20ab24e5
cmovne eax, edx
mov dword [esi + 0x24], ecx
test ecx, edi
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
mov dword [esi + 0xc], ebx
cmp ebx, 0xa
cmovge ecx, eax
mov dword [esi + 8], ecx
setl byte [esi + 0x28]
mov eax, dword [esi + 0x40]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
lea edx, [eax + eax*2]
mov dword [esi + 0x34], ecx
lea eax, [ecx + edx*4]
mov dword [esi + 0x38], eax
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x556155
cmp edx, 0xffb13445
je 0x556191
cmp edx, 0x20ab24e5
jne 0x55613b
jmp 0x55619d
cmp edx, 0xbf25ae54
je 0x556196
cmp edx, 0xe6642f9a
jne 0x55613b
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
test dl, dl
mov edx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne edx, ecx
test al, al
mov ebx, 0xbf25ae54
cmove edx, ebx
test ah, ah
cmovne edx, ecx
jmp 0x55613b
mov edx, dword [esi + 8]
jmp 0x55613b
mov edx, 0xffb13445
jmp 0x55613b
mov ecx, dword [esi + 4]
dec ecx
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x48], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x3c], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x34]
lea eax, [ecx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5561f1
cmp eax, 0xffb13445
je 0x556226
cmp eax, 0x20ab24e5
jne 0x5561da
jmp 0x556232
cmp eax, 0xbf25ae54
je 0x55622b
cmp eax, 0xe6642f9a
jne 0x5561da
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne edx, ecx
test al, al
mov eax, edx
cmovne eax, ecx
test bl, bl
cmove eax, edx
jmp 0x5561da
mov eax, dword [esi + 8]
jmp 0x5561da
mov eax, 0xffb13445
jmp 0x5561da
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x48]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x3c]
sbb ecx, dword [eax + 4]
jge 0x55633c
test dword [esi + 0x24], edi
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x55627c
cmp edx, 0xffb13445
je 0x5562b8
cmp edx, 0x20ab24e5
jne 0x556262
jmp 0x5562c4
cmp edx, 0xbf25ae54
je 0x5562bd
cmp edx, 0xe6642f9a
jne 0x556262
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, dl
xor ah, al
test dl, dl
mov edx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne edx, ecx
test al, al
mov ebx, 0xbf25ae54
cmove edx, ebx
test ah, ah
cmovne edx, ecx
jmp 0x556262
mov edx, dword [esi + 8]
jmp 0x556262
mov edx, 0xffb13445
jmp 0x556262
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5562fb
cmp eax, 0xffb13445
je 0x556330
cmp eax, 0x20ab24e5
jne 0x5562e1
jmp 0x5560bb
cmp eax, 0xbf25ae54
je 0x556335
cmp eax, 0xe6642f9a
jne 0x5562e1
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov edi, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edi, ebx
test al, al
mov eax, edi
cmovne eax, ebx
test cl, cl
cmove eax, edi
jmp 0x5562e1
mov eax, dword [esi + 8]
jmp 0x5562e1
mov eax, 0xffb13445
jmp 0x5562e1
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
cmp edi, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x556069
or dl, al
test dl, 1
je 0x556069
jmp 0x5917f4
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x5563c4
cmp edi, 0x88e9608c
je 0x556409
cmp edi, 0xdf32ec89
jne 0x5563a0
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x5563a0
cmp edi, 0x30b7124c
je 0x556461
cmp edi, 0x124998e2
jne 0x5563a0
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, cl
xor bh, bl
test cl, cl
mov edi, 0xdf32ec89
mov ecx, 0x88e9608c
cmovne edi, ecx
test bl, bl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bh, bh
mov ecx, 0x88e9608c
cmovne edi, ecx
jmp 0x5563a0
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 8], ebx
cmp ebx, 0xa
mov ebx, 0xdf32ec89
cmovge edi, ebx
setl ch
xor ch, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x5563a0
lea eax, [edx + 1]
imul eax, edx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 0x40]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x5564ad
cmp ecx, 0x88e9608c
je 0x5564e4
cmp ecx, 0xdf32ec89
jne 0x556489
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x556489
cmp ecx, 0x30b7124c
je 0x556532
cmp ecx, 0x124998e2
jne 0x556489
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x556489
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x556489
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x556560
xor cl, al
je 0x5917f6
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x556989
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmovne ebx, edi
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
mov edi, ebx
mov ecx, 0x2601f5a7
cmove edi, ecx
cmp edx, 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov ecx, dword [eax]
mov dword [esi + 8], ecx
cmovge edi, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x5565f1
cmp edx, 0x87fb68d6
je 0x556628
cmp edx, 0xfc04dcc5
jne 0x5565d2
mov edx, 0x87fb68d6
jmp 0x5565d2
cmp edx, 0x2601f5a7
je 0x55662c
cmp edx, 0x5a893bc4
jne 0x5565d2
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, bl
xor dh, dl
mov ecx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne ecx, eax
test dl, dl
mov edx, ecx
cmovne edx, eax
test bl, bl
cmove edx, ecx
jmp 0x5565d2
mov edx, edi
jmp 0x5565d2
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
cmp dword [esi + 8], ecx
je 0x55684d
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x556672
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x3c]
je 0x55684d
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
setne cl
cmp dword [esi + 0x38], 0xa
setge al
mov edx, eax
xor dl, cl
or al, cl
xor al, 1
or al, dl
jne 0x55674e
mov ecx, dword [esi + 0x24]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
test ecx, ecx
sete dl
mov ebx, dword [esi + 4]
cmp ebx, 0xa
setl ah
xor ah, dl
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
test ecx, ecx
sete byte [esi + 0x10]
mov ecx, edx
cmove ecx, edi
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge ecx, edx
mov edx, 0x1b272c9a
jmp 0x5566ee
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x556708
cmp edx, 0x4c6ca682
je 0x55673e
cmp edx, 0x6707b2cf
jne 0x5566ee
jmp 0x556745
cmp edx, 0xf74fd645
je 0x5566ec
cmp edx, 0x1b272c9a
jne 0x5566ee
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov dh, ah
xor dh, dl
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test dl, dl
mov edx, edi
cmovne edx, ebx
test ah, ah
cmove edx, edi
jmp 0x5566ee
mov edx, 0xf74fd645
jmp 0x5566ee
mov ecx, dword [esi + 8]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov ecx, dword [esi + 0x24]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
mov dword [esi + 0xc], ecx
sete byte [esi + 0x10]
sete ah
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove edx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl bl
mov edi, 0x4c6ca682
cmovge edx, edi
xor bl, ah
mov edi, 0x6707b2cf
cmovne edx, edi
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x5567b1
cmp ebx, 0x4c6ca682
je 0x5567e7
cmp ebx, 0x6707b2cf
jne 0x556797
jmp 0x5567f2
cmp ebx, 0xf74fd645
je 0x5567ee
cmp ebx, 0x1b272c9a
jne 0x556797
mov ah, byte [esi + 0x10]
movzx ebx, byte [esi + 0x28]
mov bh, ah
xor bh, bl
mov edi, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne edi, ecx
test bl, bl
mov ebx, edi
cmovne ebx, ecx
test ah, ah
cmove ebx, edi
jmp 0x556797
mov ebx, 0xf74fd645
jmp 0x556797
mov ebx, edx
jmp 0x556797
mov edx, dword [esi + 8]
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x18]
test al, al
je 0x5566b0
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x556660
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x556660
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [esi + 0x38], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x556874
or cl, al
test cl, 1
jne 0x5917e2
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x5568bf
cmp eax, 0xcd5e6053
je 0x55691d
cmp eax, 0x18ed46ca
jne 0x55689d
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x55689d
cmp eax, 0x5499d804
je 0x55694c
cmp eax, 0x685e39a2
jne 0x55689d
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x18ed46ca
mov ebx, 0x5499d804
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x55689d
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x55689d
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf6c4], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x556560
or cl, al
je 0x556560
jmp 0x5917f6
mov ecx, dword [esi + 0x40]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dl
cmp ecx, 0xa
setl dh
mov edi, dword [esi + 0x5c]
test dh, dl
jne 0x555a15
xor dh, dl
mov edi, dword [esi + 0x5c]
jne 0x555a15
mov edi, dword [esi + 0x40]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp ecx, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x556a0e
test dl, dl
je 0x5569c8
mov edi, dword [esi + 0x5c]
jmp 0x555a15
mov edi, dword [esi + 0x5c]
jmp 0x555a15
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete al
cmp ecx, 0xa
setl cl
test cl, al
jne 0x556a39
xor cl, al
je 0x5917de
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dh
sete bl
mov dword [esi + 4], eax
cmp eax, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
xor dl, 1
or dl, bh
push eax
sub esp, 8
mov dword [esi + 8], esp
sub esp, 0xc
mov dword [esi + 0x40], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x68], eax
mov esp, eax
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x3c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x64], eax
mov esp, eax
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x556a72
mov eax, dword [esi + 0x68]
add eax, 0x10
mov dword [esi + 0x98], eax
mov eax, dword [esi + 0x64]
add eax, 0x10
mov dword [esi + 0x80], eax
mov edi, 0xa
cmp edi, 0x1f4
jae 0x557ae0
mov ecx, dword [esi + 8]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x48], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x38], eax
mov dword [esi + 0x34], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x556b3e
xor dl, al
je 0x5917e4
mov edx, dword [esi + 4]
mov eax, edx
imul eax, dword [esi + 0xc]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x48]
sbb eax, 0
jae 0x557121
mov eax, dword [esi + 0x48]
mov edi, dword [esi + 4]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x70], eax
mov eax, 0
mov ebx, dword [esi + 0xc]
sbb eax, ebx
mov dword [esi + 0x4c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0x24], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x34], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0x38], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x70]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
sbb ecx, edx
or ecx, eax
jne 0x556b04
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov edi, dword [esi + 4]
mov dword [ecx], edi
mov edi, dword [esi + 0xc]
mov dword [ecx + 4], edi
mov edi, dword [esi + 0x8c]
mov dword [ecx + 8], edi
setl byte [esi + 0x28]
mov edi, dword [esi + 0x24]
mov dword [ecx + 0xc], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x556c44
cmp ecx, 0x20e9c049
je 0x556c5b
cmp ecx, 0x3b23d0b1
jne 0x556c2a
jmp 0x556c8b
cmp ecx, 0x9c6e8745
je 0x556c5f
cmp ecx, 0xeb760989
jne 0x556c2a
mov ecx, 0x20e9c049
jmp 0x556c2a
mov ecx, eax
jmp 0x556c2a
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x556c2a
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x40]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x98]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x556d26
cmp ecx, 0xcfcad29c
je 0x556d64
cmp ecx, 0x3aca7e6
jne 0x556d0a
mov ecx, eax
jmp 0x556d0a
cmp ecx, 0x7c4a5f2
je 0x556d5d
cmp ecx, 0x389c0e25
jne 0x556d0a
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x556d0a
mov ecx, 0x3aca7e6
jmp 0x556d0a
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x65
mov ecx, dword [esi + 0x40]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x67
mov ecx, dword [esi + 8]
push dword [esi + 0x40]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x556e0c
cmp eax, 0xc6e82640
je 0x556e70
cmp eax, 0x950d98a
jne 0x556dc7
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x556dc7
cmp eax, 0x31a61df5
je 0x556e29
cmp eax, 0x4d86efb0
jne 0x556dc7
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x556dc7
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x556dc7
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0x24]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf6cc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, dword [esi + 4]
mov dword [ebx + 8], ecx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x556eef
cmp ecx, 0x20e9c049
je 0x556f06
cmp ecx, 0x3b23d0b1
jne 0x556ed5
jmp 0x556f36
cmp ecx, 0x9c6e8745
je 0x556f0a
cmp ecx, 0xeb760989
jne 0x556ed5
mov ecx, 0x20e9c049
jmp 0x556ed5
mov ecx, eax
jmp 0x556ed5
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x556ed5
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x3c]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x80]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x64]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x556fcd
cmp ecx, 0xcfcad29c
je 0x557010
cmp ecx, 0x3aca7e6
jne 0x556fb1
mov ecx, eax
jmp 0x556fb1
cmp ecx, 0x7c4a5f2
je 0x557009
cmp ecx, 0x389c0e25
jne 0x556fb1
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x556fb1
mov ecx, 0x3aca7e6
jmp 0x556fb1
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x65
mov ecx, dword [esi + 0x3c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x66
mov ecx, dword [esi + 8]
push dword [esi + 0x3c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x5570b7
cmp eax, 0xc6e82640
je 0x556b04
cmp eax, 0x950d98a
jne 0x557072
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x557072
cmp eax, 0x31a61df5
je 0x5570d4
cmp eax, 0x4d86efb0
jne 0x557072
mov ecx, dword [esi + 0x3c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x557072
mov ecx, dword [esi + 0x3c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x557072
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x557445
mov dword [esi + 0x70], 1
jmp 0x557168
mov ebx, dword [esi + 0x70]
inc ebx
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x70], ebx
cmp ebx, edx
jae 0x557445
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x70]
mov dword [esi + 0xc], edx
test cl, al
jne 0x5571b1
xor cl, al
mov eax, dword [esi + 0x70]
mov dword [esi + 0xc], eax
jne 0x5571b1
jmp 0x5917e6
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edi
call fcn.00433980
cmp dword [esi + 0xc], 0
je 0x55740d
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax - 1]
imul edi, eax
mov eax, edi
and eax, 1
sete al
cmp ebx, 0xa
setl cl
xor cl, al
mov eax, 0xbf25ae54
mov ecx, 0x20ab24e5
cmovne eax, ecx
and edi, 1
sete byte [esi + 0x10]
mov edx, eax
cmove edx, ecx
mov dword [esi + 0x24], ebx
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov dword [esi + 4], edx
mov eax, dword [esi + 8]
mov ecx, dword [eax]
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*2]
mov dword [esi + 0x34], ecx
lea eax, [ecx + eax*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55722b
cmp eax, 0xffb13445
je 0x557265
cmp eax, 0x20ab24e5
jne 0x557214
jmp 0x557271
cmp eax, 0xbf25ae54
je 0x55726a
cmp eax, 0xe6642f9a
jne 0x557214
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, al
xor bh, bl
test al, al
mov eax, 0xbf25ae54
mov edx, 0xffb13445
cmovne eax, edx
test bl, bl
mov ecx, 0xbf25ae54
cmove eax, ecx
test bh, bh
cmovne eax, edx
jmp 0x557214
mov eax, dword [esi + 4]
jmp 0x557214
mov eax, 0xffb13445
jmp 0x557214
mov ecx, dword [esi + 0xc]
dec ecx
test edi, edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x4c], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x48], eax
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov dword [esi + 0xc], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x34]
lea eax, [ecx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5572c4
cmp eax, 0xffb13445
je 0x5572fe
cmp eax, 0x20ab24e5
jne 0x5572ad
jmp 0x55730a
cmp eax, 0xbf25ae54
je 0x557303
cmp eax, 0xe6642f9a
jne 0x5572ad
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, al
xor ch, cl
test al, al
mov eax, 0xbf25ae54
mov ebx, 0xffb13445
cmovne eax, ebx
test cl, cl
mov edx, 0xbf25ae54
cmove eax, edx
test ch, ch
cmovne eax, ebx
jmp 0x5572ad
mov eax, dword [esi + 4]
jmp 0x5572ad
mov eax, 0xffb13445
jmp 0x5572ad
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x4c]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x48]
sbb ecx, dword [eax + 4]
jge 0x55740d
test edi, edi
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x557350
cmp eax, 0xffb13445
je 0x55738a
cmp eax, 0x20ab24e5
jne 0x557339
jmp 0x557396
cmp eax, 0xbf25ae54
je 0x55738f
cmp eax, 0xe6642f9a
jne 0x557339
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, al
xor ch, cl
test al, al
mov eax, 0xbf25ae54
mov ebx, 0xffb13445
cmovne eax, ebx
test cl, cl
mov edx, 0xbf25ae54
cmove eax, edx
test ch, ch
cmovne eax, ebx
jmp 0x557339
mov eax, dword [esi + 4]
jmp 0x557339
mov eax, 0xffb13445
jmp 0x557339
test edi, edi
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov edi, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5573cc
cmp eax, 0xffb13445
je 0x557401
cmp eax, 0x20ab24e5
jne 0x5573b2
jmp 0x557198
cmp eax, 0xbf25ae54
je 0x557406
cmp eax, 0xe6642f9a
jne 0x5573b2
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov ebx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ebx, edx
test al, al
mov eax, ebx
cmovne eax, edx
test cl, cl
cmove eax, ebx
jmp 0x5573b2
mov eax, dword [esi + 4]
jmp 0x5573b2
mov eax, 0xffb13445
jmp 0x5573b2
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x557146
xor dl, al
jne 0x557146
jmp 0x591800
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x557495
cmp edi, 0x88e9608c
je 0x5574da
cmp edi, 0xdf32ec89
jne 0x557471
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x557471
cmp edi, 0x30b7124c
je 0x557532
cmp edi, 0x124998e2
jne 0x557471
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, cl
xor bh, bl
test cl, cl
mov edi, 0xdf32ec89
mov ecx, 0x88e9608c
cmovne edi, ecx
test bl, bl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bh, bh
mov ecx, 0x88e9608c
cmovne edi, ecx
jmp 0x557471
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx - 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 4], ebx
cmp ebx, 0xa
mov ebx, 0xdf32ec89
cmovge edi, ebx
setl ch
xor ch, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x557471
lea eax, [edx + 1]
imul eax, edx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x55757e
cmp ecx, 0x88e9608c
je 0x5575be
cmp ecx, 0xdf32ec89
jne 0x55755a
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x55755a
cmp ecx, 0x30b7124c
je 0x55760b
cmp ecx, 0x124998e2
jne 0x55755a
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55755a
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x55755a
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x55763b
or cl, al
test cl, 1
jne 0x5917f8
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x557a4c
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
mov dword [esi + 4], edx
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edx, 0x2601f5a7
cmovne ebx, edx
test edi, ecx
sete byte [esi + 0x28]
mov edi, ebx
cmove edi, edx
cmp dword [esi + 4], 0xa
setl byte [esi + 0x18]
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov dword [esi + 4], ecx
cmovge edi, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x5576c9
cmp edx, 0x87fb68d6
je 0x557700
cmp edx, 0xfc04dcc5
jne 0x5576aa
mov edx, 0x87fb68d6
jmp 0x5576aa
cmp edx, 0x2601f5a7
je 0x557704
cmp edx, 0x5a893bc4
jne 0x5576aa
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, bl
xor dh, dl
mov ecx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne ecx, eax
test dl, dl
mov edx, ecx
cmovne edx, eax
test bl, bl
cmove edx, ecx
jmp 0x5576aa
mov edx, edi
jmp 0x5576aa
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x4c], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x48], eax
mov dword [esi + 0x70], ecx
cmp dword [esi + 4], ecx
je 0x557923
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x55774a
mov eax, dword [esi + 4]
add eax, 8
mov dword [esi + 4], eax
cmp eax, dword [esi + 0x70]
je 0x557923
mov ecx, dword [esi + 0x4c]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x48], 0xa
setl cl
or cl, al
mov byte [esi + 0x34], cl
jne 0x557822
mov ecx, dword [esi + 0x38]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
mov dword [esi + 0x24], ecx
cmp dword [esi + 0x24], 0
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
mov ebx, 0x1b272c9a
jmp 0x5577bc
mov ebx, ecx
cmp ebx, 0x4c6ca681
jle 0x5577d6
cmp ebx, 0x4c6ca682
je 0x557812
cmp ebx, 0x6707b2cf
jne 0x5577bc
jmp 0x557819
cmp ebx, 0xf74fd645
je 0x5577ba
cmp ebx, 0x1b272c9a
jne 0x5577bc
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, dl
xor ah, al
test dl, dl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test al, al
mov edx, 0x4c6ca682
cmove ebx, edx
test ah, ah
cmovne ebx, edi
jmp 0x5577bc
mov ebx, 0xf74fd645
jmp 0x5577bc
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x38]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
mov dword [esi + 0x24], ecx
sete byte [esi + 0x10]
sete bl
mov eax, 0x4c6ca682
mov edx, 0x6707b2cf
cmove eax, edx
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl bh
mov edi, 0x4c6ca682
cmovge eax, edi
xor bh, bl
cmovne eax, edx
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x557880
cmp ebx, 0x4c6ca682
je 0x5578bb
cmp ebx, 0x6707b2cf
jne 0x557866
jmp 0x5578c6
cmp ebx, 0xf74fd645
je 0x5578c2
cmp ebx, 0x1b272c9a
jne 0x557866
movzx edx, byte [esi + 0x10]
mov dh, byte [esi + 0x28]
mov ebx, edx
xor bl, dh
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test dh, dh
mov ebx, edi
mov ecx, 0xf74fd645
cmovne ebx, ecx
test dl, dl
cmove ebx, edi
jmp 0x557866
mov ebx, 0xf74fd645
jmp 0x557866
mov ebx, eax
jmp 0x557866
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x34], 0
je 0x557783
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x557738
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x4c], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x557738
mov ecx, dword [esi + 0x4c]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
setne al
cmp dword [esi + 0x48], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x55794f
or cl, al
jne 0x591802
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x55799a
cmp eax, 0xcd5e6053
je 0x5579f4
cmp eax, 0x18ed46ca
jne 0x557978
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x557978
cmp eax, 0x5499d804
je 0x557a1e
cmp eax, 0x685e39a2
jne 0x557978
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x18ed46ca
mov ebx, 0x5499d804
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x557978
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x557978
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setl ch
setge cl
cmp ch, dl
je 0x557630
jmp 0x55763b
mov ecx, dword [esi + 8]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov dword [esi + 4], eax
cmp eax, 0xa
setl dh
mov edi, dword [esi + 0x5c]
test dh, dl
jne 0x556ad6
xor dh, dl
mov edi, dword [esi + 0x5c]
jne 0x556ad6
mov edi, dword [esi + 8]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete bh
mov dword [esi + 4], eax
cmp eax, 0xa
setge bl
setl al
or bl, dl
xor al, bh
test al, al
jne 0x557ad8
test bl, 1
jne 0x557a8f
mov edi, dword [esi + 0x5c]
jmp 0x556ad6
mov edi, dword [esi + 0x5c]
jmp 0x556ad6
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp dword [esi + 4], 0xa
setl al
test al, cl
jne 0x557b03
xor al, cl
je 0x591804
mov esp, dword [esi + 0xa0]
mov edx, dword [0x5d21a8]
mov ecx, dword [0x5d21ac]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x5af2d6e3
mov ebx, 0xbf311110
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x553deb
mov ecx, dword [esi + 4]
call fcn.00423280
mov edx, dword [0x5cf5f0]
lea ecx, [edx + 1]
imul ecx, edx
test cl, 1
sete dh
cmp dword [0x5cf5f4], 0xa
setl bl
setge dl
cmp bl, dh
jne 0x557b88
or dl, cl
test dl, 1
je 0x557b88
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x557b4c
cmp byte [eax + 0x2d0], 0x30
jne 0x557c01
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x557c01
xor cl, al
jne 0x557c01
push 0
push 0
mov edi, dword [sym.imp.KERNEL32.dll_Beep]
call edi
push 0
push 0
call edi
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf5f4], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x557c01
or cl, al
jne 0x557bc2
mov ecx, dword [esi + 4]
call fcn.0040ed30
mov esp, dword [esi + 0x40]
mov dword [esi + 0xa0], esp
mov dword [esi + 0x9c], esp
mov eax, dword [0x5cf6c0]
lea ebx, [eax + 1]
imul ebx, eax
test bl, 1
sete dh
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setge dl
setl cl
or dl, bl
xor cl, dh
xor dl, 1
or dl, cl
push eax
sub esp, 8
mov dword [esi + 0x40], esp
sub esp, 0xc
mov dword [esi + 0x48], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x54], ecx
mov esp, ecx
push eax
mov dword [esi + 0x64], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x68], ecx
mov esp, ecx
push eax
mov dword [esi + 0x84], esp
push eax
mov dword [esi + 0x70], esp
push eax
mov dword [esi + 0x88], esp
test dl, 1
je 0x557c41
mov ecx, dword [esi + 0x54]
add ecx, 0x10
mov dword [esi + 0x98], ecx
mov ecx, dword [esi + 0x68]
add ecx, 0x10
mov dword [esi + 0x80], ecx
mov ebx, 0xa
cmp ebx, 0x1f4
jae 0x558c87
mov ecx, dword [esi + 0x40]
call fcn.004322e0
lea eax, [ebx + 1]
imul ebx, eax
shr ebx, 1
mov dword [esi + 0x34], ebx
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete ah
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
mov ebx, dword [esi + 0x38]
mov dword [esi + 4], ebx
mov ebx, dword [esi + 0x24]
mov dword [esi + 8], ebx
jne 0x557d14
or dl, al
jne 0x591712
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x5582e6
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x60], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x3c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x60]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x3c]
sbb ecx, edx
or ecx, eax
jne 0x557cd4
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x10]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x54]
mov edx, dword [esi + 8]
mov dword [ecx], edx
mov edx, dword [esi + 4]
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x8c]
mov dword [ecx + 8], edx
setl byte [esi + 0x28]
mov edx, dword [esi + 0xc]
mov dword [ecx + 0xc], edx
cmovge eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x557e18
cmp ecx, 0x20e9c049
je 0x557e2f
cmp ecx, 0x3b23d0b1
jne 0x557dfe
jmp 0x557e5f
cmp ecx, 0x9c6e8745
je 0x557e33
cmp ecx, 0xeb760989
jne 0x557dfe
mov ecx, 0x20e9c049
jmp 0x557dfe
mov ecx, eax
jmp 0x557dfe
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x557dfe
mov eax, dword [esi + 0x64]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x48]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x98]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x557ef7
cmp ecx, 0xcfcad29c
je 0x557f3a
cmp ecx, 0x3aca7e6
jne 0x557edb
mov ecx, eax
jmp 0x557edb
cmp ecx, 0x7c4a5f2
je 0x557f33
cmp ecx, 0x389c0e25
jne 0x557edb
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x557edb
mov ecx, 0x3aca7e6
jmp 0x557edb
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x69
mov ecx, dword [esi + 0x48]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x6b
mov ecx, dword [esi + 0x40]
push dword [esi + 0x48]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x557fe2
cmp eax, 0xc6e82640
je 0x558046
cmp eax, 0x950d98a
jne 0x557f9d
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x557f9d
cmp eax, 0x31a61df5
je 0x557fff
cmp eax, 0x4d86efb0
jne 0x557f9d
mov ecx, dword [esi + 0x48]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x557f9d
mov ecx, dword [esi + 0x48]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x557f9d
mov ebx, dword [esi + 0x68]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf6cc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
setl dl
mov ebx, 0xeb760989
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x5580c6
cmp ecx, 0x20e9c049
je 0x5580dd
cmp ecx, 0x3b23d0b1
jne 0x5580ac
jmp 0x558108
cmp ecx, 0x9c6e8745
je 0x5580e1
cmp ecx, 0xeb760989
jne 0x5580ac
mov ecx, 0x20e9c049
jmp 0x5580ac
mov ecx, eax
jmp 0x5580ac
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5580ac
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x55819e
cmp ecx, 0xcfcad29c
je 0x5581e1
cmp ecx, 0x3aca7e6
jne 0x558182
mov ecx, eax
jmp 0x558182
cmp ecx, 0x7c4a5f2
je 0x5581da
cmp ecx, 0x389c0e25
jne 0x558182
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x558182
mov ecx, 0x3aca7e6
jmp 0x558182
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x69
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x6a
mov ecx, dword [esi + 0x40]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x558283
cmp eax, 0xc6e82640
je 0x557cd4
cmp eax, 0x950d98a
jne 0x558243
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x558243
cmp eax, 0x31a61df5
je 0x5582a0
cmp eax, 0x4d86efb0
jne 0x558243
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x558243
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x558243
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x5585fe
mov dword [esi + 0x60], 1
jmp 0x55832d
mov ebx, dword [esi + 0x60]
inc ebx
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x60], ebx
cmp ebx, edx
jae 0x5585fe
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x60]
mov dword [esi + 4], edx
test cl, al
jne 0x558375
xor cl, al
mov eax, dword [esi + 0x60]
mov dword [esi + 4], eax
jne 0x558375
jmp 0x5917e8
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edi
call fcn.00433980
cmp dword [esi + 4], 0
je 0x5585c7
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax - 1]
imul edi, eax
mov eax, edi
and eax, 1
sete al
cmp ebx, 0xa
setl cl
xor cl, al
mov eax, 0xbf25ae54
mov ecx, 0x20ab24e5
cmovne eax, ecx
and edi, 1
sete byte [esi + 0x10]
mov edx, eax
cmove edx, ecx
mov dword [esi + 0xc], ebx
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 0x40]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
mov dword [esi + 0x38], ecx
lea eax, [ecx + eax*4]
mov dword [esi + 0x24], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5583ef
cmp eax, 0xffb13445
je 0x558424
cmp eax, 0x20ab24e5
jne 0x5583d8
jmp 0x558430
cmp eax, 0xbf25ae54
je 0x558429
cmp eax, 0xe6642f9a
jne 0x5583d8
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov ecx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ecx, edx
test al, al
mov eax, ecx
cmovne eax, edx
test bl, bl
cmove eax, ecx
jmp 0x5583d8
mov eax, dword [esi + 8]
jmp 0x5583d8
mov eax, 0xffb13445
jmp 0x5583d8
mov ecx, dword [esi + 4]
dec ecx
test edi, edi
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x3c], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x34], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x38]
lea eax, [ecx + eax*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x558483
cmp eax, 0xffb13445
je 0x5584bd
cmp eax, 0x20ab24e5
jne 0x55846c
jmp 0x5584c9
cmp eax, 0xbf25ae54
je 0x5584c2
cmp eax, 0xe6642f9a
jne 0x55846c
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, al
xor ch, cl
test al, al
mov eax, 0xbf25ae54
mov edx, 0xffb13445
cmovne eax, edx
test cl, cl
mov ebx, 0xbf25ae54
cmove eax, ebx
test ch, ch
cmovne eax, edx
jmp 0x55846c
mov eax, dword [esi + 8]
jmp 0x55846c
mov eax, 0xffb13445
jmp 0x55846c
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x3c]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x34]
sbb ecx, dword [eax + 4]
jge 0x5585c7
test edi, edi
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55850f
cmp eax, 0xffb13445
je 0x558544
cmp eax, 0x20ab24e5
jne 0x5584f8
jmp 0x558550
cmp eax, 0xbf25ae54
je 0x558549
cmp eax, 0xe6642f9a
jne 0x5584f8
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov ebx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ebx, edx
test al, al
mov eax, ebx
cmovne eax, edx
test cl, cl
cmove eax, ebx
jmp 0x5584f8
mov eax, dword [esi + 8]
jmp 0x5584f8
mov eax, 0xffb13445
jmp 0x5584f8
test edi, edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov edi, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x558586
cmp eax, 0xffb13445
je 0x5585bb
cmp eax, 0x20ab24e5
jne 0x55856c
jmp 0x55835c
cmp eax, 0xbf25ae54
je 0x5585c0
cmp eax, 0xe6642f9a
jne 0x55856c
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov ebx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ebx, edx
test al, al
mov eax, ebx
cmovne eax, edx
test cl, cl
cmove eax, ebx
jmp 0x55856c
mov eax, dword [esi + 8]
jmp 0x55856c
mov eax, 0xffb13445
jmp 0x55856c
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x55830b
xor dl, al
jne 0x55830b
jmp 0x5917d8
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x558651
cmp edi, 0x88e9608c
je 0x558690
cmp edi, 0xdf32ec89
jne 0x55862d
mov ecx, dword [esi + 0x70]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x55862d
cmp edi, 0x30b7124c
je 0x5586e9
cmp edi, 0x124998e2
jne 0x55862d
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x55862d
mov ecx, dword [esi + 0x70]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea edi, [ecx - 1]
mov dword [esi + 4], ecx
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete cl
cmp ebx, 0xa
setl dl
xor dl, cl
mov ecx, 0xdf32ec89
mov edx, 0x30b7124c
cmovne ecx, edx
cmp edi, 0xffffffff
mov edi, ecx
cmove edi, edx
mov dword [esi + 8], ebx
cmp ebx, 0xa
cmovge edi, ecx
mov ecx, dword [esi + 0x18]
jmp 0x55862d
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x40]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x55873a
cmp ecx, 0x88e9608c
je 0x55877a
cmp ecx, 0xdf32ec89
jne 0x558713
mov ecx, dword [esi + 0x88]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x558713
cmp ecx, 0x30b7124c
je 0x5587cb
cmp ecx, 0x124998e2
jne 0x558713
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x558713
mov ecx, dword [esi + 0x88]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x558713
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
jmp 0x5587f8
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x558811
xor cl, al
je 0x5917d2
mov eax, dword [esi + 0x70]
mov eax, dword [eax]
mov ecx, dword [esi + 0x88]
cmp eax, dword [ecx]
je 0x558bf8
mov ecx, dword [esi + 0x70]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmovne ebx, edi
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
mov ecx, ebx
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov eax, dword [eax]
mov dword [esi + 8], eax
cmovge ecx, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x5588a0
cmp edx, 0x87fb68d6
je 0x5588dc
cmp edx, 0xfc04dcc5
jne 0x558881
mov edx, 0x87fb68d6
jmp 0x558881
cmp edx, 0x2601f5a7
je 0x5588e0
cmp edx, 0x5a893bc4
jne 0x558881
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, bl
xor bh, dl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x558881
mov edx, ecx
jmp 0x558881
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
cmp dword [esi + 8], ecx
je 0x558afd
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x558926
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x3c]
je 0x558afd
mov eax, dword [esi + 0x34]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete dl
cmp dword [esi + 0x38], 0xa
setge al
setl ah
or al, cl
xor ah, dl
xor al, 1
or al, ah
test al, 1
jne 0x558a00
mov ecx, dword [esi + 0x24]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
test ecx, ecx
sete dl
mov ebx, dword [esi + 4]
cmp ebx, 0xa
setl ah
xor ah, dl
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
test ecx, ecx
sete byte [esi + 0x10]
mov ecx, edx
cmove ecx, edi
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge ecx, edx
mov edx, 0x1b272c9a
jmp 0x5589a0
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x5589ba
cmp edx, 0x4c6ca682
je 0x5589f0
cmp edx, 0x6707b2cf
jne 0x5589a0
jmp 0x5589f7
cmp edx, 0xf74fd645
je 0x55899e
cmp edx, 0x1b272c9a
jne 0x5589a0
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov dh, ah
xor dh, dl
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test dl, dl
mov edx, edi
cmovne edx, ebx
test ah, ah
cmove edx, edi
jmp 0x5589a0
mov edx, 0xf74fd645
jmp 0x5589a0
mov ecx, dword [esi + 8]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x24]
lea ebx, [edx + 1]
imul ebx, edx
mov edx, ebx
and edx, 1
sete dl
mov ecx, dword [esi + 4]
cmp ecx, 0xa
setl ah
xor ah, dl
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
and ebx, 1
mov dword [esi + 0xc], ebx
sete byte [esi + 0x10]
mov ebx, edx
cmove ebx, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge ebx, edx
mov edx, 0x1b272c9a
cmp edx, 0x4c6ca681
jle 0x558a61
cmp edx, 0x4c6ca682
je 0x558a97
cmp edx, 0x6707b2cf
jne 0x558a47
jmp 0x558aa2
cmp edx, 0xf74fd645
je 0x558a9e
cmp edx, 0x1b272c9a
jne 0x558a47
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov dh, ah
xor dh, dl
mov edi, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne edi, ecx
test dl, dl
mov edx, edi
cmovne edx, ecx
test ah, ah
cmove edx, edi
jmp 0x558a47
mov edx, 0xf74fd645
jmp 0x558a47
mov edx, ebx
jmp 0x558a47
mov edx, dword [esi + 8]
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x18]
test al, 1
je 0x558962
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x558914
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x558914
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
setne al
cmp dword [esi + 0x38], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x558b29
or cl, al
jne 0x591806
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x558b74
cmp eax, 0xcd5e6053
je 0x558bce
cmp eax, 0x18ed46ca
jne 0x558b52
mov eax, dword [esi + 0x70]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x558b52
cmp eax, 0x5499d804
je 0x5587e2
cmp eax, 0x685e39a2
jne 0x558b52
mov eax, dword [esi + 0x70]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x558b52
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x558b52
mov ecx, dword [esi + 0x40]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete bl
cmp edi, 0xa
setge cl
setl ch
xor ch, bl
mov ebx, dword [esi + 0x5c]
jne 0x557ca6
or cl, dl
mov ebx, dword [esi + 0x5c]
test cl, 1
je 0x557ca6
mov edi, dword [esi + 0x40]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
sete cl
cmp edi, 0xa
setl ch
mov dl, ch
xor dl, cl
test ch, cl
jne 0x558c7f
test dl, dl
je 0x558c39
mov ebx, dword [esi + 0x5c]
jmp 0x557ca6
mov ebx, dword [esi + 0x5c]
jmp 0x557ca6
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp edi, 0xa
setl cl
test cl, al
jne 0x558caa
xor cl, al
je 0x591808
mov esp, dword [esi + 0x9c]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
sete dh
cmp ecx, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 0x40], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x70], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x558cd3
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x98], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x559d32
mov ecx, dword [esi + 0x40]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x558da0
xor dl, al
je 0x5917fa
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x559387
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x3c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x3c]
sbb ecx, edx
or ecx, eax
jne 0x558d65
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 8]
mov dword [ecx], ebx
mov ebx, dword [esi + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x8c]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0xc]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x558ea1
cmp ecx, 0x20e9c049
je 0x558eb8
cmp ecx, 0x3b23d0b1
jne 0x558e87
jmp 0x558ee8
cmp ecx, 0x9c6e8745
je 0x558ebc
cmp ecx, 0xeb760989
jne 0x558e87
mov ecx, 0x20e9c049
jmp 0x558e87
mov ecx, eax
jmp 0x558e87
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x558e87
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x98]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x558f83
cmp ecx, 0xcfcad29c
je 0x558fc6
cmp ecx, 0x3aca7e6
jne 0x558f67
mov ecx, eax
jmp 0x558f67
cmp ecx, 0x7c4a5f2
je 0x558fbf
cmp ecx, 0x389c0e25
jne 0x558f67
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x558f67
mov ecx, 0x3aca7e6
jmp 0x558f67
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x6c
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x6e
mov ecx, dword [esi + 0x40]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x55906e
cmp eax, 0xc6e82640
je 0x5590d8
cmp eax, 0x950d98a
jne 0x559029
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x559029
cmp eax, 0x31a61df5
je 0x55908b
cmp eax, 0x4d86efb0
jne 0x559029
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x559029
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x559029
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
mov edx, dword [0x5cf6cc]
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne ecx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, ecx
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
cmovge eax, ecx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x55915c
cmp ecx, 0x20e9c049
je 0x559173
cmp ecx, 0x3b23d0b1
jne 0x559142
jmp 0x5591a3
cmp ecx, 0x9c6e8745
je 0x559177
cmp ecx, 0xeb760989
jne 0x559142
mov ecx, 0x20e9c049
jmp 0x559142
mov ecx, eax
jmp 0x559142
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x559142
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x70]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x55923e
cmp ecx, 0xcfcad29c
je 0x55927c
cmp ecx, 0x3aca7e6
jne 0x559222
mov ecx, eax
jmp 0x559222
cmp ecx, 0x7c4a5f2
je 0x559275
cmp ecx, 0x389c0e25
jne 0x559222
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x559222
mov ecx, 0x3aca7e6
jmp 0x559222
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x6c
mov ecx, dword [esi + 0x70]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x6d
mov ecx, dword [esi + 0x40]
push dword [esi + 0x70]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x559324
cmp eax, 0xc6e82640
je 0x558d65
cmp eax, 0x950d98a
jne 0x5592df
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x5592df
cmp eax, 0x31a61df5
je 0x559341
cmp eax, 0x4d86efb0
jne 0x5592df
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x5592df
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x5592df
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x5596ba
mov dword [esi + 0x58], 1
jmp 0x5593ce
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x5596ba
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x58]
mov dword [esi + 8], edx
test cl, al
jne 0x559419
xor cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 8], eax
jne 0x559419
jmp 0x5917d0
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0xc]
call fcn.00433980
cmp dword [esi + 8], 0
je 0x55967d
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0xc], ecx
mov dword [esi + 0x24], eax
test eax, ecx
sete byte [esi + 0x10]
mov ecx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove ecx, ebx
sete al
mov dword [esi + 4], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ecx, edx
setl dl
xor dl, al
mov eax, dword [esi + 0x40]
mov edx, dword [eax]
mov eax, dword [esi + 8]
lea eax, [eax + eax*2]
mov dword [esi + 0x34], edx
lea eax, [edx + eax*4]
mov dword [esi + 0x38], eax
cmovne ecx, ebx
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x559495
cmp eax, 0xffb13445
je 0x5594ca
cmp eax, 0x20ab24e5
jne 0x55947e
jmp 0x5594d5
cmp eax, 0xbf25ae54
je 0x5594ce
cmp eax, 0xe6642f9a
jne 0x55947e
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ebx, edi
test al, al
mov eax, ebx
cmovne eax, edi
test dl, dl
cmove eax, ebx
jmp 0x55947e
mov eax, ecx
jmp 0x55947e
mov eax, 0xffb13445
jmp 0x55947e
mov edx, dword [esi + 8]
dec edx
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax]
mov dword [esi + 0x48], edi
mov eax, dword [eax + 4]
mov dword [esi + 0x3c], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov dword [esi + 8], edx
lea eax, [edx + edx*2]
mov edx, dword [esi + 0x34]
lea eax, [edx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55952c
cmp eax, 0xffb13445
je 0x559566
cmp eax, 0x20ab24e5
jne 0x559515
jmp 0x559571
cmp eax, 0xbf25ae54
je 0x55956a
cmp eax, 0xe6642f9a
jne 0x559515
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, bl
xor bh, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test bl, bl
mov edx, 0xbf25ae54
cmove eax, edx
test bh, bh
cmovne eax, edi
jmp 0x559515
mov eax, ecx
jmp 0x559515
mov eax, 0xffb13445
jmp 0x559515
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [esi + 0x48]
cmp edx, dword [eax]
mov edx, dword [esi + 0x3c]
sbb edx, dword [eax + 4]
jge 0x55967d
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5595bb
cmp eax, 0xffb13445
je 0x5595f5
cmp eax, 0x20ab24e5
jne 0x5595a4
jmp 0x559600
cmp eax, 0xbf25ae54
je 0x5595f9
cmp eax, 0xe6642f9a
jne 0x5595a4
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, al
xor dh, dl
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test dl, dl
mov ebx, 0xbf25ae54
cmove eax, ebx
test dh, dh
cmovne eax, edi
jmp 0x5595a4
mov eax, ecx
jmp 0x5595a4
mov eax, 0xffb13445
jmp 0x5595a4
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55963d
cmp eax, 0xffb13445
je 0x559672
cmp eax, 0x20ab24e5
jne 0x559623
jmp 0x5593fe
cmp eax, 0xbf25ae54
je 0x559676
cmp eax, 0xe6642f9a
jne 0x559623
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edi, 0xbf25ae54
mov edx, 0xffb13445
cmovne edi, edx
test al, al
mov eax, edi
cmovne eax, edx
test bl, bl
cmove eax, edi
jmp 0x559623
mov eax, ecx
jmp 0x559623
mov eax, 0xffb13445
jmp 0x559623
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete ah
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
jne 0x5593ac
or dl, al
je 0x5593ac
jmp 0x59180c
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x55970e
cmp edi, 0x88e9608c
je 0x55974d
cmp edi, 0xdf32ec89
jne 0x5596ea
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x5596ea
cmp edi, 0x30b7124c
je 0x5597a7
cmp edi, 0x124998e2
jne 0x5596ea
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x5596ea
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
mov dword [esi + 4], edx
imul ecx, edx
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 8], ebx
cmp ebx, 0xa
mov edx, 0xdf32ec89
cmovge edi, edx
setl dl
xor dl, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x5596ea
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 0x40]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x5597f6
cmp ecx, 0x88e9608c
je 0x55982d
cmp ecx, 0xdf32ec89
jne 0x5597d2
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x5597d2
cmp ecx, 0x30b7124c
je 0x55987b
cmp ecx, 0x124998e2
jne 0x5597d2
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5597d2
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x5597d2
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
jmp 0x5598a8
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x5598c1
xor cl, al
je 0x59180e
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x559ca4
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
mov dword [esi + 8], edx
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edx, 0x2601f5a7
cmovne ebx, edx
test edi, ecx
sete byte [esi + 0x28]
mov edi, ebx
cmove edi, edx
cmp dword [esi + 8], 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov ecx, dword [eax]
mov dword [esi + 8], ecx
cmovge edi, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x55994f
cmp edx, 0x87fb68d6
je 0x559986
cmp edx, 0xfc04dcc5
jne 0x559930
mov edx, 0x87fb68d6
jmp 0x559930
cmp edx, 0x2601f5a7
je 0x55998a
cmp edx, 0x5a893bc4
jne 0x559930
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, bl
xor dh, dl
mov ecx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne ecx, eax
test dl, dl
mov edx, ecx
cmovne edx, eax
test bl, bl
cmove edx, ecx
jmp 0x559930
mov edx, edi
jmp 0x559930
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
cmp dword [esi + 8], ecx
je 0x559ba1
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x5599d0
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x3c]
je 0x559ba1
mov eax, dword [esi + 0x34]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete dl
cmp dword [esi + 0x38], 0xa
setge al
setl ah
or al, cl
xor ah, dl
xor al, 1
or al, ah
test al, 1
jne 0x559aa6
mov edx, dword [esi + 0x24]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
test ecx, ecx
sete dl
mov ebx, dword [esi + 4]
cmp ebx, 0xa
setl ah
xor ah, dl
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
test ecx, ecx
sete byte [esi + 0x10]
mov ecx, edx
cmove ecx, edi
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge ecx, edx
mov edx, 0x1b272c9a
jmp 0x559a46
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x559a60
cmp edx, 0x4c6ca682
je 0x559a96
cmp edx, 0x6707b2cf
jne 0x559a46
jmp 0x559a9d
cmp edx, 0xf74fd645
je 0x559a44
cmp edx, 0x1b272c9a
jne 0x559a46
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov dh, ah
xor dh, dl
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test dl, dl
mov edx, edi
cmovne edx, ebx
test ah, ah
cmove edx, edi
jmp 0x559a46
mov edx, 0xf74fd645
jmp 0x559a46
mov ecx, dword [esi + 8]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x24]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
mov dword [esi + 0xc], ecx
sete byte [esi + 0x10]
sete ah
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove edx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl bl
mov edi, 0x4c6ca682
cmovge edx, edi
xor bl, ah
mov edi, 0x6707b2cf
cmovne edx, edi
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x559b05
cmp ebx, 0x4c6ca682
je 0x559b3b
cmp ebx, 0x6707b2cf
jne 0x559aeb
jmp 0x559b46
cmp ebx, 0xf74fd645
je 0x559b42
cmp ebx, 0x1b272c9a
jne 0x559aeb
mov ah, byte [esi + 0x10]
movzx ebx, byte [esi + 0x28]
mov bh, ah
xor bh, bl
mov edi, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne edi, ecx
test bl, bl
mov ebx, edi
cmovne ebx, ecx
test ah, ah
cmove ebx, edi
jmp 0x559aeb
mov ebx, 0xf74fd645
jmp 0x559aeb
mov ebx, edx
jmp 0x559aeb
mov edx, dword [esi + 8]
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x18]
test al, 1
je 0x559a08
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x5599be
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x5599be
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x38], 0xa
setl cl
test cl, al
jne 0x559bc7
xor cl, al
je 0x5917d6
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x559c12
cmp eax, 0xcd5e6053
je 0x559c75
cmp eax, 0x18ed46ca
jne 0x559bf0
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x559bf0
cmp eax, 0x5499d804
je 0x559893
cmp eax, 0x685e39a2
jne 0x559bf0
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x18ed46ca
mov edi, 0x5499d804
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x559bf0
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x559bf0
mov ecx, dword [esi + 0x40]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dl
cmp ecx, 0xa
setl dh
mov edi, dword [esi + 0x5c]
test dh, dl
jne 0x558d37
xor dh, dl
mov edi, dword [esi + 0x5c]
jne 0x558d37
mov edi, dword [esi + 0x40]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp ecx, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x559d2a
test dl, dl
je 0x559ce3
mov edi, dword [esi + 0x5c]
jmp 0x558d37
mov edi, dword [esi + 0x5c]
jmp 0x558d37
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete dl
setne al
cmp ecx, 0xa
setl ah
setge cl
cmp ah, dl
jne 0x559d5a
or cl, al
jne 0x5917da
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp eax, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 8], esp
sub esp, 0xc
mov dword [esi + 0x34], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x40], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x559d84
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x98], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x55adfa
mov ecx, dword [esi + 8]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x48], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov eax, dword [esi + 0x3c]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x559e50
xor dl, al
je 0x591810
mov edx, dword [esi + 4]
mov eax, edx
imul eax, dword [esi + 0xc]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x48]
sbb eax, 0
jae 0x55a429
mov eax, dword [esi + 0x48]
mov edi, dword [esi + 4]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x70], eax
mov eax, 0
mov ebx, dword [esi + 0xc]
sbb eax, ebx
mov dword [esi + 0x4c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0x24], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x3c], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0x38], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x70]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
sbb ecx, edx
or ecx, eax
jne 0x559e16
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 4]
mov dword [ecx], ebx
mov ebx, dword [esi + 0xc]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x8c]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0x24]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x559f51
cmp ecx, 0x20e9c049
je 0x559f68
cmp ecx, 0x3b23d0b1
jne 0x559f37
jmp 0x559f98
cmp ecx, 0x9c6e8745
je 0x559f6c
cmp ecx, 0xeb760989
jne 0x559f37
mov ecx, 0x20e9c049
jmp 0x559f37
mov ecx, eax
jmp 0x559f37
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x559f37
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x34]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x98]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x55a033
cmp ecx, 0xcfcad29c
je 0x55a076
cmp ecx, 0x3aca7e6
jne 0x55a017
mov ecx, eax
jmp 0x55a017
cmp ecx, 0x7c4a5f2
je 0x55a06f
cmp ecx, 0x389c0e25
jne 0x55a017
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55a017
mov ecx, 0x3aca7e6
jmp 0x55a017
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x6f
mov ecx, dword [esi + 0x34]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x71
mov ecx, dword [esi + 8]
push dword [esi + 0x34]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x55a11d
cmp eax, 0xc6e82640
je 0x55a180
cmp eax, 0x950d98a
jne 0x55a0d8
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x55a0d8
cmp eax, 0x31a61df5
je 0x55a13a
cmp eax, 0x4d86efb0
jne 0x55a0d8
mov ecx, dword [esi + 0x34]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x55a0d8
mov ecx, dword [esi + 0x34]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x55a0d8
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
mov edi, dword [0x5cf6cc]
cmp edi, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edx, ebx
test ecx, eax
mov ecx, dword [esi + 0x64]
mov eax, dword [esi + 0x24]
mov dword [ecx + 4], eax
sete byte [esi + 0x10]
mov eax, dword [esi + 0x8c]
mov dword [ecx], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0xc], eax
mov eax, edx
cmove eax, ebx
cmp edi, 0xa
setl byte [esi + 0x28]
mov edi, dword [esi + 4]
mov dword [ecx + 8], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x55a202
cmp ecx, 0x20e9c049
je 0x55a219
cmp ecx, 0x3b23d0b1
jne 0x55a1e8
jmp 0x55a244
cmp ecx, 0x9c6e8745
je 0x55a21d
cmp ecx, 0xeb760989
jne 0x55a1e8
mov ecx, 0x20e9c049
jmp 0x55a1e8
mov ecx, eax
jmp 0x55a1e8
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x55a1e8
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x40]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x80]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x64]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x55a2db
cmp ecx, 0xcfcad29c
je 0x55a31e
cmp ecx, 0x3aca7e6
jne 0x55a2bf
mov ecx, eax
jmp 0x55a2bf
cmp ecx, 0x7c4a5f2
je 0x55a317
cmp ecx, 0x389c0e25
jne 0x55a2bf
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55a2bf
mov ecx, 0x3aca7e6
jmp 0x55a2bf
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x6f
mov ecx, dword [esi + 0x40]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x70
mov ecx, dword [esi + 8]
push dword [esi + 0x40]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x55a3c5
cmp eax, 0xc6e82640
je 0x559e16
cmp eax, 0x950d98a
jne 0x55a380
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x55a380
cmp eax, 0x31a61df5
je 0x55a3e2
cmp eax, 0x4d86efb0
jne 0x55a380
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x55a380
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x55a380
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x55a766
mov dword [esi + 0x58], 1
jmp 0x55a470
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x55a766
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp edi, 0xa
setge cl
setl ch
xor ch, dl
mov edx, dword [esi + 0x58]
mov dword [esi + 4], edx
jne 0x55a4bb
or cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 4], eax
test cl, 1
je 0x55a4bb
jmp 0x591814
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0x24]
call fcn.00433980
cmp dword [esi + 4], 0
je 0x55a72e
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0x24], ecx
mov dword [esi + 0x38], eax
test eax, ecx
sete byte [esi + 0x10]
mov ebx, 0xbf25ae54
mov ecx, 0x20ab24e5
cmove ebx, ecx
sete al
mov dword [esi + 0xc], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ebx, edx
setl dl
xor dl, al
mov eax, dword [esi + 8]
mov edi, dword [eax]
mov eax, dword [esi + 4]
lea edx, [eax + eax*2]
mov dword [esi + 0x48], edi
lea eax, [edi + edx*4]
mov dword [esi + 0x3c], eax
cmovne ebx, ecx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x55a53a
cmp edx, 0xffb13445
je 0x55a571
cmp edx, 0x20ab24e5
jne 0x55a520
jmp 0x55a57c
cmp edx, 0xbf25ae54
je 0x55a575
cmp edx, 0xe6642f9a
jne 0x55a520
movzx ecx, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ch, cl
xor ch, dl
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test dl, dl
mov edx, eax
cmovne edx, edi
test cl, cl
cmove edx, eax
jmp 0x55a520
mov edx, ebx
jmp 0x55a520
mov edx, 0xffb13445
jmp 0x55a520
mov ecx, dword [esi + 4]
dec ecx
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x70], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x4c], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x48]
lea eax, [ecx + eax*4]
mov dword [esi + 0x48], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55a5d3
cmp eax, 0xffb13445
je 0x55a608
cmp eax, 0x20ab24e5
jne 0x55a5bc
jmp 0x55a613
cmp eax, 0xbf25ae54
je 0x55a60c
cmp eax, 0xe6642f9a
jne 0x55a5bc
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x55a5bc
mov eax, ebx
jmp 0x55a5bc
mov eax, 0xffb13445
jmp 0x55a5bc
mov eax, dword [esi + 0x48]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x70]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x4c]
sbb ecx, dword [eax + 4]
jge 0x55a72e
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x55a660
cmp edx, 0xffb13445
je 0x55a69c
cmp edx, 0x20ab24e5
jne 0x55a646
jmp 0x55a6a7
cmp edx, 0xbf25ae54
je 0x55a6a0
cmp edx, 0xe6642f9a
jne 0x55a646
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ah, cl
xor ah, al
test cl, cl
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov ecx, 0xbf25ae54
cmove edx, ecx
test ah, ah
cmovne edx, edi
jmp 0x55a646
mov edx, ebx
jmp 0x55a646
mov edx, 0xffb13445
jmp 0x55a646
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x48]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x24], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x55a6e7
cmp ecx, 0xffb13445
je 0x55a723
cmp ecx, 0x20ab24e5
jne 0x55a6ca
jmp 0x55a4a0
cmp ecx, 0xbf25ae54
je 0x55a727
cmp ecx, 0xe6642f9a
jne 0x55a6ca
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ah, al
xor ah, cl
test cl, cl
mov ecx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ecx, edx
test al, al
mov edi, 0xbf25ae54
cmove ecx, edi
test ah, ah
cmovne ecx, edx
jmp 0x55a6ca
mov ecx, ebx
jmp 0x55a6ca
mov ecx, 0xffb13445
jmp 0x55a6ca
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
cmp edi, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x55a44e
or dl, al
test dl, 1
je 0x55a44e
jmp 0x5917fc
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx - 1]
mov dword [esi + 0xc], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x55a7ba
cmp edi, 0x88e9608c
je 0x55a7f9
cmp edi, 0xdf32ec89
jne 0x55a796
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x55a796
cmp edi, 0x30b7124c
je 0x55a851
cmp edi, 0x124998e2
jne 0x55a796
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x55a796
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
mov dword [esi + 4], ebx
lea edi, [ecx + 1]
mov dword [esi + 0xc], ecx
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete dl
cmp ebx, 0xa
setl dh
xor dh, dl
mov edx, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne edx, ebx
test ecx, edi
mov edi, edx
cmove edi, ebx
cmp dword [esi + 4], 0xa
cmovge edi, edx
mov ecx, dword [esi + 0x18]
jmp 0x55a796
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x55a8a0
cmp ecx, 0x88e9608c
je 0x55a8e0
cmp ecx, 0xdf32ec89
jne 0x55a87c
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x55a87c
cmp ecx, 0x30b7124c
je 0x55a933
cmp ecx, 0x124998e2
jne 0x55a87c
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55a87c
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov edi, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne edi, ebx
cmp ecx, 0xffffffff
mov ecx, edi
cmove ecx, ebx
cmp edx, 0xa
cmovge ecx, edi
mov edx, dword [esi + 0x18]
jmp 0x55a87c
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x55a967
or cl, al
jne 0x5917d4
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x55ad6d
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
mov dword [esi + 4], edx
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edx, 0x2601f5a7
cmovne ebx, edx
test edi, ecx
sete byte [esi + 0x28]
mov edi, ebx
cmove edi, edx
cmp dword [esi + 4], 0xa
setl byte [esi + 0x18]
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov dword [esi + 4], ecx
cmovge edi, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x55a9f5
cmp edx, 0x87fb68d6
je 0x55aa2c
cmp edx, 0xfc04dcc5
jne 0x55a9d6
mov edx, 0x87fb68d6
jmp 0x55a9d6
cmp edx, 0x2601f5a7
je 0x55aa30
cmp edx, 0x5a893bc4
jne 0x55a9d6
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, bl
xor dh, dl
mov ecx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne ecx, eax
test dl, dl
mov edx, ecx
cmovne edx, eax
test bl, bl
cmove edx, ecx
jmp 0x55a9d6
mov edx, edi
jmp 0x55a9d6
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x4c], ecx
cmp dword [esi + 4], ecx
je 0x55ac42
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x55aa76
mov eax, dword [esi + 4]
add eax, 8
mov dword [esi + 4], eax
cmp eax, dword [esi + 0x4c]
je 0x55ac42
mov ecx, dword [esi + 0x48]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x3c], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x55ab3e
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
test ecx, ecx
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov ebx, 0x6707b2cf
cmove ecx, ebx
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl dl
mov edi, 0x4c6ca682
cmovge ecx, edi
xor dl, al
cmovne ecx, ebx
mov eax, 0x1b272c9a
jmp 0x55aae2
mov eax, ecx
cmp eax, 0x4c6ca681
jle 0x55aaf9
cmp eax, 0x4c6ca682
je 0x55ab2e
cmp eax, 0x6707b2cf
jne 0x55aae2
jmp 0x55ab35
cmp eax, 0xf74fd645
je 0x55aae0
cmp eax, 0x1b272c9a
jne 0x55aae2
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test al, al
mov eax, ebx
cmovne eax, edi
test dl, dl
cmove eax, ebx
jmp 0x55aae2
mov eax, 0xf74fd645
jmp 0x55aae2
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
sete byte [esi + 0x10]
sete bl
mov eax, 0x4c6ca682
mov edx, 0x6707b2cf
cmove eax, edx
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl bh
mov edi, 0x4c6ca682
cmovge eax, edi
xor bh, bl
cmovne eax, edx
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x55ab99
cmp ebx, 0x4c6ca682
je 0x55abda
cmp ebx, 0x6707b2cf
jne 0x55ab7f
jmp 0x55abe5
cmp ebx, 0xf74fd645
je 0x55abe1
cmp ebx, 0x1b272c9a
jne 0x55ab7f
movzx edx, byte [esi + 0x10]
movzx ebx, byte [esi + 0x28]
mov dh, bl
xor dh, dl
test bl, bl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test dl, dl
mov edi, 0x4c6ca682
cmove ebx, edi
test dh, dh
mov edx, 0xf74fd645
cmovne ebx, edx
jmp 0x55ab7f
mov ebx, 0xf74fd645
jmp 0x55ab7f
mov ebx, eax
jmp 0x55ab7f
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x55aaab
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x55aa64
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x3c], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x55aa64
mov ecx, dword [esi + 0x48]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x3c], 0xa
setl cl
test cl, al
jne 0x55ac68
xor cl, al
je 0x591812
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x55acb2
cmp eax, 0xcd5e6053
je 0x55ad0e
cmp eax, 0x18ed46ca
jne 0x55ac90
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x55ac90
cmp eax, 0x5499d804
je 0x55ad38
cmp eax, 0x685e39a2
jne 0x55ac90
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x18ed46ca
mov edi, 0x5499d804
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x55ac90
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x55ac90
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf6c4], 0xa
setl ah
setge cl
cmp ah, dl
je 0x55a95f
jmp 0x55a967
mov ecx, dword [esi + 8]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dl
cmp eax, 0xa
setl dh
mov edi, dword [esi + 0x5c]
test dh, dl
jne 0x559de8
xor dh, dl
mov edi, dword [esi + 0x5c]
jne 0x559de8
mov edi, dword [esi + 8]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp eax, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x55adf2
test dl, dl
je 0x55adac
mov edi, dword [esi + 0x5c]
jmp 0x559de8
mov edi, dword [esi + 0x5c]
jmp 0x559de8
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete dl
setne cl
cmp eax, 0xa
setl ah
setge al
cmp ah, dl
jne 0x55ae22
or al, cl
jne 0x59180a
mov esp, dword [esi + 0xa0]
mov eax, 0x57676505
jmp 0x553deb
mov esp, dword [esi + 0x94]
mov edx, dword [0x5d21a0]
mov ecx, dword [0x5d21a4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xf60420d1
mov edi, 0x8c5f966a
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x54ab5d
mov eax, 0x5ae21c5b
mov esp, dword [esi + 0x94]
jmp 0x54ab5d
cmp ecx, 0x12345678
jne 0x55ae9f
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
lea ecx, [esi + 0x28]
call fcn.0041e540
lea ecx, [esi + 0x18]
call fcn.0041e540
mov eax, dword [0x5d21a0]
mov ecx, dword [0x5d21a4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0xa7]
cmp ecx, 0xa
setl byte [esi + 0x7c]
mov eax, 0x8f871a7e
cmp eax, 0xf60420d0
jg 0x55af23
cmp eax, 0x8c5f966a
je 0x56b1fb
cmp eax, 0x8f871a7e
jne 0x55aedb
movzx ecx, byte [esi + 0xa7]
movzx eax, byte [esi + 0x7c]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0xf60420d1
mov edi, 0x5ae21c5b
cmovne eax, edi
test cl, cl
mov ecx, 0xf60420d1
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x55aedb
cmp eax, 0xf60420d1
je 0x55c01d
cmp eax, 0x5ae21c5b
jne 0x55aedb
mov dword [esi + 0x5c], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
setne dh
mov dword [esi + 8], ecx
cmp ecx, 0xa
setge dl
mov ebx, edx
xor bl, dh
or dl, dh
xor dl, 1
or dl, bl
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov edi, esp
sub esp, 0x10
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
mov dword [esi + 0x54], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov esp, ecx
push eax
mov dword [esi + 0x68], esp
push eax
mov dword [esi + 0x70], esp
push eax
mov dword [esi + 0x64], esp
test dl, dl
je 0x55af67
mov dword [esi + 0x94], edi
mov dword [esi + 0x60], ebx
lea edx, [ebx + 0x10]
mov dword [esi + 0x8c], edx
mov dword [esi + 0x58], ecx
add ecx, 0x10
mov dword [esi + 0x90], ecx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x55d0de
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x88], edi
mov dword [esi + 0x80], eax
shr eax, 1
mov dword [esi + 4], eax
mov dword [esi + 0xc], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
mov dword [esi + 8], ecx
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 4]
sete ah
setne al
mov ecx, dword [0x5cf6c4]
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl bh
setge bl
cmp bh, ah
jne 0x55b038
or bl, al
jne 0x591644
mov eax, edx
imul eax, edi
mov ebx, edi
mov edi, edx
mulx edx, ecx, edx
add eax, eax
add eax, edx
mov edx, dword [esi + 0x88]
cmp ecx, edx
sbb eax, 0
jae 0x55b618
sub edx, edi
mov dword [esi + 0x38], edx
mov eax, 0
sbb eax, ebx
mov dword [esi + 0x24], eax
mov dword [esi + 0x40], edi
add edi, 1
mov dword [esi + 0x48], ebx
adc ebx, 0
push ebx
push edi
push eax
push edx
call fcn.00594a90
mov dword [esi + 8], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x34], edx
mov dword [esi + 0x84], eax
mov edx, eax
mov dword [esi + 0xc], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 8]
mov dword [esi + 4], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x38]
sub eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x24]
sbb ecx, edx
or ecx, eax
jne 0x55aff8
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x60]
mov ebx, dword [esi + 0x40]
mov dword [ecx], ebx
mov ebx, dword [esi + 0x48]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x84]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 8]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x55b139
cmp ecx, 0x20e9c049
je 0x55b150
cmp ecx, 0x3b23d0b1
jne 0x55b11f
jmp 0x55b17b
cmp ecx, 0x9c6e8745
je 0x55b154
cmp ecx, 0xeb760989
jne 0x55b11f
mov ecx, 0x20e9c049
jmp 0x55b11f
mov ecx, eax
jmp 0x55b11f
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x55b11f
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x94]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x8c]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x55b216
cmp ecx, 0xcfcad29c
je 0x55b259
cmp ecx, 0x3aca7e6
jne 0x55b1fa
mov ecx, eax
jmp 0x55b1fa
cmp ecx, 0x7c4a5f2
je 0x55b252
cmp ecx, 0x389c0e25
jne 0x55b1fa
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55b1fa
mov ecx, 0x3aca7e6
jmp 0x55b1fa
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xb
mov ecx, dword [esi + 0x94]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xd
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x94]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x55b302
cmp eax, 0xc6e82640
je 0x55b36c
cmp eax, 0x950d98a
jne 0x55b2c2
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x55b2c2
cmp eax, 0x31a61df5
je 0x55b322
cmp eax, 0x4d86efb0
jne 0x55b2c2
mov ecx, dword [esi + 0x94]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x55b2c2
mov ecx, dword [esi + 0x94]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x55b2c2
mov ebx, dword [esi + 0x58]
mov eax, dword [esi + 8]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x84]
mov dword [ebx], eax
mov eax, dword [esi + 0x48]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf6cc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 0x40]
mov dword [ebx + 8], edx
setl dl
mov ebx, 0xeb760989
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x55b3ec
cmp ecx, 0x20e9c049
je 0x55b403
cmp ecx, 0x3b23d0b1
jne 0x55b3d2
jmp 0x55b433
cmp ecx, 0x9c6e8745
je 0x55b407
cmp ecx, 0xeb760989
jne 0x55b3d2
mov ecx, 0x20e9c049
jmp 0x55b3d2
mov ecx, eax
jmp 0x55b3d2
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55b3d2
mov eax, dword [esi + 0x68]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x58]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x55b4cb
cmp ecx, 0xcfcad29c
je 0x55b50e
cmp ecx, 0x3aca7e6
jne 0x55b4af
mov ecx, eax
jmp 0x55b4af
cmp ecx, 0x7c4a5f2
je 0x55b507
cmp ecx, 0x389c0e25
jne 0x55b4af
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55b4af
mov ecx, 0x3aca7e6
jmp 0x55b4af
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xb
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xc
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x55b5b5
cmp eax, 0xc6e82640
je 0x55aff8
cmp eax, 0x950d98a
jne 0x55b570
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x55b570
cmp eax, 0x31a61df5
je 0x55b5d2
cmp eax, 0x4d86efb0
jne 0x55b570
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x55b570
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x55b570
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x55b964
mov dword [esi + 0x84], 1
jmp 0x55b668
mov ecx, dword [esi + 0x84]
inc ecx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x84], ecx
cmp ecx, edx
jae 0x55b964
mov ecx, dword [esi + 8]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
setne al
cmp dword [esi + 4], 0xa
setl ah
setge cl
mov edi, dword [esi + 0x84]
mov dword [esi + 4], edi
cmp ah, dl
jne 0x55b6c0
or cl, al
mov eax, dword [esi + 0x84]
mov dword [esi + 4], eax
je 0x55b6c0
jmp 0x59167e
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push ebx
call fcn.00433980
cmp dword [esi + 4], 0
je 0x55b921
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0x24], ecx
mov dword [esi + 0x38], eax
test eax, ecx
sete byte [esi + 0x10]
mov ebx, 0xbf25ae54
mov ecx, 0x20ab24e5
cmove ebx, ecx
sete al
mov dword [esi + 0xc], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ebx, edx
setl dl
xor dl, al
mov eax, dword [esi + 0x3c]
mov edi, dword [eax]
mov eax, dword [esi + 4]
lea edx, [eax + eax*2]
lea eax, [edi + edx*4]
mov dword [esi + 0x34], eax
cmovne ebx, ecx
mov dword [esi + 8], ebx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x55b73f
cmp edx, 0xffb13445
je 0x55b776
cmp edx, 0x20ab24e5
jne 0x55b725
jmp 0x55b782
cmp edx, 0xbf25ae54
je 0x55b77b
cmp edx, 0xe6642f9a
jne 0x55b725
movzx ecx, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ch, cl
xor ch, dl
mov eax, 0xbf25ae54
mov ebx, 0xffb13445
cmovne eax, ebx
test dl, dl
mov edx, eax
cmovne edx, ebx
test cl, cl
cmove edx, eax
jmp 0x55b725
mov edx, dword [esi + 8]
jmp 0x55b725
mov edx, 0xffb13445
jmp 0x55b725
mov ecx, dword [esi + 4]
dec ecx
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ebx, dword [eax]
mov edx, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
lea eax, [edi + eax*4]
mov dword [esi + 0x40], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55b7d0
cmp eax, 0xffb13445
je 0x55b80b
cmp eax, 0x20ab24e5
jne 0x55b7b9
jmp 0x55b817
cmp eax, 0xbf25ae54
je 0x55b810
cmp eax, 0xe6642f9a
jne 0x55b7b9
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov dword [esi + 0x48], edx
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
mov edx, dword [esi + 0x48]
jmp 0x55b7b9
mov eax, dword [esi + 8]
jmp 0x55b7b9
mov eax, 0xffb13445
jmp 0x55b7b9
mov eax, dword [esi + 0x40]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
cmp ebx, dword [eax]
sbb edx, dword [eax + 4]
jge 0x55b921
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55b85b
cmp eax, 0xffb13445
je 0x55b890
cmp eax, 0x20ab24e5
jne 0x55b844
jmp 0x55b89c
cmp eax, 0xbf25ae54
je 0x55b895
cmp eax, 0xe6642f9a
jne 0x55b844
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x55b844
mov eax, dword [esi + 8]
jmp 0x55b844
mov eax, 0xffb13445
jmp 0x55b844
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x40]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x55b8d9
cmp ecx, 0xffb13445
je 0x55b915
cmp ecx, 0x20ab24e5
jne 0x55b8bc
jmp 0x55b6a7
cmp ecx, 0xbf25ae54
je 0x55b91a
cmp ecx, 0xe6642f9a
jne 0x55b8bc
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ah, cl
xor ah, al
test cl, cl
mov ecx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ecx, edx
test al, al
mov edi, 0xbf25ae54
cmove ecx, edi
test ah, ah
cmovne ecx, edx
jmp 0x55b8bc
mov ecx, dword [esi + 8]
jmp 0x55b8bc
mov ecx, 0xffb13445
jmp 0x55b8bc
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
mov dword [esi + 8], ecx
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete ah
mov dword [esi + 4], edi
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
jne 0x55b640
or dl, al
je 0x55b640
jmp 0x591694
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x55b9b7
cmp edi, 0x88e9608c
je 0x55b9f6
cmp edi, 0xdf32ec89
jne 0x55b993
mov ecx, dword [esi + 0x70]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x55b993
cmp edi, 0x30b7124c
je 0x55ba4f
cmp edi, 0x124998e2
jne 0x55b993
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x55b993
mov ecx, dword [esi + 0x70]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea edi, [ecx + 1]
mov dword [esi + 4], ecx
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete cl
cmp ebx, 0xa
setl dl
xor dl, cl
mov ecx, 0xdf32ec89
mov edx, 0x30b7124c
cmovne ecx, edx
cmp edi, 0xffffffff
mov edi, ecx
cmove edi, edx
mov dword [esi + 8], ebx
cmp ebx, 0xa
cmovge edi, ecx
mov ecx, dword [esi + 0x18]
jmp 0x55b993
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x55ba9e
cmp ecx, 0x88e9608c
je 0x55bade
cmp ecx, 0xdf32ec89
jne 0x55ba7a
mov ecx, dword [esi + 0x64]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x55ba7a
cmp ecx, 0x30b7124c
je 0x55bb2b
cmp ecx, 0x124998e2
jne 0x55ba7a
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55ba7a
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x55ba7a
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x55bb5b
or cl, al
test cl, 1
jne 0x59165e
mov eax, dword [esi + 0x70]
mov eax, dword [eax]
mov ecx, dword [esi + 0x64]
cmp eax, dword [ecx]
je 0x55bf72
mov ecx, dword [esi + 0x70]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov eax, dword [eax]
mov dword [esi + 8], eax
mov eax, 0xfc04dcc5
cmovge ecx, eax
xor dl, bl
cmovne ecx, edi
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x55bbe3
cmp edx, 0x87fb68d6
je 0x55bc1f
cmp edx, 0xfc04dcc5
jne 0x55bbc4
mov edx, 0x87fb68d6
jmp 0x55bbc4
cmp edx, 0x2601f5a7
je 0x55bc23
cmp edx, 0x5a893bc4
jne 0x55bbc4
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xfc04dcc5
mov edi, 0x87fb68d6
cmovne edx, edi
test bl, bl
mov eax, 0xfc04dcc5
cmove edx, eax
test bh, bh
cmovne edx, edi
jmp 0x55bbc4
mov edx, ecx
jmp 0x55bbc4
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov dword [esi + 0x40], ecx
cmp dword [esi + 8], ecx
je 0x55be40
mov eax, dword [0x5cf6f0]
mov dword [esi + 0xc], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x55bc69
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x40]
je 0x55be40
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne cl
cmp dword [esi + 0x38], 0xa
setge al
mov edx, eax
xor dl, cl
or al, cl
xor al, 1
or al, dl
mov byte [esi + 0x24], al
jne 0x55bd3a
mov eax, dword [esi + 0xc]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
test ecx, ecx
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov ebx, 0x6707b2cf
cmove ecx, ebx
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl dl
mov edi, 0x4c6ca682
cmovge ecx, edi
xor dl, al
cmovne ecx, ebx
mov edx, 0x1b272c9a
jmp 0x55bcd9
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x55bcf3
cmp edx, 0x4c6ca682
je 0x55bd2a
cmp edx, 0x6707b2cf
jne 0x55bcd9
jmp 0x55bd31
cmp edx, 0xf74fd645
je 0x55bcd7
cmp edx, 0x1b272c9a
jne 0x55bcd9
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x55bcd9
mov edx, 0xf74fd645
jmp 0x55bcd9
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0xc]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
and edx, 1
sete dl
mov edi, dword [esi + 4]
cmp edi, 0xa
setl ah
xor ah, dl
mov edx, 0x4c6ca682
mov eax, 0x6707b2cf
cmovne edx, eax
and ecx, 1
sete byte [esi + 0x10]
mov ebx, edx
cmove ebx, eax
cmp edi, 0xa
setl byte [esi + 0x28]
cmovge ebx, edx
mov edx, 0x1b272c9a
cmp edx, 0x4c6ca681
jle 0x55bd98
cmp edx, 0x4c6ca682
je 0x55bdd8
cmp edx, 0x6707b2cf
jne 0x55bd7e
jmp 0x55bde3
cmp edx, 0xf74fd645
je 0x55bddf
cmp edx, 0x1b272c9a
jne 0x55bd7e
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov al, dl
xor al, ah
test dl, dl
mov edx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne edx, edi
test ah, ah
mov edi, 0x4c6ca682
cmove edx, edi
test al, al
mov eax, 0xf74fd645
cmovne edx, eax
jmp 0x55bd7e
mov edx, 0xf74fd645
jmp 0x55bd7e
mov edx, ebx
jmp 0x55bd7e
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
cmp byte [esi + 0x24], 0
je 0x55bca2
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x55bc57
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0xc], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x55bc57
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x38], 0xa
setl cl
test cl, al
jne 0x55be66
xor cl, al
je 0x591668
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x55beb1
cmp eax, 0xcd5e6053
je 0x55bf06
cmp eax, 0x18ed46ca
jne 0x55be8f
mov eax, dword [esi + 0x70]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x55be8f
cmp eax, 0x5499d804
je 0x55bf35
cmp eax, 0x685e39a2
jne 0x55be8f
mov eax, dword [esi + 0x70]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x55be8f
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x55be8f
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf6c4], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x55bb5b
or cl, al
je 0x55bb5b
jmp 0x59165e
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dl
sete bl
mov dword [esi + 8], ecx
cmp ecx, 0xa
setge dh
setl bh
xor bh, bl
mov edi, dword [esi + 0x80]
jne 0x55afc4
or dh, dl
mov edi, dword [esi + 0x80]
je 0x55afc4
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dh
sete bl
mov dword [esi + 8], ecx
cmp ecx, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
test bh, bh
jne 0x55c012
test dl, dl
jne 0x55bfc0
mov edi, dword [esi + 0x80]
jmp 0x55afc4
mov edi, dword [esi + 0x80]
jmp 0x55afc4
mov dword [esi + 0x5c], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
sete dh
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov edi, esp
sub esp, 0x10
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
mov dword [esi + 0x54], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov esp, ecx
push eax
mov dword [esi + 0x68], esp
push eax
mov dword [esi + 0x70], esp
push eax
mov dword [esi + 0x64], esp
test dl, dl
je 0x55c046
mov dword [esi + 0x94], edi
mov dword [esi + 0x60], ebx
lea edx, [ebx + 0x10]
mov dword [esi + 0x8c], edx
mov dword [esi + 0x58], ecx
add ecx, 0x10
mov dword [esi + 0x90], ecx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x56413b
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x88], edi
mov dword [esi + 0x80], eax
shr eax, 1
mov dword [esi + 0xc], eax
mov dword [esi + 0x24], 0
mov edi, dword [esi + 0x24]
mov eax, dword [esi + 0xc]
mov dword [esi + 8], eax
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
mov dword [esi + 4], ecx
imul eax, ecx
test al, 1
sete dh
mov ecx, dword [0x5cf6c4]
mov dword [esi + 0xc], ecx
cmp ecx, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x55c115
or dl, al
test dl, 1
jne 0x591642
mov edx, dword [esi + 8]
mov eax, edx
imul eax, edi
mov ebx, edi
mulx edi, ecx, edx
add eax, eax
add eax, edi
mov edi, dword [esi + 0x88]
cmp ecx, edi
sbb eax, 0
jae 0x55c6f1
sub edi, edx
mov ecx, edi
mov dword [esi + 0x34], edi
mov eax, 0
sbb eax, ebx
mov dword [esi + 0x38], eax
mov edi, edx
add edi, 1
mov dword [esi + 0x48], ebx
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 4], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x40], edx
mov dword [esi + 0x84], eax
mov edx, eax
mov dword [esi + 0x24], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 4]
mov dword [esi + 0xc], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x34]
sub eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x38]
sbb ecx, edx
or ecx, eax
jne 0x55c0d7
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x60]
mov edi, dword [esi + 8]
mov dword [ecx], edi
mov edi, dword [esi + 0x48]
mov dword [ecx + 4], edi
mov edi, dword [esi + 0x84]
mov dword [ecx + 8], edi
setl byte [esi + 0x28]
mov edi, dword [esi + 4]
mov dword [ecx + 0xc], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x55c21d
cmp ecx, 0x20e9c049
je 0x55c234
cmp ecx, 0x3b23d0b1
jne 0x55c203
jmp 0x55c25f
cmp ecx, 0x9c6e8745
je 0x55c238
cmp ecx, 0xeb760989
jne 0x55c203
mov ecx, 0x20e9c049
jmp 0x55c203
mov ecx, eax
jmp 0x55c203
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x55c203
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x94]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x8c]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x55c2f5
cmp ecx, 0xcfcad29c
je 0x55c338
cmp ecx, 0x3aca7e6
jne 0x55c2d9
mov ecx, eax
jmp 0x55c2d9
cmp ecx, 0x7c4a5f2
je 0x55c331
cmp ecx, 0x389c0e25
jne 0x55c2d9
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55c2d9
mov ecx, 0x3aca7e6
jmp 0x55c2d9
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x22
mov ecx, dword [esi + 0x94]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x24
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x94]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x55c3e6
cmp eax, 0xc6e82640
je 0x55c454
cmp eax, 0x950d98a
jne 0x55c3a1
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x55c3a1
cmp eax, 0x31a61df5
je 0x55c406
cmp eax, 0x4d86efb0
jne 0x55c3a1
mov ecx, dword [esi + 0x94]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x55c3a1
mov ecx, dword [esi + 0x94]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x55c3a1
mov ebx, dword [esi + 0x58]
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov ecx, dword [0x5cf6c8]
lea eax, [ecx - 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
mov edx, dword [0x5cf6cc]
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne ecx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, dword [esi + 0x84]
mov dword [ebx], eax
mov eax, dword [esi + 0x48]
mov dword [ebx + 0xc], eax
mov eax, ecx
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
cmovge eax, ecx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x55c4d8
cmp ecx, 0x20e9c049
je 0x55c4ef
cmp ecx, 0x3b23d0b1
jne 0x55c4be
jmp 0x55c51a
cmp ecx, 0x9c6e8745
je 0x55c4f3
cmp ecx, 0xeb760989
jne 0x55c4be
mov ecx, 0x20e9c049
jmp 0x55c4be
mov ecx, eax
jmp 0x55c4be
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x55c4be
mov eax, dword [esi + 0x68]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x4c]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x90]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x58]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x55c5ae
cmp ecx, 0xcfcad29c
je 0x55c5ec
cmp ecx, 0x3aca7e6
jne 0x55c592
mov ecx, eax
jmp 0x55c592
cmp ecx, 0x7c4a5f2
je 0x55c5e5
cmp ecx, 0x389c0e25
jne 0x55c592
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x55c592
mov ecx, 0x3aca7e6
jmp 0x55c592
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x22
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x23
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x55c68e
cmp eax, 0xc6e82640
je 0x55c0d7
cmp eax, 0x950d98a
jne 0x55c64e
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x55c64e
cmp eax, 0x31a61df5
je 0x55c6ab
cmp eax, 0x4d86efb0
jne 0x55c64e
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x55c64e
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x55c64e
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x55ca2a
mov dword [esi + 0x48], 1
jmp 0x55c738
mov ecx, dword [esi + 0x48]
inc ecx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x48], ecx
cmp ecx, edx
jae 0x55ca2a
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0xc], 0xa
setl cl
mov edx, dword [esi + 0x48]
mov dword [esi + 4], edx
test cl, al
jne 0x55c785
xor cl, al
mov eax, dword [esi + 0x48]
mov dword [esi + 4], eax
jne 0x55c785
jmp 0x591684
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edx
call fcn.00433980
cmp dword [esi + 4], 0
je 0x55c9ec
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0x24], ecx
mov dword [esi + 0x38], eax
test eax, ecx
sete byte [esi + 0x10]
mov ecx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove ecx, ebx
sete al
mov dword [esi + 0xc], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ecx, edx
setl dl
xor dl, al
mov eax, dword [esi + 0x3c]
mov edi, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
lea eax, [edi + eax*4]
mov dword [esi + 0x34], eax
cmovne ecx, ebx
mov dword [esi + 8], ecx
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55c801
cmp eax, 0xffb13445
je 0x55c836
cmp eax, 0x20ab24e5
jne 0x55c7ea
jmp 0x55c842
cmp eax, 0xbf25ae54
je 0x55c83b
cmp eax, 0xe6642f9a
jne 0x55c7ea
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne ebx, ecx
test al, al
mov eax, ebx
cmovne eax, ecx
test dl, dl
cmove eax, ebx
jmp 0x55c7ea
mov eax, dword [esi + 8]
jmp 0x55c7ea
mov eax, 0xffb13445
jmp 0x55c7ea
mov edx, dword [esi + 4]
dec edx
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [eax]
mov ebx, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], edx
lea eax, [edx + edx*2]
lea eax, [edi + eax*4]
mov dword [esi + 0x40], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55c890
cmp eax, 0xffb13445
je 0x55c8d7
cmp eax, 0x20ab24e5
jne 0x55c879
jmp 0x55c8e3
cmp eax, 0xbf25ae54
je 0x55c8dc
cmp eax, 0xe6642f9a
jne 0x55c879
mov edi, ecx
mov ecx, ebx
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, bl
xor bh, al
test al, al
mov eax, 0xbf25ae54
mov edx, 0xffb13445
cmovne eax, edx
test bl, bl
mov edx, 0xbf25ae54
cmove eax, edx
test bh, bh
mov ebx, ecx
mov ecx, edi
mov edx, 0xffb13445
cmovne eax, edx
jmp 0x55c879
mov eax, dword [esi + 8]
jmp 0x55c879
mov eax, 0xffb13445
jmp 0x55c879
mov eax, dword [esi + 0x40]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
cmp ecx, dword [eax]
sbb ebx, dword [eax + 4]
jge 0x55c9ec
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55c927
cmp eax, 0xffb13445
je 0x55c961
cmp eax, 0x20ab24e5
jne 0x55c910
jmp 0x55c96d
cmp eax, 0xbf25ae54
je 0x55c966
cmp eax, 0xe6642f9a
jne 0x55c910
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test dl, dl
mov ebx, 0xbf25ae54
cmove eax, ebx
test dh, dh
cmovne eax, edi
jmp 0x55c910
mov eax, dword [esi + 8]
jmp 0x55c910
mov eax, 0xffb13445
jmp 0x55c910
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x40]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55c9a7
cmp eax, 0xffb13445
je 0x55c9e0
cmp eax, 0x20ab24e5
jne 0x55c98d
jmp 0x55c76c
cmp eax, 0xbf25ae54
je 0x55c9e5
cmp eax, 0xe6642f9a
jne 0x55c98d
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edi, 0xbf25ae54
mov ecx, edx
mov edx, 0xffb13445
cmovne edi, edx
test al, al
mov eax, edi
cmovne eax, edx
mov edx, ecx
test bl, bl
cmove eax, edi
jmp 0x55c98d
mov eax, dword [esi + 8]
jmp 0x55c98d
mov eax, 0xffb13445
jmp 0x55c98d
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
mov dword [esi + 4], ecx
imul eax, ecx
test al, 1
sete dh
mov dword [esi + 0xc], edi
cmp edi, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x55c716
or dl, al
test dl, 1
je 0x55c716
jmp 0x591696
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx - 1]
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x55ca7b
cmp edi, 0x88e9608c
je 0x55cac0
cmp edi, 0xdf32ec89
jne 0x55ca57
mov ecx, dword [esi + 0x70]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x55ca57
cmp edi, 0x30b7124c
je 0x55cb18
cmp edi, 0x124998e2
jne 0x55ca57
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, cl
xor bh, bl
test cl, cl
mov edi, 0xdf32ec89
mov ecx, 0x88e9608c
cmovne edi, ecx
test bl, bl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bh, bh
mov ecx, 0x88e9608c
cmovne edi, ecx
jmp 0x55ca57
mov ecx, dword [esi + 0x70]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 8], ebx
cmp ebx, 0xa
mov ebx, 0xdf32ec89
cmovge edi, ebx
setl ch
xor ch, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x55ca57
lea eax, [edx + 1]
imul eax, edx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x55cb64
cmp ecx, 0x88e9608c
je 0x55cba4
cmp ecx, 0xdf32ec89
jne 0x55cb40
mov ecx, dword [esi + 0x64]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x55cb40
cmp ecx, 0x30b7124c
je 0x55cbf7
cmp ecx, 0x124998e2
jne 0x55cb40
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55cb40
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov edi, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne edi, ebx
cmp ecx, 0xffffffff
mov ecx, edi
cmove ecx, ebx
cmp edx, 0xa
cmovge ecx, edi
mov edx, dword [esi + 0x18]
jmp 0x55cb40
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x55cc25
xor cl, al
je 0x591660
mov eax, dword [esi + 0x70]
mov eax, dword [eax]
mov ecx, dword [esi + 0x64]
cmp eax, dword [ecx]
je 0x55d03a
mov ecx, dword [esi + 0x70]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmovne ebx, edi
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
mov ecx, ebx
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov eax, dword [eax]
mov dword [esi + 8], eax
cmovge ecx, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x55ccb1
cmp edx, 0x87fb68d6
je 0x55cced
cmp edx, 0xfc04dcc5
jne 0x55cc92
mov edx, 0x87fb68d6
jmp 0x55cc92
cmp edx, 0x2601f5a7
je 0x55ccf1
cmp edx, 0x5a893bc4
jne 0x55cc92
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, bl
xor bh, dl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x55cc92
mov edx, ecx
jmp 0x55cc92
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x55cf11
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x55cd37
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x55cf11
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x34], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x55ce13
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
mov dword [esi + 0xc], ecx
mov ebx, dword [esi + 0xc]
test ebx, ebx
sete al
mov ecx, dword [esi + 4]
cmp ecx, 0xa
setl dl
xor dl, al
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
test ebx, ebx
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge eax, edx
mov ecx, 0x1b272c9a
jmp 0x55cdad
mov ecx, eax
cmp ecx, 0x4c6ca681
jle 0x55cdc7
cmp ecx, 0x4c6ca682
je 0x55ce03
cmp ecx, 0x6707b2cf
jne 0x55cdad
jmp 0x55ce0a
cmp ecx, 0xf74fd645
je 0x55cdab
cmp ecx, 0x1b272c9a
jne 0x55cdad
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne ecx, ebx
test dl, dl
mov edi, 0x4c6ca682
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55cdad
mov ecx, 0xf74fd645
jmp 0x55cdad
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ebx, eax
xor ebx, 0xfffffffe
mov edx, ebx
and edx, eax
sete dl
mov ecx, dword [esi + 4]
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
and ebx, eax
mov dword [esi + 0xc], ebx
sete byte [esi + 0x10]
mov ebx, edx
cmove ebx, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge ebx, edx
mov eax, 0x1b272c9a
cmp eax, 0x4c6ca681
jle 0x55ce74
cmp eax, 0x4c6ca682
je 0x55cea9
cmp eax, 0x6707b2cf
jne 0x55ce5d
jmp 0x55ceb4
cmp eax, 0xf74fd645
je 0x55ceb0
cmp eax, 0x1b272c9a
jne 0x55ce5d
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov edi, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne edi, ecx
test al, al
mov eax, edi
cmovne eax, ecx
test dl, dl
cmove eax, edi
jmp 0x55ce5d
mov eax, 0xf74fd645
jmp 0x55ce5d
mov eax, ebx
jmp 0x55ce5d
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x55cd6f
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x55cd25
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x55cd25
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [esi + 0x34], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x55cf38
or cl, al
test cl, 1
jne 0x59166c
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x55cf82
cmp eax, 0xcd5e6053
je 0x55cfd7
cmp eax, 0x18ed46ca
jne 0x55cf60
mov eax, dword [esi + 0x70]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x55cf60
cmp eax, 0x5499d804
je 0x55d001
cmp eax, 0x685e39a2
jne 0x55cf60
mov eax, dword [esi + 0x70]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x55cf60
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x55cf60
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x55cc25
or cl, al
test cl, 1
je 0x55cc25
jmp 0x591660
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl dh
mov edi, dword [esi + 0x80]
test dh, dl
jne 0x55c0a3
xor dh, dl
mov edi, dword [esi + 0x80]
jne 0x55c0a3
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
setne bl
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl bh
setge dl
or dl, bl
cmp bh, dh
jne 0x55d0d3
test dl, dl
jne 0x55d083
mov edi, dword [esi + 0x80]
jmp 0x55c0a3
mov edi, dword [esi + 0x80]
jmp 0x55c0a3
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete al
cmp dword [esi + 8], 0xa
setl cl
test cl, al
jne 0x55d102
xor cl, al
je 0x5916ba
mov esp, dword [esi + 0x5c]
mov dword [esi + 0x94], esp
mov eax, dword [0x5d21a8]
mov ecx, dword [0x5d21ac]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x46]
cmp ecx, 0xa
setl byte [esi + 0x47]
mov eax, 0xd31607fa
cmp eax, 0x57676504
jg 0x55d179
cmp eax, 0xbf311110
je 0x56b190
cmp eax, 0xd31607fa
jne 0x55d134
movzx ecx, byte [esi + 0x46]
movzx eax, byte [esi + 0x47]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x5af2d6e3
mov edi, 0x57676505
cmovne eax, edi
test cl, cl
mov ecx, 0x5af2d6e3
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x55d134
cmp eax, 0x57676505
je 0x55d1b9
cmp eax, 0x5af2d6e3
jne 0x55d134
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
mov dword [esi + 0x3c], esp
setge cl
setl ch
xor ch, dl
jne 0x55d1f1
or cl, al
test cl, 1
jne 0x55d30f
jmp 0x55d1f1
mov dword [esi + 0x40], esp
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x55d6a4
xor cl, al
je 0x55d7be
jmp 0x55d6a4
push eax
mov dword [esi + 0x38], esp
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
mov dword [esi + 0x34], ecx
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 4], edi
mov ecx, edi
call fcn.0040cd80
mov eax, dword [0x5cf4b8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4bc]
sete byte [esi + 0x28]
sete dl
mov eax, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x18]
setl cl
mov ebx, 0x8f0f2ca8
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x13d3b53a
cmp ecx, 0x13d3b539
jg 0x55d27f
cmp ecx, 0x8f0f2ca8
je 0x55d2bb
cmp ecx, 0x11f1fb1a
jne 0x55d265
jmp 0x55d2c6
cmp ecx, 0x1a1c1d98
je 0x55d2c2
cmp ecx, 0x13d3b53a
jne 0x55d265
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x8f0f2ca8
mov ebx, 0x1a1c1d98
cmovne ecx, ebx
test dl, dl
mov edi, 0x8f0f2ca8
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55d265
mov ecx, 0x1a1c1d98
jmp 0x55d265
mov ecx, eax
jmp 0x55d265
mov edi, dword [esi + 4]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf5f4], 0xa
mov byte [edi], 0
setge cl
setl ah
xor ah, dl
jne 0x55d3f6
or cl, al
je 0x55d3f6
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 8], edi
mov ecx, edi
call fcn.0040cd80
mov edx, dword [0x5cf4b8]
mov ecx, dword [0x5cf4bc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x8f0f2ca8
mov ebx, 0x11f1fb1a
cmovne edx, ebx
cmp eax, 0xffffffff
sete byte [esi + 0x28]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x18]
cmovge eax, edx
mov ecx, 0x13d3b53a
jmp 0x55d385
mov ecx, eax
cmp ecx, 0x13d3b539
jg 0x55d39f
cmp ecx, 0x8f0f2ca8
je 0x55d3d6
cmp ecx, 0x11f1fb1a
jne 0x55d385
jmp 0x55d3dd
cmp ecx, 0x1a1c1d98
je 0x55d383
cmp ecx, 0x13d3b53a
jne 0x55d385
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov ch, dl
xor ch, cl
mov ebx, 0x8f0f2ca8
mov edi, 0x1a1c1d98
cmovne ebx, edi
test cl, cl
mov ecx, ebx
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
jmp 0x55d385
mov ecx, 0x1a1c1d98
jmp 0x55d385
mov eax, dword [esi + 8]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
jmp 0x55d1f1
mov dword [esi + 0x24], 0
cmp dword [esi + 0x24], 0x3e8
je 0x55d659
mov ecx, dword [esi + 0x34]
movsx eax, byte [ecx + 1]
movsx edx, byte [ecx]
mov dword [esi + 0xc0], 0x18
push eax
push edx
push dword [esi + 0x38]
call fcn.0041e700
movsx eax, al
mov ecx, dword [esi + 4]
push eax
call fcn.00441240
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf5f4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x55d461
or cl, al
jne 0x55d493
mov ecx, dword [esi + 4]
call fcn.00423280
mov edx, dword [0x5cf5f0]
lea ecx, [edx + 1]
imul ecx, edx
test cl, 1
sete dh
cmp dword [0x5cf5f4], 0xa
setl bl
setge dl
cmp bl, dh
jne 0x55d49d
or dl, cl
test dl, 1
je 0x55d49d
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x55d461
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
cmp byte [ecx + eax - 1], 0x6f
je 0x55d4c2
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov ecx, dword [edi + 0x10]
cmp byte [ecx + eax - 1], 0x75
jne 0x55d622
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov dword [esi + 8], eax
mov ecx, edi
call fcn.00423280
add eax, dword [edi + 0x10]
mov dword [esi + 0xc], eax
mov ecx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
and ecx, 1
sete byte [esi + 0x40]
cmp eax, 0xa
setl bh
setge bl
cmp bh, byte [esi + 0x40]
jne 0x55d50f
or bl, dl
test bl, 1
jne 0x5916ea
mov edx, dword [esi + 0xc]
cmp dword [esi + 8], edx
jne 0x55d52c
jmp 0x55d636
mov edx, dword [esi + 8]
inc edx
mov dword [esi + 8], edx
cmp edx, dword [esi + 0xc]
je 0x55d636
mov eax, dword [0x5cf5f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf5fc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xc9893d93
mov edi, 0x603280c6
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
setl cl
mov ebx, 0xc9893d93
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0xfc461c64
cmp ecx, 0xfc461c63
jg 0x55d590
cmp ecx, 0xc9893d93
je 0x55d5c7
cmp ecx, 0xdac56cfa
jne 0x55d574
mov ecx, eax
jmp 0x55d574
cmp ecx, 0x603280c6
je 0x55d5ce
cmp ecx, 0xfc461c64
jne 0x55d574
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov ebx, 0xc9893d93
mov edi, 0xdac56cfa
cmovne ebx, edi
test cl, cl
mov ecx, ebx
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
jmp 0x55d574
mov ecx, 0xdac56cfa
jmp 0x55d574
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x18]
movsx eax, byte [ebx]
push eax
call fcn.005a47b5
add esp, 4
mov ecx, eax
xor cl, 0xf5
and cl, al
mov byte [ebx], cl
mov ecx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x55d51c
xor dh, dl
jne 0x55d51c
jmp 0x59169a
mov edx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea ecx, [edx - 1]
imul ecx, edx
and ecx, 1
inc dword [esi + 0x24]
test ecx, ecx
sete cl
cmp eax, 0xa
setl al
test cl, al
jne 0x55d3fd
xor cl, al
jne 0x55d3fd
jmp 0x5916ec
mov ecx, dword [esi + 4]
call fcn.00423280
cmp byte [eax + 0xd7], 0x31
jne 0x560eac
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x560e1d
or cl, al
test cl, 1
jne 0x560e53
jmp 0x560e1d
push eax
mov dword [esi + 0x38], esp
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
mov dword [esi + 0x34], ecx
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 4], edi
mov ecx, edi
call fcn.0040cd80
mov eax, dword [0x5cf4b8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4bc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
sete cl
mov eax, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov ebx, 0x8f0f2ca8
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x13d3b53a
cmp ecx, 0x13d3b539
jg 0x55d733
cmp ecx, 0x8f0f2ca8
je 0x55d76a
cmp ecx, 0x11f1fb1a
jne 0x55d719
jmp 0x55d775
cmp ecx, 0x1a1c1d98
je 0x55d771
cmp ecx, 0x13d3b53a
jne 0x55d719
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov ch, dl
xor ch, cl
mov edi, 0x8f0f2ca8
mov ebx, 0x1a1c1d98
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x55d719
mov ecx, 0x1a1c1d98
jmp 0x55d719
mov ecx, eax
jmp 0x55d719
mov edi, dword [esi + 4]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf5f4], 0xa
mov byte [edi], 0
setge cl
setl ah
xor ah, dl
jne 0x55d8a6
or cl, al
je 0x55d8a6
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 8], edi
mov ecx, edi
call fcn.0040cd80
mov eax, dword [0x5cf4b8]
lea ecx, [eax - 1]
imul ecx, eax
mov edx, dword [0x5cf4bc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
sete cl
mov eax, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov ebx, 0x8f0f2ca8
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x13d3b53a
jmp 0x55d830
mov ecx, eax
cmp ecx, 0x13d3b539
jg 0x55d84a
cmp ecx, 0x8f0f2ca8
je 0x55d886
cmp ecx, 0x11f1fb1a
jne 0x55d830
jmp 0x55d88d
cmp ecx, 0x1a1c1d98
je 0x55d82e
cmp ecx, 0x13d3b53a
jne 0x55d830
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x8f0f2ca8
mov edi, 0x1a1c1d98
cmovne ecx, edi
test dl, dl
mov ebx, 0x8f0f2ca8
cmove ecx, ebx
test dh, dh
cmovne ecx, edi
jmp 0x55d830
mov ecx, 0x1a1c1d98
jmp 0x55d830
mov eax, dword [esi + 8]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
jmp 0x55d6a4
mov dword [esi + 0x24], 0
cmp dword [esi + 0x24], 0x3e8
je 0x55daff
mov ecx, dword [esi + 0x34]
movsx eax, byte [ecx + 1]
movsx edx, byte [ecx]
mov dword [esi + 0xc0], 0xe
push eax
push edx
push dword [esi + 0x38]
call fcn.0041e700
movsx eax, al
mov ecx, dword [esi + 4]
push eax
call fcn.00441240
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x55d90b
xor cl, al
je 0x55d93d
mov ecx, dword [esi + 4]
call fcn.00423280
mov edx, dword [0x5cf5f0]
lea ecx, [edx + 1]
imul ecx, edx
test cl, 1
sete dh
cmp dword [0x5cf5f4], 0xa
setl bl
setge dl
cmp bl, dh
jne 0x55d947
or dl, cl
test dl, 1
je 0x55d947
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x55d90b
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
cmp byte [ecx + eax - 1], 0x6f
je 0x55d96c
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov ecx, dword [edi + 0x10]
cmp byte [ecx + eax - 1], 0x75
jne 0x55dabe
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov dword [esi + 8], eax
mov ecx, edi
call fcn.00423280
add eax, dword [edi + 0x10]
mov dword [esi + 0xc], eax
mov ecx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x55d9b3
xor dh, dl
je 0x5916ee
mov edx, dword [esi + 0xc]
cmp dword [esi + 8], edx
jne 0x55d9d0
jmp 0x55dad6
mov edx, dword [esi + 8]
inc edx
mov dword [esi + 8], edx
cmp edx, dword [esi + 0xc]
je 0x55dad6
mov eax, dword [0x5cf5f8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf5fc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xc9893d93
mov edi, 0x603280c6
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0xc9893d93
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0xfc461c64
cmp ecx, 0xfc461c63
jg 0x55da35
cmp ecx, 0xc9893d93
je 0x55da6c
cmp ecx, 0xdac56cfa
jne 0x55da19
mov ecx, eax
jmp 0x55da19
cmp ecx, 0x603280c6
je 0x55da73
cmp ecx, 0xfc461c64
jne 0x55da19
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov ebx, 0xc9893d93
mov edi, 0xdac56cfa
cmovne ebx, edi
test cl, cl
mov ecx, ebx
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
jmp 0x55da19
mov ecx, 0xdac56cfa
jmp 0x55da19
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x18]
movsx eax, byte [ebx]
push eax
call fcn.005a47b5
add esp, 4
and al, 0xa
mov byte [ebx], al
mov edx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x55d9c0
xor dh, dl
jne 0x55d9c0
jmp 0x59169c
mov ecx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
inc dword [esi + 0x24]
test ecx, ecx
setne cl
sete dl
cmp eax, 0xa
setge al
setl ah
xor ah, dl
jne 0x55d8ad
or cl, al
je 0x55d8ad
jmp 0x5916f0
mov ecx, dword [esi + 4]
call fcn.00423280
cmp byte [eax + 0xd7], 0x31
jne 0x55dbf1
mov eax, dword [0x5cf5f0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x55db3c
xor cl, al
je 0x55db72
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete ch
setne cl
cmp dword [0x5cf5f4], 0xa
setl dh
setge dl
cmp dh, ch
jne 0x55db7c
or dl, cl
je 0x55db7c
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x55db3c
cmp byte [eax + 0x2d0], 0x30
jne 0x55dbf1
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x55dbf1
xor cl, al
jne 0x55dbf1
push 0
push 0
mov edi, dword [sym.imp.KERNEL32.dll_Beep]
call edi
push 0
push 0
call edi
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x55dbf1
or cl, al
test cl, 1
jne 0x55dbb6
mov ecx, dword [esi + 4]
call fcn.0040ed30
mov esp, dword [esi + 0x40]
mov dword [esi + 0xa0], esp
mov dword [esi + 0x9c], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
sete dh
cmp ecx, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x70], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x55dc2b
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x55ec64
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
sete ah
setne al
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setl dh
setge dl
cmp dh, ah
jne 0x55dcfd
or dl, al
jne 0x59171c
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x55e2de
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x55dcbd
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x10]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov edx, dword [esi + 8]
mov dword [ecx], edx
mov edx, dword [esi + 4]
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x8c]
mov dword [ecx + 8], edx
setl byte [esi + 0x28]
mov edx, dword [esi + 0xc]
mov dword [ecx + 0xc], edx
cmovge eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x55de01
cmp ecx, 0x20e9c049
je 0x55de18
cmp ecx, 0x3b23d0b1
jne 0x55dde7
jmp 0x55de43
cmp ecx, 0x9c6e8745
je 0x55de1c
cmp ecx, 0xeb760989
jne 0x55dde7
mov ecx, 0x20e9c049
jmp 0x55dde7
mov ecx, eax
jmp 0x55dde7
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x55dde7
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x4c]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x90]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x68]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x55deda
cmp ecx, 0xcfcad29c
je 0x55df1d
cmp ecx, 0x3aca7e6
jne 0x55debe
mov ecx, eax
jmp 0x55debe
cmp ecx, 0x7c4a5f2
je 0x55df16
cmp ecx, 0x389c0e25
jne 0x55debe
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55debe
mov ecx, 0x3aca7e6
jmp 0x55debe
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xf
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x11
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x55dfc5
cmp eax, 0xc6e82640
je 0x55e02f
cmp eax, 0x950d98a
jne 0x55df80
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x55df80
cmp eax, 0x31a61df5
je 0x55dfe2
cmp eax, 0x4d86efb0
jne 0x55df80
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x55df80
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x55df80
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
mov edi, dword [0x5cf6cc]
cmp edi, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edx, ebx
test ecx, eax
mov ecx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
sete byte [esi + 0x10]
mov eax, dword [esi + 0x8c]
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov dword [ecx + 0xc], eax
mov eax, edx
cmove eax, ebx
cmp edi, 0xa
setl byte [esi + 0x28]
mov edi, dword [esi + 8]
mov dword [ecx + 8], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x55e0b1
cmp ecx, 0x20e9c049
je 0x55e0c8
cmp ecx, 0x3b23d0b1
jne 0x55e097
jmp 0x55e0f8
cmp ecx, 0x9c6e8745
je 0x55e0cc
cmp ecx, 0xeb760989
jne 0x55e097
mov ecx, 0x20e9c049
jmp 0x55e097
mov ecx, eax
jmp 0x55e097
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55e097
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax - 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x70]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x80]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x64]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x55e18f
cmp ecx, 0xcfcad29c
je 0x55e1d2
cmp ecx, 0x3aca7e6
jne 0x55e173
mov ecx, eax
jmp 0x55e173
cmp ecx, 0x7c4a5f2
je 0x55e1cb
cmp ecx, 0x389c0e25
jne 0x55e173
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55e173
mov ecx, 0x3aca7e6
jmp 0x55e173
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xf
mov ecx, dword [esi + 0x70]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x10
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x70]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x55e274
cmp eax, 0xc6e82640
je 0x55dcbd
cmp eax, 0x950d98a
jne 0x55e234
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x55e234
cmp eax, 0x31a61df5
je 0x55e291
cmp eax, 0x4d86efb0
jne 0x55e234
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x55e234
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x55e234
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x55e601
mov dword [esi + 0x48], 1
jmp 0x55e325
mov ebx, dword [esi + 0x48]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x48], ebx
cmp ebx, edx
jae 0x55e601
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp edi, 0xa
setge cl
setl ch
xor ch, dl
mov edx, dword [esi + 0x48]
mov dword [esi + 4], edx
jne 0x55e36e
or cl, al
mov eax, dword [esi + 0x48]
mov dword [esi + 4], eax
test cl, 1
je 0x55e36e
jmp 0x591876
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edi
call fcn.00433980
cmp dword [esi + 4], 0
je 0x55e5ca
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax + 1]
imul edi, eax
mov eax, edi
and eax, 1
sete al
cmp ebx, 0xa
setl cl
xor cl, al
mov eax, 0xbf25ae54
mov ecx, 0x20ab24e5
cmovne eax, ecx
and edi, 1
sete byte [esi + 0x10]
mov edx, eax
cmove edx, ecx
mov dword [esi + 0xc], ebx
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
mov dword [esi + 0x38], ecx
lea eax, [ecx + eax*4]
mov dword [esi + 0x24], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55e3e8
cmp eax, 0xffb13445
je 0x55e422
cmp eax, 0x20ab24e5
jne 0x55e3d1
jmp 0x55e42e
cmp eax, 0xbf25ae54
je 0x55e427
cmp eax, 0xe6642f9a
jne 0x55e3d1
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, al
xor bh, bl
test al, al
mov eax, 0xbf25ae54
mov edx, 0xffb13445
cmovne eax, edx
test bl, bl
mov ecx, 0xbf25ae54
cmove eax, ecx
test bh, bh
cmovne eax, edx
jmp 0x55e3d1
mov eax, dword [esi + 8]
jmp 0x55e3d1
mov eax, 0xffb13445
jmp 0x55e3d1
mov ecx, dword [esi + 4]
dec ecx
test edi, edi
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x40], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x34], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x38]
lea eax, [ecx + eax*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55e481
cmp eax, 0xffb13445
je 0x55e4bb
cmp eax, 0x20ab24e5
jne 0x55e46a
jmp 0x55e4c7
cmp eax, 0xbf25ae54
je 0x55e4c0
cmp eax, 0xe6642f9a
jne 0x55e46a
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, cl
xor ch, al
test al, al
mov eax, 0xbf25ae54
mov ebx, 0xffb13445
cmovne eax, ebx
test cl, cl
mov edx, 0xbf25ae54
cmove eax, edx
test ch, ch
cmovne eax, ebx
jmp 0x55e46a
mov eax, dword [esi + 8]
jmp 0x55e46a
mov eax, 0xffb13445
jmp 0x55e46a
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x40]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x34]
sbb ecx, dword [eax + 4]
jge 0x55e5ca
test edi, edi
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55e50d
cmp eax, 0xffb13445
je 0x55e542
cmp eax, 0x20ab24e5
jne 0x55e4f6
jmp 0x55e54e
cmp eax, 0xbf25ae54
je 0x55e547
cmp eax, 0xe6642f9a
jne 0x55e4f6
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov ebx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ebx, edx
test al, al
mov eax, ebx
cmovne eax, edx
test cl, cl
cmove eax, ebx
jmp 0x55e4f6
mov eax, dword [esi + 8]
jmp 0x55e4f6
mov eax, 0xffb13445
jmp 0x55e4f6
test edi, edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov edi, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55e584
cmp eax, 0xffb13445
je 0x55e5be
cmp eax, 0x20ab24e5
jne 0x55e56a
jmp 0x55e355
cmp eax, 0xbf25ae54
je 0x55e5c3
cmp eax, 0xe6642f9a
jne 0x55e56a
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, al
xor ch, cl
test al, al
mov eax, 0xbf25ae54
mov ebx, 0xffb13445
cmovne eax, ebx
test cl, cl
mov edx, 0xbf25ae54
cmove eax, edx
test ch, ch
cmovne eax, ebx
jmp 0x55e56a
mov eax, dword [esi + 8]
jmp 0x55e56a
mov eax, 0xffb13445
jmp 0x55e56a
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x55e303
xor dl, al
jne 0x55e303
jmp 0x591878
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x55e654
cmp edi, 0x88e9608c
je 0x55e693
cmp edi, 0xdf32ec89
jne 0x55e630
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x55e630
cmp edi, 0x30b7124c
je 0x55e6ec
cmp edi, 0x124998e2
jne 0x55e630
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
test bh, bh
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test cl, cl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bl, bl
cmovne edi, edx
jmp 0x55e630
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea edi, [ecx + 1]
mov dword [esi + 4], ecx
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete cl
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne ecx, ebx
cmp edi, 0xffffffff
mov edi, ecx
cmove edi, ebx
mov dword [esi + 8], edx
cmp edx, 0xa
cmovge edi, ecx
mov ecx, dword [esi + 0x18]
jmp 0x55e630
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x55e73a
cmp ecx, 0x88e9608c
je 0x55e77a
cmp ecx, 0xdf32ec89
jne 0x55e716
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x55e716
cmp ecx, 0x30b7124c
je 0x55e7c7
cmp ecx, 0x124998e2
jne 0x55e716
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55e716
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x55e716
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x55e7f5
xor cl, al
je 0x59187a
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x55ebd2
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov edi, dword [eax]
mov dword [esi + 8], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x55e883
cmp edx, 0x87fb68d6
je 0x55e8bf
cmp edx, 0xfc04dcc5
jne 0x55e864
mov edx, 0x87fb68d6
jmp 0x55e864
cmp edx, 0x2601f5a7
je 0x55e8c3
cmp edx, 0x5a893bc4
jne 0x55e864
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, bl
xor bh, dl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x55e864
mov edx, ecx
jmp 0x55e864
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x55ead5
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x55e909
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x55ead5
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x34], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x55e9d7
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
mov dword [esi + 0xc], ecx
cmp dword [esi + 0xc], 0
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
mov eax, 0x1b272c9a
jmp 0x55e97b
mov eax, ecx
cmp eax, 0x4c6ca681
jle 0x55e992
cmp eax, 0x4c6ca682
je 0x55e9c7
cmp eax, 0x6707b2cf
jne 0x55e97b
jmp 0x55e9ce
cmp eax, 0xf74fd645
je 0x55e979
cmp eax, 0x1b272c9a
jne 0x55e97b
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test al, al
mov eax, edi
cmovne eax, ebx
test dl, dl
cmove eax, edi
jmp 0x55e97b
mov eax, 0xf74fd645
jmp 0x55e97b
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ebx, eax
xor ebx, 0xfffffffe
mov edx, ebx
and edx, eax
sete dl
mov ecx, dword [esi + 4]
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
and ebx, eax
mov dword [esi + 0xc], ebx
sete byte [esi + 0x10]
mov ebx, edx
cmove ebx, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge ebx, edx
mov eax, 0x1b272c9a
cmp eax, 0x4c6ca681
jle 0x55ea38
cmp eax, 0x4c6ca682
je 0x55ea6d
cmp eax, 0x6707b2cf
jne 0x55ea21
jmp 0x55ea78
cmp eax, 0xf74fd645
je 0x55ea74
cmp eax, 0x1b272c9a
jne 0x55ea21
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov edi, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne edi, ecx
test al, al
mov eax, edi
cmovne eax, ecx
test dl, dl
cmove eax, edi
jmp 0x55ea21
mov eax, 0xf74fd645
jmp 0x55ea21
mov eax, ebx
jmp 0x55ea21
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x55e942
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x55e8f7
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x55e8f7
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x34], 0xa
setl cl
test cl, al
jne 0x55eafb
xor cl, al
je 0x59187c
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x55eb45
cmp eax, 0xcd5e6053
je 0x55eba3
cmp eax, 0x18ed46ca
jne 0x55eb23
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x55eb23
cmp eax, 0x5499d804
je 0x55e7c7
cmp eax, 0x685e39a2
jne 0x55eb23
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x18ed46ca
mov ebx, 0x5499d804
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x55eb23
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x55eb23
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete byte [esi + 8]
cmp ecx, 0xa
setl bh
setge bl
mov edi, dword [esi + 0x5c]
cmp bh, byte [esi + 8]
jne 0x55dc8f
or bl, dl
mov edi, dword [esi + 0x5c]
test bl, 1
je 0x55dc8f
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp ecx, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x55ec5c
test dl, dl
je 0x55ec15
mov edi, dword [esi + 0x5c]
jmp 0x55dc8f
mov edi, dword [esi + 0x5c]
jmp 0x55dc8f
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete ah
cmp ecx, 0xa
setge al
setl cl
xor cl, ah
jne 0x55ec87
or al, dl
test al, 1
jne 0x59185c
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
setne dh
cmp eax, 0xa
setge dl
mov ebx, edx
xor bl, dh
or dl, dh
xor dl, 1
or dl, bl
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x70], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x55ecba
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x55fd2e
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
sete ah
setne al
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setl dh
setge dl
cmp dh, ah
jne 0x55ed8c
or dl, al
jne 0x59186c
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x55f35e
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x55ed4c
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 8]
mov dword [ecx], ebx
mov ebx, dword [esi + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x8c]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0xc]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x55ee8d
cmp ecx, 0x20e9c049
je 0x55eea4
cmp ecx, 0x3b23d0b1
jne 0x55ee73
jmp 0x55eecf
cmp ecx, 0x9c6e8745
je 0x55eea8
cmp ecx, 0xeb760989
jne 0x55ee73
mov ecx, 0x20e9c049
jmp 0x55ee73
mov ecx, eax
jmp 0x55ee73
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x55ee73
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x55ef65
cmp ecx, 0xcfcad29c
je 0x55efa8
cmp ecx, 0x3aca7e6
jne 0x55ef49
mov ecx, eax
jmp 0x55ef49
cmp ecx, 0x7c4a5f2
je 0x55efa1
cmp ecx, 0x389c0e25
jne 0x55ef49
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55ef49
mov ecx, 0x3aca7e6
jmp 0x55ef49
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x12
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x14
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x55f04b
cmp eax, 0xc6e82640
je 0x55f0ae
cmp eax, 0x950d98a
jne 0x55f00b
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x55f00b
cmp eax, 0x31a61df5
je 0x55f068
cmp eax, 0x4d86efb0
jne 0x55f00b
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x55f00b
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x55f00b
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf6cc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
setl dl
mov ebx, 0xeb760989
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x55f12e
cmp ecx, 0x20e9c049
je 0x55f145
cmp ecx, 0x3b23d0b1
jne 0x55f114
jmp 0x55f175
cmp ecx, 0x9c6e8745
je 0x55f149
cmp ecx, 0xeb760989
jne 0x55f114
mov ecx, 0x20e9c049
jmp 0x55f114
mov ecx, eax
jmp 0x55f114
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55f114
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x70]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x55f210
cmp ecx, 0xcfcad29c
je 0x55f253
cmp ecx, 0x3aca7e6
jne 0x55f1f4
mov ecx, eax
jmp 0x55f1f4
cmp ecx, 0x7c4a5f2
je 0x55f24c
cmp ecx, 0x389c0e25
jne 0x55f1f4
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55f1f4
mov ecx, 0x3aca7e6
jmp 0x55f1f4
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x12
mov ecx, dword [esi + 0x70]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x13
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x70]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x55f2f6
cmp eax, 0xc6e82640
je 0x55ed4c
cmp eax, 0x950d98a
jne 0x55f2b6
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x55f2b6
cmp eax, 0x31a61df5
je 0x55f313
cmp eax, 0x4d86efb0
jne 0x55f2b6
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x55f2b6
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x55f2b6
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x55f689
mov dword [esi + 0x48], 1
jmp 0x55f3a5
mov ebx, dword [esi + 0x48]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x48], ebx
cmp ebx, edx
jae 0x55f689
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x48]
mov dword [esi + 8], edx
test cl, al
jne 0x55f3f0
xor cl, al
mov eax, dword [esi + 0x48]
mov dword [esi + 8], eax
jne 0x55f3f0
jmp 0x59186e
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0xc]
call fcn.00433980
cmp dword [esi + 8], 0
je 0x55f651
mov eax, dword [0x5cf6d8]
mov ecx, dword [0x5cf6dc]
lea edx, [eax + 1]
imul edx, eax
and edx, 1
mov dword [esi + 0xc], edx
sete byte [esi + 0x10]
sete al
mov edx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove edx, ebx
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, 0xbf25ae54
cmovge edx, ecx
setl cl
xor cl, al
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax]
mov eax, dword [esi + 8]
lea eax, [eax + eax*2]
mov dword [esi + 0x38], ecx
lea eax, [ecx + eax*4]
mov dword [esi + 0x24], eax
cmovne edx, ebx
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55f465
cmp eax, 0xffb13445
je 0x55f49a
cmp eax, 0x20ab24e5
jne 0x55f44e
jmp 0x55f4a5
cmp eax, 0xbf25ae54
je 0x55f49e
cmp eax, 0xe6642f9a
jne 0x55f44e
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov ecx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ecx, edi
test al, al
mov eax, ecx
cmovne eax, edi
test bl, bl
cmove eax, ecx
jmp 0x55f44e
mov eax, edx
jmp 0x55f44e
mov eax, 0xffb13445
jmp 0x55f44e
mov ecx, dword [esi + 8]
dec ecx
cmp dword [esi + 0xc], 0
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax]
mov dword [esi + 0x40], edi
mov eax, dword [eax + 4]
mov dword [esi + 0x34], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov dword [esi + 8], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x38]
lea eax, [ecx + eax*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55f4fa
cmp eax, 0xffb13445
je 0x55f534
cmp eax, 0x20ab24e5
jne 0x55f4e3
jmp 0x55f53f
cmp eax, 0xbf25ae54
je 0x55f538
cmp eax, 0xe6642f9a
jne 0x55f4e3
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, cl
xor ch, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test cl, cl
mov ebx, 0xbf25ae54
cmove eax, ebx
test ch, ch
cmovne eax, edi
jmp 0x55f4e3
mov eax, edx
jmp 0x55f4e3
mov eax, 0xffb13445
jmp 0x55f4e3
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x40]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x34]
sbb ecx, dword [eax + 4]
jge 0x55f651
cmp dword [esi + 0xc], 0
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x55f587
cmp eax, 0xffb13445
je 0x55f5c1
cmp eax, 0x20ab24e5
jne 0x55f570
jmp 0x55f5cc
cmp eax, 0xbf25ae54
je 0x55f5c5
cmp eax, 0xe6642f9a
jne 0x55f570
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, cl
xor ch, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test cl, cl
mov ebx, 0xbf25ae54
cmove eax, ebx
test ch, ch
cmovne eax, edi
jmp 0x55f570
mov eax, edx
jmp 0x55f570
mov eax, 0xffb13445
jmp 0x55f570
cmp dword [esi + 0xc], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x55f60a
cmp ecx, 0xffb13445
je 0x55f646
cmp ecx, 0x20ab24e5
jne 0x55f5ed
jmp 0x55f3d5
cmp ecx, 0xbf25ae54
je 0x55f64a
cmp ecx, 0xe6642f9a
jne 0x55f5ed
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, cl
xor bh, bl
test cl, cl
mov ecx, 0xbf25ae54
mov eax, 0xffb13445
cmovne ecx, eax
test bl, bl
mov edi, 0xbf25ae54
cmove ecx, edi
test bh, bh
cmovne ecx, eax
jmp 0x55f5ed
mov ecx, edx
jmp 0x55f5ed
mov ecx, 0xffb13445
jmp 0x55f5ed
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx - 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x55f383
xor dl, al
jne 0x55f383
jmp 0x591870
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x55f6dc
cmp edi, 0x88e9608c
je 0x55f71b
cmp edi, 0xdf32ec89
jne 0x55f6b8
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x55f6b8
cmp edi, 0x30b7124c
je 0x55f775
cmp edi, 0x124998e2
jne 0x55f6b8
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x55f6b8
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
mov dword [esi + 4], edx
imul ecx, edx
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 8], ebx
cmp ebx, 0xa
mov edx, 0xdf32ec89
cmovge edi, edx
setl dl
xor dl, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x55f6b8
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x55f7c4
cmp ecx, 0x88e9608c
je 0x55f804
cmp ecx, 0xdf32ec89
jne 0x55f7a0
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x55f7a0
cmp ecx, 0x30b7124c
je 0x55f851
cmp ecx, 0x124998e2
jne 0x55f7a0
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55f7a0
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x55f7a0
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x55f880
xor cl, al
je 0x591874
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x55fc95
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx - 1]
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov edi, dword [eax]
mov dword [esi + 8], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x55f90e
cmp edx, 0x87fb68d6
je 0x55f94a
cmp edx, 0xfc04dcc5
jne 0x55f8ef
mov edx, 0x87fb68d6
jmp 0x55f8ef
cmp edx, 0x2601f5a7
je 0x55f94e
cmp edx, 0x5a893bc4
jne 0x55f8ef
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x55f8ef
mov edx, ecx
jmp 0x55f8ef
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x55fb5a
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x55f994
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x55fb5a
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x34], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x55fa61
mov eax, dword [esi + 0x24]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
test ecx, ecx
sete al
mov ebx, dword [esi + 4]
cmp ebx, 0xa
setl dl
xor dl, al
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
test ecx, ecx
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge eax, edx
mov ecx, 0x1b272c9a
jmp 0x55fa00
mov ecx, eax
cmp ecx, 0x4c6ca681
jle 0x55fa1a
cmp ecx, 0x4c6ca682
je 0x55fa51
cmp ecx, 0x6707b2cf
jne 0x55fa00
jmp 0x55fa58
cmp ecx, 0xf74fd645
je 0x55f9fe
cmp ecx, 0x1b272c9a
jne 0x55fa00
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x55fa00
mov ecx, 0xf74fd645
jmp 0x55fa00
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x24]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
and eax, 1
sete al
mov ebx, dword [esi + 4]
cmp ebx, 0xa
setl dl
xor dl, al
mov eax, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne eax, edi
and ecx, 1
sete byte [esi + 0x10]
mov edx, eax
cmove edx, edi
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov eax, 0x1b272c9a
cmp eax, 0x4c6ca681
jle 0x55fabc
cmp eax, 0x4c6ca682
je 0x55faf2
cmp eax, 0x6707b2cf
jne 0x55faa5
jmp 0x55fafd
cmp eax, 0xf74fd645
je 0x55faf9
cmp eax, 0x1b272c9a
jne 0x55faa5
mov ah, byte [esi + 0x10]
mov byte [esi + 0xc], ah
mov al, byte [esi + 0x28]
xor ah, al
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test al, al
mov eax, edi
cmovne eax, ebx
cmp byte [esi + 0xc], 0
cmove eax, edi
jmp 0x55faa5
mov eax, 0xf74fd645
jmp 0x55faa5
mov eax, edx
jmp 0x55faa5
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x55f9c5
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x55f982
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x55f982
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x34], 0xa
setl cl
test cl, al
jne 0x55fb80
xor cl, al
je 0x591872
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x55fbca
cmp eax, 0xcd5e6053
je 0x55fc2d
cmp eax, 0x18ed46ca
jne 0x55fba8
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x55fba8
cmp eax, 0x5499d804
je 0x55fc5c
cmp eax, 0x685e39a2
jne 0x55fba8
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x18ed46ca
mov edi, 0x5499d804
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x55fba8
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x55fba8
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x55f880
or cl, al
test cl, 1
je 0x55f880
jmp 0x591874
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dl
sete bl
cmp eax, 0xa
setge dh
setl bh
xor bh, bl
mov edi, dword [esi + 0x5c]
jne 0x55ed1e
or dh, dl
mov edi, dword [esi + 0x5c]
je 0x55ed1e
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dh
sete bl
cmp eax, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
test bh, bh
jne 0x55fd26
test dl, dl
jne 0x55fcda
mov edi, dword [esi + 0x5c]
jmp 0x55ed1e
mov edi, dword [esi + 0x5c]
jmp 0x55ed1e
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
setne cl
sete dl
cmp eax, 0xa
setge al
setl ah
xor ah, dl
jne 0x55fd56
or al, cl
jne 0x59185e
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp eax, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 8], esp
sub esp, 0xc
mov dword [esi + 0x34], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x54], edi
mov esp, edi
push eax
mov dword [esi + 0x64], esp
sub esp, 0xc
mov dword [esi + 0x40], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
push eax
mov dword [esi + 0x70], esp
push eax
mov dword [esi + 0x88], esp
test dl, dl
je 0x55fd7f
mov edx, dword [esi + 0x54]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x560dac
mov ecx, dword [esi + 8]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x48], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setge dl
setl bl
xor bl, dh
mov ebx, dword [esi + 0x3c]
mov dword [esi + 0xc], ebx
mov ebx, dword [esi + 0x38]
mov dword [esi + 4], ebx
jne 0x55fe4c
or dl, al
test dl, 1
jne 0x591862
mov edx, dword [esi + 4]
mov eax, edx
imul eax, dword [esi + 0xc]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x48]
sbb eax, 0
jae 0x56041d
mov eax, dword [esi + 0x48]
mov edi, dword [esi + 4]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x60], eax
mov eax, 0
mov ebx, dword [esi + 0xc]
sbb eax, ebx
mov dword [esi + 0x4c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0x24], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x3c], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0x38], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x60]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
sbb ecx, edx
or ecx, eax
jne 0x55fe11
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x54]
mov edi, dword [esi + 4]
mov dword [ecx], edi
mov edi, dword [esi + 0xc]
mov dword [ecx + 4], edi
mov edi, dword [esi + 0x8c]
mov dword [ecx + 8], edi
setl byte [esi + 0x28]
mov edi, dword [esi + 0x24]
mov dword [ecx + 0xc], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x55ff52
cmp ecx, 0x20e9c049
je 0x55ff69
cmp ecx, 0x3b23d0b1
jne 0x55ff38
jmp 0x55ff99
cmp ecx, 0x9c6e8745
je 0x55ff6d
cmp ecx, 0xeb760989
jne 0x55ff38
mov ecx, 0x20e9c049
jmp 0x55ff38
mov ecx, eax
jmp 0x55ff38
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x55ff38
mov eax, dword [esi + 0x64]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x34]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x56002f
cmp ecx, 0xcfcad29c
je 0x56006d
cmp ecx, 0x3aca7e6
jne 0x560013
mov ecx, eax
jmp 0x560013
cmp ecx, 0x7c4a5f2
je 0x560066
cmp ecx, 0x389c0e25
jne 0x560013
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x560013
mov ecx, 0x3aca7e6
jmp 0x560013
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x15
mov ecx, dword [esi + 0x34]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x17
mov ecx, dword [esi + 8]
push dword [esi + 0x34]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x56010f
cmp eax, 0xc6e82640
je 0x560177
cmp eax, 0x950d98a
jne 0x5600cf
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x5600cf
cmp eax, 0x31a61df5
je 0x56012c
cmp eax, 0x4d86efb0
jne 0x5600cf
mov ecx, dword [esi + 0x34]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x5600cf
mov ecx, dword [esi + 0x34]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x5600cf
mov ebx, dword [esi + 0x68]
mov eax, dword [esi + 0x24]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf6cc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 4]
mov dword [ebx + 8], edx
setl dl
mov ebx, 0xeb760989
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x5601f7
cmp ecx, 0x20e9c049
je 0x56020e
cmp ecx, 0x3b23d0b1
jne 0x5601dd
jmp 0x56023e
cmp ecx, 0x9c6e8745
je 0x560212
cmp ecx, 0xeb760989
jne 0x5601dd
mov ecx, 0x20e9c049
jmp 0x5601dd
mov ecx, eax
jmp 0x5601dd
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5601dd
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x40]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x5602d9
cmp ecx, 0xcfcad29c
je 0x560317
cmp ecx, 0x3aca7e6
jne 0x5602bd
mov ecx, eax
jmp 0x5602bd
cmp ecx, 0x7c4a5f2
je 0x560310
cmp ecx, 0x389c0e25
jne 0x5602bd
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5602bd
mov ecx, 0x3aca7e6
jmp 0x5602bd
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x15
mov ecx, dword [esi + 0x40]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x16
mov ecx, dword [esi + 8]
push dword [esi + 0x40]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x5603ba
cmp eax, 0xc6e82640
je 0x55fe11
cmp eax, 0x950d98a
jne 0x56037a
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x56037a
cmp eax, 0x31a61df5
je 0x5603d7
cmp eax, 0x4d86efb0
jne 0x56037a
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x56037a
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x56037a
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x56073c
mov dword [esi + 0x60], 1
jmp 0x560464
mov ebx, dword [esi + 0x60]
inc ebx
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x60], ebx
cmp ebx, edx
jae 0x56073c
lea eax, [ecx - 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x60]
mov dword [esi + 0xc], edx
test cl, al
jne 0x5604ad
xor cl, al
mov eax, dword [esi + 0x60]
mov dword [esi + 0xc], eax
jne 0x5604ad
jmp 0x591864
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edi
call fcn.00433980
cmp dword [esi + 0xc], 0
je 0x560704
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax - 1]
imul edi, eax
mov eax, edi
and eax, 1
sete al
cmp ebx, 0xa
setl cl
xor cl, al
mov eax, 0xbf25ae54
mov ecx, 0x20ab24e5
cmovne eax, ecx
and edi, 1
sete byte [esi + 0x10]
mov edx, eax
cmove edx, ecx
mov dword [esi + 0x24], ebx
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov dword [esi + 4], edx
mov eax, dword [esi + 8]
mov ecx, dword [eax]
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*2]
mov dword [esi + 0x3c], ecx
lea eax, [ecx + eax*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x560527
cmp eax, 0xffb13445
je 0x56055c
cmp eax, 0x20ab24e5
jne 0x560510
jmp 0x560568
cmp eax, 0xbf25ae54
je 0x560561
cmp eax, 0xe6642f9a
jne 0x560510
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov ecx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ecx, edx
test al, al
mov eax, ecx
cmovne eax, edx
test bl, bl
cmove eax, ecx
jmp 0x560510
mov eax, dword [esi + 4]
jmp 0x560510
mov eax, 0xffb13445
jmp 0x560510
mov ecx, dword [esi + 0xc]
dec ecx
test edi, edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x4c], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x48], eax
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov dword [esi + 0xc], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x3c]
lea eax, [ecx + eax*4]
mov dword [esi + 0x3c], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5605bb
cmp eax, 0xffb13445
je 0x5605f0
cmp eax, 0x20ab24e5
jne 0x5605a4
jmp 0x5605fc
cmp eax, 0xbf25ae54
je 0x5605f5
cmp eax, 0xe6642f9a
jne 0x5605a4
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov edx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edx, ebx
test al, al
mov eax, edx
cmovne eax, ebx
test cl, cl
cmove eax, edx
jmp 0x5605a4
mov eax, dword [esi + 4]
jmp 0x5605a4
mov eax, 0xffb13445
jmp 0x5605a4
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x4c]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x48]
sbb ecx, dword [eax + 4]
jge 0x560704
test edi, edi
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov ebx, 0xe6642f9a
cmp ebx, 0xffb13444
jle 0x560645
cmp ebx, 0xffb13445
je 0x560681
cmp ebx, 0x20ab24e5
jne 0x56062b
jmp 0x56068d
cmp ebx, 0xbf25ae54
je 0x560686
cmp ebx, 0xe6642f9a
jne 0x56062b
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov edx, ecx
xor dl, al
test cl, cl
mov ebx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne ebx, ecx
test al, al
mov eax, 0xbf25ae54
cmove ebx, eax
test dl, dl
cmovne ebx, ecx
jmp 0x56062b
mov ebx, dword [esi + 4]
jmp 0x56062b
mov ebx, 0xffb13445
jmp 0x56062b
test edi, edi
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x18], eax
mov edi, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5606c3
cmp eax, 0xffb13445
je 0x5606f8
cmp eax, 0x20ab24e5
jne 0x5606a9
jmp 0x560494
cmp eax, 0xbf25ae54
je 0x5606fd
cmp eax, 0xe6642f9a
jne 0x5606a9
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edx, ebx
test al, al
mov eax, edx
cmovne eax, ebx
test cl, cl
cmove eax, edx
jmp 0x5606a9
mov eax, dword [esi + 4]
jmp 0x5606a9
mov eax, 0xffb13445
jmp 0x5606a9
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
cmp edi, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x560442
or dl, al
test dl, 1
je 0x560442
jmp 0x591866
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 0xc], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x56078f
cmp edi, 0x88e9608c
je 0x5607ce
cmp edi, 0xdf32ec89
jne 0x56076b
mov ecx, dword [esi + 0x70]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x56076b
cmp edi, 0x30b7124c
je 0x560828
cmp edi, 0x124998e2
jne 0x56076b
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x56076b
mov ecx, dword [esi + 0x70]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
mov dword [esi + 0xc], edx
imul ecx, edx
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 4], ebx
cmp ebx, 0xa
mov edx, 0xdf32ec89
cmovge edi, edx
setl dl
xor dl, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x56076b
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x56087a
cmp ecx, 0x88e9608c
je 0x5608b1
cmp ecx, 0xdf32ec89
jne 0x560853
mov ecx, dword [esi + 0x88]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x560853
cmp ecx, 0x30b7124c
je 0x560901
cmp ecx, 0x124998e2
jne 0x560853
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x560853
mov ecx, dword [esi + 0x88]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x560853
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x560931
or cl, al
test cl, 1
jne 0x591868
mov eax, dword [esi + 0x70]
mov eax, dword [eax]
mov ecx, dword [esi + 0x88]
cmp eax, dword [ecx]
je 0x560d13
mov ecx, dword [esi + 0x70]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 0xc], eax
mov eax, dword [eax]
mov dword [esi + 4], eax
mov eax, 0xfc04dcc5
cmovge ecx, eax
xor dl, bl
cmovne ecx, edi
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x5609bc
cmp edx, 0x87fb68d6
je 0x5609f3
cmp edx, 0xfc04dcc5
jne 0x56099d
mov edx, 0x87fb68d6
jmp 0x56099d
cmp edx, 0x2601f5a7
je 0x5609f7
cmp edx, 0x5a893bc4
jne 0x56099d
movzx eax, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, al
xor dh, dl
mov ebx, 0xfc04dcc5
mov edi, 0x87fb68d6
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x56099d
mov edx, ecx
jmp 0x56099d
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x4c], ecx
cmp dword [esi + 4], ecx
je 0x560c10
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x560a3d
mov eax, dword [esi + 4]
add eax, 8
mov dword [esi + 4], eax
cmp eax, dword [esi + 0x4c]
je 0x560c10
mov ecx, dword [esi + 0x48]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x3c], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x560b0e
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
test ecx, ecx
sete al
mov edi, dword [esi + 0xc]
cmp edi, 0xa
setl dl
xor dl, al
mov edx, 0x4c6ca682
mov ebx, 0x6707b2cf
cmovne edx, ebx
test ecx, ecx
sete byte [esi + 0x10]
mov eax, edx
cmove eax, ebx
cmp edi, 0xa
setl byte [esi + 0x28]
cmovge eax, edx
mov ecx, 0x1b272c9a
jmp 0x560aad
mov ecx, eax
cmp ecx, 0x4c6ca681
jle 0x560ac7
cmp ecx, 0x4c6ca682
je 0x560afe
cmp ecx, 0x6707b2cf
jne 0x560aad
jmp 0x560b05
cmp ecx, 0xf74fd645
je 0x560aab
cmp ecx, 0x1b272c9a
jne 0x560aad
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test cl, cl
mov ecx, ebx
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
jmp 0x560aad
mov ecx, 0xf74fd645
jmp 0x560aad
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x24]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
and eax, 1
sete al
mov edi, dword [esi + 0xc]
cmp edi, 0xa
setl dl
xor dl, al
mov eax, 0x4c6ca682
mov ebx, 0x6707b2cf
cmovne eax, ebx
and ecx, 1
sete byte [esi + 0x10]
mov edx, eax
cmove edx, ebx
cmp edi, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov eax, 0x1b272c9a
cmp eax, 0x4c6ca681
jle 0x560b69
cmp eax, 0x4c6ca682
je 0x560ba8
cmp eax, 0x6707b2cf
jne 0x560b52
jmp 0x560bb3
cmp eax, 0xf74fd645
je 0x560baf
cmp eax, 0x1b272c9a
jne 0x560b52
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, bl
xor bh, al
test al, al
mov eax, 0x4c6ca682
mov edi, 0xf74fd645
cmovne eax, edi
test bl, bl
mov edi, 0x4c6ca682
cmove eax, edi
test bh, bh
mov edi, 0xf74fd645
cmovne eax, edi
jmp 0x560b52
mov eax, 0xf74fd645
jmp 0x560b52
mov eax, edx
jmp 0x560b52
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x560a72
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x560a2b
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x3c], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x560a2b
mov ecx, dword [esi + 0x48]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [esi + 0x3c], 0xa
setge cl
setl ch
xor ch, dl
jne 0x560c37
or cl, al
test cl, 1
jne 0x59186a
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x560c81
cmp eax, 0xcd5e6053
je 0x560ce4
cmp eax, 0x18ed46ca
jne 0x560c5f
mov eax, dword [esi + 0x70]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x560c5f
cmp eax, 0x5499d804
je 0x560901
cmp eax, 0x685e39a2
jne 0x560c5f
mov eax, dword [esi + 0x70]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x18ed46ca
mov edi, 0x5499d804
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x560c5f
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x560c5f
mov ecx, dword [esi + 8]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete bl
setne dl
cmp eax, 0xa
setl bh
setge dh
mov edi, dword [esi + 0x5c]
cmp bh, bl
jne 0x55fde3
or dh, dl
mov edi, dword [esi + 0x5c]
je 0x55fde3
mov edi, dword [esi + 8]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dh
sete bl
cmp eax, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
test bh, bh
jne 0x560da4
test dl, dl
jne 0x560d58
mov edi, dword [esi + 0x5c]
jmp 0x55fde3
mov edi, dword [esi + 0x5c]
jmp 0x55fde3
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete dl
setne cl
cmp eax, 0xa
setl ah
setge al
cmp ah, dl
jne 0x560dd4
or al, cl
jne 0x591860
mov esp, dword [esi + 0xa0]
mov edx, dword [0x5d21a8]
mov ecx, dword [0x5d21ac]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x5af2d6e3
mov ebx, 0xbf311110
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x55d134
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
setne cl
sete ch
cmp dword [0x5cf5f4], 0xa
setge dl
setl dh
xor dh, ch
jne 0x560e5d
or dl, cl
je 0x560e5d
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x560e1d
cmp byte [eax + 0x2d0], 0x30
jne 0x560eac
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x560eac
xor cl, al
jne 0x560eac
push 0
push 0
mov edi, dword [sym.imp.KERNEL32.dll_Beep]
call edi
push 0
push 0
call edi
jmp 0x560e70
mov ecx, dword [esi + 4]
call fcn.0040ed30
mov esp, dword [esi + 0x3c]
mov dword [esi + 0xa0], esp
mov dword [esi + 0x9c], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov ecx, dword [0x5cf6c4]
sete dh
cmp ecx, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x70], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x560ee7
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x561f60
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x560fb3
xor dl, al
je 0x59171a
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x56157f
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x560f79
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x10]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov edx, dword [esi + 8]
mov dword [ecx], edx
mov edx, dword [esi + 4]
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x8c]
mov dword [ecx + 8], edx
setl byte [esi + 0x28]
mov edx, dword [esi + 0xc]
mov dword [ecx + 0xc], edx
cmovge eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x5610b7
cmp ecx, 0x20e9c049
je 0x5610ce
cmp ecx, 0x3b23d0b1
jne 0x56109d
jmp 0x5610fe
cmp ecx, 0x9c6e8745
je 0x5610d2
cmp ecx, 0xeb760989
jne 0x56109d
mov ecx, 0x20e9c049
jmp 0x56109d
mov ecx, eax
jmp 0x56109d
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x56109d
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x561194
cmp ecx, 0xcfcad29c
je 0x5611d7
cmp ecx, 0x3aca7e6
jne 0x561178
mov ecx, eax
jmp 0x561178
cmp ecx, 0x7c4a5f2
je 0x5611d0
cmp ecx, 0x389c0e25
jne 0x561178
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x561178
mov ecx, 0x3aca7e6
jmp 0x561178
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x19
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x1b
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x56127e
cmp eax, 0xc6e82640
je 0x5612e1
cmp eax, 0x950d98a
jne 0x561239
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x561239
cmp eax, 0x31a61df5
je 0x56129b
cmp eax, 0x4d86efb0
jne 0x561239
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x561239
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x561239
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf6cc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
setl dl
mov ebx, 0xeb760989
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x561361
cmp ecx, 0x20e9c049
je 0x561378
cmp ecx, 0x3b23d0b1
jne 0x561347
jmp 0x5613a3
cmp ecx, 0x9c6e8745
je 0x56137c
cmp ecx, 0xeb760989
jne 0x561347
mov ecx, 0x20e9c049
jmp 0x561347
mov ecx, eax
jmp 0x561347
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x561347
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x70]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x56143c
cmp ecx, 0xcfcad29c
je 0x56147a
cmp ecx, 0x3aca7e6
jne 0x561420
mov ecx, eax
jmp 0x561420
cmp ecx, 0x7c4a5f2
je 0x561473
cmp ecx, 0x389c0e25
jne 0x561420
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x561420
mov ecx, 0x3aca7e6
jmp 0x561420
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x19
mov ecx, dword [esi + 0x70]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x1a
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x70]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x56151c
cmp eax, 0xc6e82640
je 0x560f79
cmp eax, 0x950d98a
jne 0x5614dc
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x5614dc
cmp eax, 0x31a61df5
je 0x561539
cmp eax, 0x4d86efb0
jne 0x5614dc
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x5614dc
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x5614dc
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x5618af
mov dword [esi + 0x58], 1
jmp 0x5615c6
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x5618af
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x58]
mov dword [esi + 4], edx
test cl, al
jne 0x56160f
xor cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 4], eax
jne 0x56160f
jmp 0x591854
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edx
call fcn.00433980
cmp dword [esi + 4], 0
je 0x561877
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax + 1]
imul edi, eax
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete al
cmp ebx, 0xa
setl dl
xor dl, al
mov eax, 0xbf25ae54
mov edx, 0x20ab24e5
cmovne eax, edx
mov dword [esi + 0x24], ecx
test ecx, edi
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
mov dword [esi + 0xc], ebx
cmp ebx, 0xa
cmovge ecx, eax
mov dword [esi + 8], ecx
setl byte [esi + 0x28]
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
lea edx, [eax + eax*2]
mov dword [esi + 0x34], ecx
lea eax, [ecx + edx*4]
mov dword [esi + 0x38], eax
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x561690
cmp edx, 0xffb13445
je 0x5616cc
cmp edx, 0x20ab24e5
jne 0x561676
jmp 0x5616d8
cmp edx, 0xbf25ae54
je 0x5616d1
cmp edx, 0xe6642f9a
jne 0x561676
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, dl
xor ah, al
test dl, dl
mov edx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne edx, ecx
test al, al
mov ebx, 0xbf25ae54
cmove edx, ebx
test ah, ah
cmovne edx, ecx
jmp 0x561676
mov edx, dword [esi + 8]
jmp 0x561676
mov edx, 0xffb13445
jmp 0x561676
mov ecx, dword [esi + 4]
dec ecx
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x48], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x40], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x34]
lea eax, [ecx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x56172c
cmp eax, 0xffb13445
je 0x561766
cmp eax, 0x20ab24e5
jne 0x561715
jmp 0x561772
cmp eax, 0xbf25ae54
je 0x56176b
cmp eax, 0xe6642f9a
jne 0x561715
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, al
xor bh, bl
test al, al
mov eax, 0xbf25ae54
mov ecx, 0xffb13445
cmovne eax, ecx
test bl, bl
mov edx, 0xbf25ae54
cmove eax, edx
test bh, bh
cmovne eax, ecx
jmp 0x561715
mov eax, dword [esi + 8]
jmp 0x561715
mov eax, 0xffb13445
jmp 0x561715
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x48]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x40]
sbb ecx, dword [eax + 4]
jge 0x561877
test dword [esi + 0x24], edi
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5617b9
cmp eax, 0xffb13445
je 0x5617f3
cmp eax, 0x20ab24e5
jne 0x5617a2
jmp 0x5617ff
cmp eax, 0xbf25ae54
je 0x5617f8
cmp eax, 0xe6642f9a
jne 0x5617a2
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0xbf25ae54
mov ecx, 0xffb13445
cmovne eax, ecx
test dl, dl
mov ebx, 0xbf25ae54
cmove eax, ebx
test dh, dh
cmovne eax, ecx
jmp 0x5617a2
mov eax, dword [esi + 8]
jmp 0x5617a2
mov eax, 0xffb13445
jmp 0x5617a2
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x561836
cmp eax, 0xffb13445
je 0x56186b
cmp eax, 0x20ab24e5
jne 0x56181c
jmp 0x5615f6
cmp eax, 0xbf25ae54
je 0x561870
cmp eax, 0xe6642f9a
jne 0x56181c
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov edi, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edi, ebx
test al, al
mov eax, edi
cmovne eax, ebx
test cl, cl
cmove eax, edi
jmp 0x56181c
mov eax, dword [esi + 8]
jmp 0x56181c
mov eax, 0xffb13445
jmp 0x56181c
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx - 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x5615a4
xor dl, al
jne 0x5615a4
jmp 0x591856
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x561902
cmp edi, 0x88e9608c
je 0x561941
cmp edi, 0xdf32ec89
jne 0x5618de
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x5618de
cmp edi, 0x30b7124c
je 0x56199c
cmp edi, 0x124998e2
jne 0x5618de
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
test bh, bh
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test cl, cl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bl, bl
cmovne edi, edx
jmp 0x5618de
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
mov dword [esi + 4], edx
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 8], ebx
cmp ebx, 0xa
mov ebx, 0xdf32ec89
cmovge edi, ebx
setl ch
xor ch, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x5618de
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x5619ea
cmp ecx, 0x88e9608c
je 0x561a2a
cmp ecx, 0xdf32ec89
jne 0x5619c6
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x5619c6
cmp ecx, 0x30b7124c
je 0x561a78
cmp ecx, 0x124998e2
jne 0x5619c6
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5619c6
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x5619c6
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf6c4], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x561aac
or cl, al
jne 0x59185a
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x561ecf
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
mov dword [esi + 8], edx
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edx, 0x2601f5a7
cmovne ebx, edx
test edi, ecx
sete byte [esi + 0x28]
mov ecx, ebx
cmove ecx, edx
cmp dword [esi + 8], 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov eax, dword [eax]
mov dword [esi + 8], eax
cmovge ecx, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x561b3a
cmp edx, 0x87fb68d6
je 0x561b71
cmp edx, 0xfc04dcc5
jne 0x561b1b
mov edx, 0x87fb68d6
jmp 0x561b1b
cmp edx, 0x2601f5a7
je 0x561b75
cmp edx, 0x5a893bc4
jne 0x561b1b
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, bl
xor dh, dl
mov edi, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edi, eax
test dl, dl
mov edx, edi
cmovne edx, eax
test bl, bl
cmove edx, edi
jmp 0x561b1b
mov edx, ecx
jmp 0x561b1b
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x561da7
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x561bbb
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x561da7
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
setne cl
cmp dword [esi + 0x34], 0xa
setge al
mov edx, eax
xor dl, cl
or al, cl
xor al, 1
or al, dl
mov byte [esi + 0x38], al
jne 0x561c9b
mov eax, dword [esi + 0x24]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
test ecx, ecx
sete dl
mov edi, dword [esi + 4]
cmp edi, 0xa
setl ah
xor ah, dl
mov edx, 0x4c6ca682
mov eax, 0x6707b2cf
cmovne edx, eax
test ecx, ecx
sete byte [esi + 0x10]
mov ecx, edx
cmove ecx, eax
cmp edi, 0xa
setl byte [esi + 0x28]
cmovge ecx, edx
mov edx, 0x1b272c9a
jmp 0x561c36
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x561c50
cmp edx, 0x4c6ca682
je 0x561c8b
cmp edx, 0x6707b2cf
jne 0x561c36
jmp 0x561c92
cmp edx, 0xf74fd645
je 0x561c34
cmp edx, 0x1b272c9a
jne 0x561c36
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ebx, edx
xor bl, ah
test dl, dl
mov edx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne edx, edi
test ah, ah
mov eax, 0x4c6ca682
cmove edx, eax
test bl, bl
cmovne edx, edi
jmp 0x561c36
mov edx, 0xf74fd645
jmp 0x561c36
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x24]
lea edx, [eax + 1]
imul edx, eax
mov ecx, edx
xor ecx, 0xfffffffe
mov edi, ecx
and edi, edx
sete bh
mov eax, dword [esi + 4]
cmp eax, 0xa
setl bl
xor bl, bh
mov ebx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne ebx, edi
and ecx, edx
mov dword [esi + 0xc], ecx
sete byte [esi + 0x10]
mov edi, ebx
mov ecx, 0x6707b2cf
cmove edi, ecx
cmp eax, 0xa
setl byte [esi + 0x28]
cmovge edi, ebx
mov edx, 0x1b272c9a
cmp edx, 0x4c6ca681
jle 0x561d04
cmp edx, 0x4c6ca682
je 0x561d3f
cmp edx, 0x6707b2cf
jne 0x561cea
jmp 0x561d4a
cmp edx, 0xf74fd645
je 0x561d46
cmp edx, 0x1b272c9a
jne 0x561cea
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov bl, ah
xor bl, dl
test dl, dl
mov edx, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne edx, ecx
test ah, ah
mov eax, 0x4c6ca682
cmove edx, eax
test bl, bl
cmovne edx, ecx
jmp 0x561cea
mov edx, 0xf74fd645
jmp 0x561cea
mov edx, edi
jmp 0x561cea
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x561bf8
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x561ba9
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x561ba9
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [esi + 0x34], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x561dce
or cl, al
test cl, 1
jne 0x591858
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x561e18
cmp eax, 0xcd5e6053
je 0x561e6e
cmp eax, 0x18ed46ca
jne 0x561df6
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x561df6
cmp eax, 0x5499d804
je 0x561e98
cmp eax, 0x685e39a2
jne 0x561df6
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x561df6
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x561df6
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x561aac
xor cl, al
jne 0x561aac
jmp 0x59185a
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete byte [esi + 8]
cmp ecx, 0xa
setge bl
setl bh
xor bh, byte [esi + 8]
mov edi, dword [esi + 0x5c]
jne 0x560f4b
or bl, dl
mov edi, dword [esi + 0x5c]
test bl, 1
je 0x560f4b
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp ecx, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x561f58
test dl, dl
je 0x561f12
mov edi, dword [esi + 0x5c]
jmp 0x560f4b
mov edi, dword [esi + 0x5c]
jmp 0x560f4b
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete ah
cmp ecx, 0xa
setge al
setl cl
xor cl, ah
jne 0x561f83
or al, dl
test al, 1
jne 0x59183a
mov esp, dword [esi + 0x9c]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
sete dh
cmp ecx, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x70], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x561fac
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x56302f
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
mov ecx, dword [0x5cf6c0]
lea eax, [ecx - 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x562079
xor dl, al
je 0x59184a
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x562641
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x56203e
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov edi, dword [esi + 8]
mov dword [ecx], edi
mov edi, dword [esi + 4]
mov dword [ecx + 4], edi
mov edi, dword [esi + 0x8c]
mov dword [ecx + 8], edi
setl byte [esi + 0x28]
mov edi, dword [esi + 0xc]
mov dword [ecx + 0xc], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x56217f
cmp ecx, 0x20e9c049
je 0x562196
cmp ecx, 0x3b23d0b1
jne 0x562165
jmp 0x5621c1
cmp ecx, 0x9c6e8745
je 0x56219a
cmp ecx, 0xeb760989
jne 0x562165
mov ecx, 0x20e9c049
jmp 0x562165
mov ecx, eax
jmp 0x562165
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x562165
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x56225a
cmp ecx, 0xcfcad29c
je 0x562298
cmp ecx, 0x3aca7e6
jne 0x56223e
mov ecx, eax
jmp 0x56223e
cmp ecx, 0x7c4a5f2
je 0x562291
cmp ecx, 0x389c0e25
jne 0x56223e
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x56223e
mov ecx, 0x3aca7e6
jmp 0x56223e
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x1c
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x1e
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x56233b
cmp eax, 0xc6e82640
je 0x56239e
cmp eax, 0x950d98a
jne 0x5622fb
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x5622fb
cmp eax, 0x31a61df5
je 0x562358
cmp eax, 0x4d86efb0
jne 0x5622fb
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x5622fb
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x5622fb
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf6cc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x56241d
cmp ecx, 0x20e9c049
je 0x562434
cmp ecx, 0x3b23d0b1
jne 0x562403
jmp 0x56245f
cmp ecx, 0x9c6e8745
je 0x562438
cmp ecx, 0xeb760989
jne 0x562403
mov ecx, 0x20e9c049
jmp 0x562403
mov ecx, eax
jmp 0x562403
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x562403
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x70]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x5624f8
cmp ecx, 0xcfcad29c
je 0x56253b
cmp ecx, 0x3aca7e6
jne 0x5624dc
mov ecx, eax
jmp 0x5624dc
cmp ecx, 0x7c4a5f2
je 0x562534
cmp ecx, 0x389c0e25
jne 0x5624dc
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5624dc
mov ecx, 0x3aca7e6
jmp 0x5624dc
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x1c
mov ecx, dword [esi + 0x70]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x1d
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x70]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x5625de
cmp eax, 0xc6e82640
je 0x56203e
cmp eax, 0x950d98a
jne 0x56259e
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x56259e
cmp eax, 0x31a61df5
je 0x5625fb
cmp eax, 0x4d86efb0
jne 0x56259e
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x56259e
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x56259e
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x562980
mov dword [esi + 0x58], 1
jmp 0x562688
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x562980
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp edi, 0xa
setge cl
setl ch
xor ch, dl
mov edx, dword [esi + 0x58]
mov dword [esi + 4], edx
jne 0x5626d1
or cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 4], eax
test cl, 1
je 0x5626d1
jmp 0x59184c
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edx
call fcn.00433980
cmp dword [esi + 4], 0
je 0x562943
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax + 1]
imul edi, eax
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete al
cmp ebx, 0xa
setl dl
xor dl, al
mov eax, 0xbf25ae54
mov edx, 0x20ab24e5
cmovne eax, edx
mov dword [esi + 0x24], ecx
test ecx, edi
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
mov dword [esi + 0xc], ebx
cmp ebx, 0xa
cmovge ecx, eax
mov dword [esi + 8], ecx
setl byte [esi + 0x28]
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
lea edx, [eax + eax*2]
mov dword [esi + 0x34], ecx
lea eax, [ecx + edx*4]
mov dword [esi + 0x38], eax
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x562752
cmp edx, 0xffb13445
je 0x56278e
cmp edx, 0x20ab24e5
jne 0x562738
jmp 0x56279a
cmp edx, 0xbf25ae54
je 0x562793
cmp edx, 0xe6642f9a
jne 0x562738
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
test dl, dl
mov edx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne edx, ecx
test al, al
mov ebx, 0xbf25ae54
cmove edx, ebx
test ah, ah
cmovne edx, ecx
jmp 0x562738
mov edx, dword [esi + 8]
jmp 0x562738
mov edx, 0xffb13445
jmp 0x562738
mov ecx, dword [esi + 4]
dec ecx
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x48], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x40], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x34]
lea eax, [ecx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5627ee
cmp eax, 0xffb13445
je 0x562823
cmp eax, 0x20ab24e5
jne 0x5627d7
jmp 0x56282f
cmp eax, 0xbf25ae54
je 0x562828
cmp eax, 0xe6642f9a
jne 0x5627d7
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne edx, ecx
test al, al
mov eax, edx
cmovne eax, ecx
test bl, bl
cmove eax, edx
jmp 0x5627d7
mov eax, dword [esi + 8]
jmp 0x5627d7
mov eax, 0xffb13445
jmp 0x5627d7
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x48]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x40]
sbb ecx, dword [eax + 4]
jge 0x562943
test dword [esi + 0x24], edi
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x562879
cmp edx, 0xffb13445
je 0x5628b5
cmp edx, 0x20ab24e5
jne 0x56285f
jmp 0x5628c1
cmp edx, 0xbf25ae54
je 0x5628ba
cmp edx, 0xe6642f9a
jne 0x56285f
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, dl
xor ah, al
test dl, dl
mov edx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne edx, ecx
test al, al
mov ebx, 0xbf25ae54
cmove edx, ebx
test ah, ah
cmovne edx, ecx
jmp 0x56285f
mov edx, dword [esi + 8]
jmp 0x56285f
mov edx, 0xffb13445
jmp 0x56285f
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x5628fb
cmp ecx, 0xffb13445
je 0x562937
cmp ecx, 0x20ab24e5
jne 0x5628de
jmp 0x5626b8
cmp ecx, 0xbf25ae54
je 0x56293c
cmp ecx, 0xe6642f9a
jne 0x5628de
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ah, al
xor ah, cl
test cl, cl
mov ecx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne ecx, ebx
test al, al
mov edi, 0xbf25ae54
cmove ecx, edi
test ah, ah
cmovne ecx, ebx
jmp 0x5628de
mov ecx, dword [esi + 8]
jmp 0x5628de
mov ecx, 0xffb13445
jmp 0x5628de
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete ah
setne al
cmp edi, 0xa
setl dh
setge dl
cmp dh, ah
jne 0x562666
or dl, al
je 0x562666
jmp 0x59184e
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x5629d4
cmp edi, 0x88e9608c
je 0x562a13
cmp edi, 0xdf32ec89
jne 0x5629b0
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x5629b0
cmp edi, 0x30b7124c
je 0x562a6e
cmp edi, 0x124998e2
jne 0x5629b0
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
test bh, bh
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test cl, cl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bl, bl
cmovne edi, edx
jmp 0x5629b0
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
mov dword [esi + 4], edx
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 8], ebx
cmp ebx, 0xa
mov ebx, 0xdf32ec89
cmovge edi, ebx
setl ch
xor ch, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x5629b0
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x562ac3
cmp ecx, 0x88e9608c
je 0x562afe
cmp ecx, 0xdf32ec89
jne 0x562a9c
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 4]
mov dword [eax], ecx
mov ecx, 0x88e9608c
jmp 0x562a9c
cmp ecx, 0x30b7124c
je 0x562b52
cmp ecx, 0x124998e2
jne 0x562a9c
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov eax, 0x88e9608c
cmovne edi, eax
test cl, cl
mov ecx, edi
cmovne ecx, eax
test dl, dl
cmove ecx, edi
jmp 0x562a9c
mov eax, dword [esi + 0x60]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 4]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov eax, 0x30b7124c
cmovne ebx, eax
test edi, ecx
mov ecx, ebx
cmove ecx, eax
cmp edx, 0xa
cmovge ecx, ebx
mov edx, dword [esi + 0x18]
jmp 0x562a9c
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x562b80
xor cl, al
je 0x591852
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x562fa0
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
mov dword [esi + 8], edx
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edx, 0x2601f5a7
cmovne ebx, edx
test edi, ecx
sete byte [esi + 0x28]
mov ecx, ebx
cmove ecx, edx
cmp dword [esi + 8], 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov eax, dword [eax]
mov dword [esi + 8], eax
cmovge ecx, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x562c0e
cmp edx, 0x87fb68d6
je 0x562c4a
cmp edx, 0xfc04dcc5
jne 0x562bef
mov edx, 0x87fb68d6
jmp 0x562bef
cmp edx, 0x2601f5a7
je 0x562c4e
cmp edx, 0x5a893bc4
jne 0x562bef
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x562bef
mov edx, ecx
jmp 0x562bef
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x562e5f
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x562c94
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x562e5f
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x34], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x562d66
mov eax, dword [esi + 0x24]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
test ecx, ecx
sete al
mov ebx, dword [esi + 4]
cmp ebx, 0xa
setl dl
xor dl, al
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
test ecx, ecx
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge eax, edx
mov ecx, 0x1b272c9a
jmp 0x562d00
mov ecx, eax
cmp ecx, 0x4c6ca681
jle 0x562d1a
cmp ecx, 0x4c6ca682
je 0x562d56
cmp ecx, 0x6707b2cf
jne 0x562d00
jmp 0x562d5d
cmp ecx, 0xf74fd645
je 0x562cfe
cmp ecx, 0x1b272c9a
jne 0x562d00
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne ecx, ebx
test dl, dl
mov edi, 0x4c6ca682
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x562d00
mov ecx, 0xf74fd645
jmp 0x562d00
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x24]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
and eax, 1
sete al
mov ebx, dword [esi + 4]
cmp ebx, 0xa
setl dl
xor dl, al
mov eax, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne eax, edi
and ecx, 1
sete byte [esi + 0x10]
mov edx, eax
cmove edx, edi
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov eax, 0x1b272c9a
cmp eax, 0x4c6ca681
jle 0x562dc1
cmp eax, 0x4c6ca682
je 0x562df7
cmp eax, 0x6707b2cf
jne 0x562daa
jmp 0x562e02
cmp eax, 0xf74fd645
je 0x562dfe
cmp eax, 0x1b272c9a
jne 0x562daa
mov ah, byte [esi + 0x10]
mov byte [esi + 0xc], ah
mov al, byte [esi + 0x28]
xor ah, al
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test al, al
mov eax, edi
cmovne eax, ebx
cmp byte [esi + 0xc], 0
cmove eax, edi
jmp 0x562daa
mov eax, 0xf74fd645
jmp 0x562daa
mov eax, edx
jmp 0x562daa
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x562cc5
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x562c82
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x562c82
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
setne al
cmp dword [esi + 0x34], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x562e8b
or cl, al
jne 0x591850
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x562ed6
cmp eax, 0xcd5e6053
je 0x562f34
cmp eax, 0x18ed46ca
jne 0x562eb4
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x562eb4
cmp eax, 0x5499d804
je 0x562f63
cmp eax, 0x685e39a2
jne 0x562eb4
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x18ed46ca
mov ebx, 0x5499d804
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x562eb4
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x562eb4
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf6c4], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x562b80
or cl, al
je 0x562b80
jmp 0x591852
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
mov edi, dword [esi + 0x5c]
test dh, dl
jne 0x562010
xor dh, dl
mov edi, dword [esi + 0x5c]
jne 0x562010
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp ecx, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x563027
test dl, dl
je 0x562fe0
mov edi, dword [esi + 0x5c]
jmp 0x562010
mov edi, dword [esi + 0x5c]
jmp 0x562010
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete ah
cmp ecx, 0xa
setl cl
setge al
cmp cl, ah
jne 0x563052
or al, dl
test al, 1
jne 0x59183c
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp eax, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 8], esp
sub esp, 0xc
mov dword [esi + 0x40], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x3c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x56307c
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x564103
mov ecx, dword [esi + 8]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x48], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x38], eax
mov dword [esi + 0x34], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete ah
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
mov ebx, dword [esi + 0x34]
mov dword [esi + 0xc], ebx
mov ebx, dword [esi + 0x38]
mov dword [esi + 4], ebx
jne 0x56314e
or dl, al
jne 0x591840
mov edx, dword [esi + 4]
mov eax, edx
imul eax, dword [esi + 0xc]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x48]
sbb eax, 0
jae 0x56372b
mov eax, dword [esi + 0x48]
mov edi, dword [esi + 4]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x70], eax
mov eax, 0
mov ebx, dword [esi + 0xc]
sbb eax, ebx
mov dword [esi + 0x4c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0x24], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x34], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0x38], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x70]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
sbb ecx, edx
or ecx, eax
jne 0x56310e
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov edi, dword [esi + 4]
mov dword [ecx], edi
mov edi, dword [esi + 0xc]
mov dword [ecx + 4], edi
mov edi, dword [esi + 0x8c]
mov dword [ecx + 8], edi
setl byte [esi + 0x28]
mov edi, dword [esi + 0x24]
mov dword [ecx + 0xc], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x563254
cmp ecx, 0x20e9c049
je 0x56326b
cmp ecx, 0x3b23d0b1
jne 0x56323a
jmp 0x56329b
cmp ecx, 0x9c6e8745
je 0x56326f
cmp ecx, 0xeb760989
jne 0x56323a
mov ecx, 0x20e9c049
jmp 0x56323a
mov ecx, eax
jmp 0x56323a
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x56323a
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x40]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x90]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x68]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x563332
cmp ecx, 0xcfcad29c
je 0x563370
cmp ecx, 0x3aca7e6
jne 0x563316
mov ecx, eax
jmp 0x563316
cmp ecx, 0x7c4a5f2
je 0x563369
cmp ecx, 0x389c0e25
jne 0x563316
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x563316
mov ecx, 0x3aca7e6
jmp 0x563316
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x1f
mov ecx, dword [esi + 0x40]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x21
mov ecx, dword [esi + 8]
push dword [esi + 0x40]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x563413
cmp eax, 0xc6e82640
je 0x56347b
cmp eax, 0x950d98a
jne 0x5633d3
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x5633d3
cmp eax, 0x31a61df5
je 0x563430
cmp eax, 0x4d86efb0
jne 0x5633d3
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x5633d3
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x5633d3
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
mov edi, dword [0x5cf6cc]
cmp edi, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edx, ebx
test ecx, eax
mov ecx, dword [esi + 0x64]
mov eax, dword [esi + 0x24]
mov dword [ecx + 4], eax
sete byte [esi + 0x10]
mov eax, dword [esi + 0x8c]
mov dword [ecx], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0xc], eax
mov eax, edx
cmove eax, ebx
cmp edi, 0xa
setl byte [esi + 0x28]
mov edi, dword [esi + 4]
mov dword [ecx + 8], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x5634fd
cmp ecx, 0x20e9c049
je 0x563514
cmp ecx, 0x3b23d0b1
jne 0x5634e3
jmp 0x563544
cmp ecx, 0x9c6e8745
je 0x563518
cmp ecx, 0xeb760989
jne 0x5634e3
mov ecx, 0x20e9c049
jmp 0x5634e3
mov ecx, eax
jmp 0x5634e3
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5634e3
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x3c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x5635dd
cmp ecx, 0xcfcad29c
je 0x56361b
cmp ecx, 0x3aca7e6
jne 0x5635c1
mov ecx, eax
jmp 0x5635c1
cmp ecx, 0x7c4a5f2
je 0x563614
cmp ecx, 0x389c0e25
jne 0x5635c1
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5635c1
mov ecx, 0x3aca7e6
jmp 0x5635c1
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x1f
mov ecx, dword [esi + 0x3c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x20
mov ecx, dword [esi + 8]
push dword [esi + 0x3c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x5636c3
cmp eax, 0xc6e82640
je 0x56310e
cmp eax, 0x950d98a
jne 0x56367e
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x56367e
cmp eax, 0x31a61df5
je 0x5636e0
cmp eax, 0x4d86efb0
jne 0x56367e
mov ecx, dword [esi + 0x3c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x56367e
mov ecx, dword [esi + 0x3c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x56367e
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x563a56
mov dword [esi + 0x70], 1
jmp 0x563772
mov ebx, dword [esi + 0x70]
inc ebx
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x70], ebx
cmp ebx, edx
jae 0x563a56
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne al
sete dl
cmp edi, 0xa
setge cl
setl ah
xor ah, dl
mov edx, dword [esi + 0x70]
mov dword [esi + 4], edx
jne 0x5637c2
or cl, al
mov eax, dword [esi + 0x70]
mov dword [esi + 4], eax
je 0x5637c2
jmp 0x591842
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0x24]
call fcn.00433980
cmp dword [esi + 4], 0
je 0x563a1e
mov eax, dword [0x5cf6d8]
mov ecx, dword [0x5cf6dc]
lea edx, [eax - 1]
imul edx, eax
and edx, 1
mov dword [esi + 0x24], edx
sete byte [esi + 0x10]
sete al
mov edx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove edx, ebx
mov dword [esi + 0xc], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, 0xbf25ae54
cmovge edx, ecx
setl cl
xor cl, al
mov eax, dword [esi + 8]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
mov dword [esi + 0x34], ecx
lea eax, [ecx + eax*4]
mov dword [esi + 0x38], eax
cmovne edx, ebx
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x563837
cmp eax, 0xffb13445
je 0x56386c
cmp eax, 0x20ab24e5
jne 0x563820
jmp 0x563877
cmp eax, 0xbf25ae54
je 0x563870
cmp eax, 0xe6642f9a
jne 0x563820
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov ecx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ecx, edi
test al, al
mov eax, ecx
cmovne eax, edi
test bl, bl
cmove eax, ecx
jmp 0x563820
mov eax, edx
jmp 0x563820
mov eax, 0xffb13445
jmp 0x563820
mov ecx, dword [esi + 4]
dec ecx
cmp dword [esi + 0x24], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax]
mov dword [esi + 0x4c], edi
mov eax, dword [eax + 4]
mov dword [esi + 0x48], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x34]
lea eax, [ecx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5638cc
cmp eax, 0xffb13445
je 0x563906
cmp eax, 0x20ab24e5
jne 0x5638b5
jmp 0x563911
cmp eax, 0xbf25ae54
je 0x56390a
cmp eax, 0xe6642f9a
jne 0x5638b5
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, cl
xor ch, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test cl, cl
mov ebx, 0xbf25ae54
cmove eax, ebx
test ch, ch
cmovne eax, edi
jmp 0x5638b5
mov eax, edx
jmp 0x5638b5
mov eax, 0xffb13445
jmp 0x5638b5
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x4c]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x48]
sbb ecx, dword [eax + 4]
jge 0x563a1e
cmp dword [esi + 0x24], 0
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x563959
cmp eax, 0xffb13445
je 0x563993
cmp eax, 0x20ab24e5
jne 0x563942
jmp 0x56399e
cmp eax, 0xbf25ae54
je 0x563997
cmp eax, 0xe6642f9a
jne 0x563942
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, cl
xor ch, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test cl, cl
mov ebx, 0xbf25ae54
cmove eax, ebx
test ch, ch
cmovne eax, edi
jmp 0x563942
mov eax, edx
jmp 0x563942
mov eax, 0xffb13445
jmp 0x563942
cmp dword [esi + 0x24], 0
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x24], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x5639dc
cmp ecx, 0xffb13445
je 0x563a13
cmp ecx, 0x20ab24e5
jne 0x5639bf
jmp 0x5637a7
cmp ecx, 0xbf25ae54
je 0x563a17
cmp ecx, 0xe6642f9a
jne 0x5639bf
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, bl
xor ch, cl
mov edi, 0xbf25ae54
mov eax, 0xffb13445
cmovne edi, eax
test cl, cl
mov ecx, edi
cmovne ecx, eax
test bl, bl
cmove ecx, edi
jmp 0x5639bf
mov ecx, edx
jmp 0x5639bf
mov ecx, 0xffb13445
jmp 0x5639bf
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
cmp edi, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x563750
or dl, al
test dl, 1
je 0x563750
jmp 0x591844
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 0xc], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x563aa9
cmp edi, 0x88e9608c
je 0x563ae8
cmp edi, 0xdf32ec89
jne 0x563a85
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x563a85
cmp edi, 0x30b7124c
je 0x563b42
cmp edi, 0x124998e2
jne 0x563a85
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x563a85
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
mov dword [esi + 0xc], edx
imul ecx, edx
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 4], ebx
cmp ebx, 0xa
mov edx, 0xdf32ec89
cmovge edi, edx
setl dl
xor dl, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x563a85
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
mov dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x563b96
cmp ecx, 0x88e9608c
je 0x563bd1
cmp ecx, 0xdf32ec89
jne 0x563b6f
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0xc]
mov dword [eax], ecx
mov ecx, 0x88e9608c
jmp 0x563b6f
cmp ecx, 0x30b7124c
je 0x563c25
cmp ecx, 0x124998e2
jne 0x563b6f
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov eax, 0x88e9608c
cmovne edi, eax
test cl, cl
mov ecx, edi
cmovne ecx, eax
test dl, dl
cmove ecx, edi
jmp 0x563b6f
mov eax, dword [esi + 0x60]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0xc]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov eax, 0x30b7124c
cmovne ebx, eax
test edi, ecx
mov ecx, ebx
cmove ecx, eax
cmp edx, 0xa
cmovge ecx, ebx
mov edx, dword [esi + 0x18]
jmp 0x563b6f
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x563c59
or cl, al
jne 0x591848
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x564070
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmovne ebx, edi
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
mov ecx, ebx
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
mov dword [esi + 0xc], eax
mov eax, dword [eax]
mov dword [esi + 4], eax
cmovge ecx, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x563ce5
cmp edx, 0x87fb68d6
je 0x563d21
cmp edx, 0xfc04dcc5
jne 0x563cc6
mov edx, 0x87fb68d6
jmp 0x563cc6
cmp edx, 0x2601f5a7
je 0x563d25
cmp edx, 0x5a893bc4
jne 0x563cc6
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x563cc6
mov edx, ecx
jmp 0x563cc6
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x4c], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x48], eax
mov dword [esi + 0x70], ecx
cmp dword [esi + 4], ecx
je 0x563f44
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x563d6b
mov eax, dword [esi + 4]
add eax, 8
mov dword [esi + 4], eax
cmp eax, dword [esi + 0x70]
je 0x563f44
mov ecx, dword [esi + 0x4c]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x48], 0xa
setl cl
or cl, al
mov byte [esi + 0x34], cl
jne 0x563e43
mov eax, dword [esi + 0x38]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0x24], ecx
mov ecx, dword [esi + 0x24]
test ecx, ecx
sete al
mov edi, dword [esi + 0xc]
cmp edi, 0xa
setl dl
xor dl, al
mov eax, 0x4c6ca682
mov edx, 0x6707b2cf
cmovne eax, edx
test ecx, ecx
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
cmp edi, 0xa
setl byte [esi + 0x28]
cmovge ecx, eax
mov ebx, 0x1b272c9a
jmp 0x563ddd
mov ebx, ecx
cmp ebx, 0x4c6ca681
jle 0x563df7
cmp ebx, 0x4c6ca682
je 0x563e33
cmp ebx, 0x6707b2cf
jne 0x563ddd
jmp 0x563e3a
cmp ebx, 0xf74fd645
je 0x563ddb
cmp ebx, 0x1b272c9a
jne 0x563ddd
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, dl
xor ah, al
test dl, dl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test al, al
mov edx, 0x4c6ca682
cmove ebx, edx
test ah, ah
cmovne ebx, edi
jmp 0x563ddd
mov ebx, 0xf74fd645
jmp 0x563ddd
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x38]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
mov dword [esi + 0x24], ecx
sete byte [esi + 0x10]
sete bl
mov eax, 0x4c6ca682
mov edx, 0x6707b2cf
cmove eax, edx
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl bh
mov edi, 0x4c6ca682
cmovge eax, edi
xor bh, bl
cmovne eax, edx
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x563ea1
cmp ebx, 0x4c6ca682
je 0x563edc
cmp ebx, 0x6707b2cf
jne 0x563e87
jmp 0x563ee7
cmp ebx, 0xf74fd645
je 0x563ee3
cmp ebx, 0x1b272c9a
jne 0x563e87
movzx edx, byte [esi + 0x10]
mov dh, byte [esi + 0x28]
mov ebx, edx
xor bl, dh
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test dh, dh
mov ebx, edi
mov ecx, 0xf74fd645
cmovne ebx, ecx
test dl, dl
cmove ebx, edi
jmp 0x563e87
mov ebx, 0xf74fd645
jmp 0x563e87
mov ebx, eax
jmp 0x563e87
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x34], 0
je 0x563d9f
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x563d59
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x4c], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x563d59
mov ecx, dword [esi + 0x4c]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x48], 0xa
setl cl
test cl, al
jne 0x563f6a
xor cl, al
je 0x591846
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x563fb4
cmp eax, 0xcd5e6053
je 0x56400e
cmp eax, 0x18ed46ca
jne 0x563f92
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x563f92
cmp eax, 0x5499d804
je 0x564038
cmp eax, 0x685e39a2
jne 0x563f92
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x18ed46ca
mov ebx, 0x5499d804
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x563f92
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x563f92
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x563c59
xor cl, al
jne 0x563c59
jmp 0x591848
mov ecx, dword [esi + 8]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dl
sete bl
cmp eax, 0xa
setge dh
setl bh
xor bh, bl
mov edi, dword [esi + 0x5c]
jne 0x5630e0
or dh, dl
mov edi, dword [esi + 0x5c]
je 0x5630e0
mov edi, dword [esi + 8]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp eax, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x5640fb
test dl, dl
je 0x5640b5
mov edi, dword [esi + 0x5c]
jmp 0x5630e0
mov edi, dword [esi + 0x5c]
jmp 0x5630e0
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete dl
setne cl
cmp eax, 0xa
setl ah
setge al
cmp ah, dl
jne 0x56412b
or al, cl
jne 0x59183e
mov esp, dword [esi + 0xa0]
mov eax, 0x57676505
jmp 0x55d134
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete al
cmp dword [esi + 8], 0xa
setl cl
test cl, al
jne 0x56415e
xor cl, al
je 0x5916c0
mov esp, dword [esi + 0x5c]
mov dword [esi + 0x94], esp
mov eax, dword [0x5d21a8]
mov ecx, dword [0x5d21ac]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x46]
cmp ecx, 0xa
setl byte [esi + 0x47]
mov eax, 0xd31607fa
cmp eax, 0x57676504
jg 0x5641cf
cmp eax, 0xbf311110
je 0x56b1db
cmp eax, 0xd31607fa
jne 0x56418f
movzx ecx, byte [esi + 0x46]
movzx eax, byte [esi + 0x47]
mov edx, ecx
xor dl, al
mov edx, 0x5af2d6e3
mov edi, 0x57676505
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x56418f
cmp eax, 0x57676505
je 0x56420f
cmp eax, 0x5af2d6e3
jne 0x56418f
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
mov dword [esi + 0x40], esp
setl ch
setge cl
cmp ch, dl
jne 0x564246
or cl, al
test cl, 1
jne 0x564360
jmp 0x564246
mov dword [esi + 0x40], esp
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x5646f0
xor cl, al
je 0x56480e
jmp 0x5646f0
push eax
mov dword [esi + 0x38], esp
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
mov dword [esi + 0x34], ecx
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 4], edi
mov ecx, edi
call fcn.0040cd80
mov eax, dword [0x5cf4b8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4bc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
sete cl
mov eax, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov ebx, 0x8f0f2ca8
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x13d3b53a
cmp ecx, 0x13d3b539
jg 0x5642d5
cmp ecx, 0x8f0f2ca8
je 0x564311
cmp ecx, 0x11f1fb1a
jne 0x5642bb
jmp 0x56431c
cmp ecx, 0x1a1c1d98
je 0x564318
cmp ecx, 0x13d3b53a
jne 0x5642bb
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x8f0f2ca8
mov ebx, 0x1a1c1d98
cmovne ecx, ebx
test dl, dl
mov edi, 0x8f0f2ca8
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5642bb
mov ecx, 0x1a1c1d98
jmp 0x5642bb
mov ecx, eax
jmp 0x5642bb
mov eax, dword [esi + 4]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x564447
xor cl, al
jne 0x564447
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 8], edi
mov ecx, edi
call fcn.0040cd80
mov eax, dword [0x5cf4b8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4bc]
sete byte [esi + 0x28]
sete dl
mov eax, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x18]
setl cl
mov ebx, 0x8f0f2ca8
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x13d3b53a
jmp 0x5643d1
mov ecx, eax
cmp ecx, 0x13d3b539
jg 0x5643eb
cmp ecx, 0x8f0f2ca8
je 0x564427
cmp ecx, 0x11f1fb1a
jne 0x5643d1
jmp 0x56442e
cmp ecx, 0x1a1c1d98
je 0x5643cf
cmp ecx, 0x13d3b53a
jne 0x5643d1
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x8f0f2ca8
mov edi, 0x1a1c1d98
cmovne ecx, edi
test dl, dl
mov ebx, 0x8f0f2ca8
cmove ecx, ebx
test dh, dh
cmovne ecx, edi
jmp 0x5643d1
mov ecx, 0x1a1c1d98
jmp 0x5643d1
mov eax, dword [esi + 8]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
jmp 0x564246
mov dword [esi + 0x24], 0
cmp dword [esi + 0x24], 0x3e8
je 0x5646a6
mov ecx, dword [esi + 0x34]
movsx eax, byte [ecx + 1]
movsx edx, byte [ecx]
mov dword [esi + 0xc0], 0x2f
push eax
push edx
push dword [esi + 0x38]
call fcn.0041e700
movsx eax, al
mov ecx, dword [esi + 4]
push eax
call fcn.00441240
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x5644ac
xor cl, al
je 0x5644de
mov ecx, dword [esi + 4]
call fcn.00423280
mov edx, dword [0x5cf5f0]
lea ecx, [edx + 1]
imul ecx, edx
test cl, 1
sete dh
cmp dword [0x5cf5f4], 0xa
setl bl
setge dl
cmp bl, dh
jne 0x5644e8
or dl, cl
test dl, 1
je 0x5644e8
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x5644ac
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
cmp byte [ecx + eax - 1], 0x6f
je 0x56450d
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov ecx, dword [edi + 0x10]
cmp byte [ecx + eax - 1], 0x75
jne 0x564668
mov ebx, dword [esi + 4]
mov ecx, ebx
call fcn.00423280
mov dword [esi + 8], eax
mov ecx, ebx
call fcn.00423280
mov ecx, dword [0x5cf5f0]
mov edi, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
add eax, dword [ebx + 0x10]
mov dword [esi + 0xc], eax
and ecx, 1
sete bl
cmp edi, 0xa
setge al
setl bh
xor bh, bl
jne 0x564558
or al, dl
test al, 1
jne 0x5916d2
mov eax, dword [esi + 0xc]
cmp dword [esi + 8], eax
jne 0x564575
jmp 0x56467d
mov edx, dword [esi + 8]
inc edx
mov dword [esi + 8], edx
cmp edx, dword [esi + 0xc]
je 0x56467d
mov eax, dword [0x5cf5f8]
lea ecx, [eax - 1]
imul ecx, eax
mov edx, dword [0x5cf5fc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xc9893d93
mov edi, 0x603280c6
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0xc9893d93
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0xfc461c64
cmp ecx, 0xfc461c63
jg 0x5645da
cmp ecx, 0xc9893d93
je 0x564611
cmp ecx, 0xdac56cfa
jne 0x5645be
mov ecx, eax
jmp 0x5645be
cmp ecx, 0x603280c6
je 0x564618
cmp ecx, 0xfc461c64
jne 0x5645be
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov ebx, 0xc9893d93
mov edi, 0xdac56cfa
cmovne ebx, edi
test cl, cl
mov ecx, ebx
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
jmp 0x5645be
mov ecx, 0xdac56cfa
jmp 0x5645be
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x18]
movsx eax, byte [ebx]
push eax
call fcn.005a47b5
add esp, 4
and al, 0xa
mov byte [ebx], al
mov ecx, dword [0x5cf5f0]
mov edi, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete dl
cmp edi, 0xa
setl dh
test dh, dl
jne 0x564565
xor dh, dl
jne 0x564565
jmp 0x5916a6
mov edx, dword [0x5cf5f0]
mov edi, dword [0x5cf5f4]
lea ecx, [edx - 1]
imul ecx, edx
and ecx, 1
inc dword [esi + 0x24]
test ecx, ecx
sete dl
setne cl
cmp edi, 0xa
setl ah
setge al
cmp dl, ah
jne 0x56444e
or cl, al
je 0x56444e
jmp 0x5916d4
mov ecx, dword [esi + 4]
call fcn.00423280
cmp byte [eax + 0xd7], 0x31
jne 0x567f56
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x567ea3
xor cl, al
je 0x567ed3
jmp 0x567ea3
push eax
mov dword [esi + 0x38], esp
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
mov dword [esi + 0x34], ecx
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 4], edi
mov ecx, edi
call fcn.0040cd80
mov edx, dword [0x5cf4b8]
mov ecx, dword [0x5cf4bc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x28]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x18]
cmovge eax, edx
mov ecx, 0x13d3b53a
cmp ecx, 0x13d3b539
jg 0x564783
cmp ecx, 0x8f0f2ca8
je 0x5647bf
cmp ecx, 0x11f1fb1a
jne 0x564769
jmp 0x5647ca
cmp ecx, 0x1a1c1d98
je 0x5647c6
cmp ecx, 0x13d3b53a
jne 0x564769
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x8f0f2ca8
mov ebx, 0x1a1c1d98
cmovne ecx, ebx
test dl, dl
mov edi, 0x8f0f2ca8
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x564769
mov ecx, 0x1a1c1d98
jmp 0x564769
mov ecx, eax
jmp 0x564769
mov eax, dword [esi + 4]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov eax, dword [0x5cf5f0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x5648f0
xor cl, al
jne 0x5648f0
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 8], edi
mov ecx, edi
call fcn.0040cd80
mov eax, dword [0x5cf4b8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4bc]
sete byte [esi + 0x28]
sete dl
mov eax, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x18]
setl cl
mov ebx, 0x8f0f2ca8
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x13d3b53a
jmp 0x56487f
mov ecx, eax
cmp ecx, 0x13d3b539
jg 0x564899
cmp ecx, 0x8f0f2ca8
je 0x5648d0
cmp ecx, 0x11f1fb1a
jne 0x56487f
jmp 0x5648d7
cmp ecx, 0x1a1c1d98
je 0x56487d
cmp ecx, 0x13d3b53a
jne 0x56487f
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov ch, dl
xor ch, cl
mov ebx, 0x8f0f2ca8
mov edi, 0x1a1c1d98
cmovne ebx, edi
test cl, cl
mov ecx, ebx
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
jmp 0x56487f
mov ecx, 0x1a1c1d98
jmp 0x56487f
mov eax, dword [esi + 8]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
jmp 0x5646f0
mov dword [esi + 0x24], 0
cmp dword [esi + 0x24], 0x3e8
je 0x564b4f
mov ecx, dword [esi + 0x34]
movsx eax, byte [ecx + 1]
movsx edx, byte [ecx]
mov dword [esi + 0xc0], 0x25
push eax
push edx
push dword [esi + 0x38]
call fcn.0041e700
movsx eax, al
mov ecx, dword [esi + 4]
push eax
call fcn.00441240
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x564955
xor cl, al
je 0x564986
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [0x5cf5f4], 0xa
setl dl
test dl, cl
jne 0x564990
xor dl, cl
jne 0x564990
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x564955
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
cmp byte [ecx + eax - 1], 0x6f
je 0x5649b5
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov ecx, dword [edi + 0x10]
cmp byte [ecx + eax - 1], 0x75
jne 0x564b17
mov ebx, dword [esi + 4]
mov ecx, ebx
call fcn.00423280
mov dword [esi + 8], eax
mov ecx, ebx
call fcn.00423280
mov ecx, dword [0x5cf5f0]
mov edi, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
add eax, dword [ebx + 0x10]
mov dword [esi + 0xc], eax
xor ecx, 0xfffffffe
and ecx, edx
setne dl
sete bl
cmp edi, 0xa
setge dh
setl bh
xor bh, bl
jne 0x564a03
or dh, dl
jne 0x5916d6
mov eax, dword [esi + 0xc]
cmp dword [esi + 8], eax
jne 0x564a20
jmp 0x564b2c
mov edx, dword [esi + 8]
inc edx
mov dword [esi + 8], edx
cmp edx, dword [esi + 0xc]
je 0x564b2c
mov edx, dword [0x5cf5f8]
mov ecx, dword [0x5cf5fc]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xc9893d93
mov ebx, 0x603280c6
cmovne edx, ebx
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge eax, edx
mov ecx, 0xfc461c64
cmp ecx, 0xfc461c63
jg 0x564a89
cmp ecx, 0xc9893d93
je 0x564ac0
cmp ecx, 0xdac56cfa
jne 0x564a6d
mov ecx, eax
jmp 0x564a6d
cmp ecx, 0x603280c6
je 0x564ac7
cmp ecx, 0xfc461c64
jne 0x564a6d
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov ebx, 0xc9893d93
mov edi, 0xdac56cfa
cmovne ebx, edi
test cl, cl
mov ecx, ebx
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
jmp 0x564a6d
mov ecx, 0xdac56cfa
jmp 0x564a6d
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x18]
movsx eax, byte [ebx]
push eax
call fcn.005a47b5
add esp, 4
and al, 0xa
mov byte [ebx], al
mov ecx, dword [0x5cf5f0]
mov edi, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete dl
cmp edi, 0xa
setl dh
test dh, dl
jne 0x564a10
xor dh, dl
jne 0x564a10
jmp 0x5916aa
mov edx, dword [0x5cf5f0]
mov edi, dword [0x5cf5f4]
lea ecx, [edx - 1]
imul ecx, edx
and ecx, 1
inc dword [esi + 0x24]
test ecx, ecx
sete cl
cmp edi, 0xa
setl al
test cl, al
jne 0x5648f7
xor cl, al
jne 0x5648f7
jmp 0x5916d8
mov ecx, dword [esi + 4]
call fcn.00423280
cmp byte [eax + 0xd7], 0x31
jne 0x564c29
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x564b8c
xor cl, al
je 0x564bbe
mov ecx, dword [esi + 4]
call fcn.00423280
mov edx, dword [0x5cf5f0]
lea ecx, [edx + 1]
imul ecx, edx
test cl, 1
sete dh
cmp dword [0x5cf5f4], 0xa
setl bl
setge dl
cmp bl, dh
jne 0x564bc8
or dl, cl
test dl, 1
je 0x564bc8
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x564b8c
cmp byte [eax + 0x2d0], 0x30
jne 0x564c29
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x564c29
xor cl, al
jne 0x564c29
push 0
push 0
mov edi, dword [sym.imp.KERNEL32.dll_Beep]
call edi
push 0
push 0
call edi
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
jmp 0x564bee
mov ecx, dword [esi + 4]
call fcn.0040ed30
mov esp, dword [esi + 0x40]
mov dword [esi + 0xa0], esp
mov dword [esi + 0x9c], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
setne dh
sete bl
mov ecx, dword [0x5cf6c4]
cmp ecx, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
xor dl, 1
or dl, bh
push eax
sub esp, 8
mov dword [esi + 0x40], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x70], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x564c70
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x565cc6
mov ecx, dword [esi + 0x40]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setge dl
setl bl
xor bl, dh
mov ebx, dword [esi + 0x38]
mov dword [esi + 4], ebx
mov ebx, dword [esi + 0x24]
mov dword [esi + 8], ebx
jne 0x564d3d
or dl, al
test dl, 1
jne 0x591726
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x565310
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x3c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x3c]
sbb ecx, edx
or ecx, eax
jne 0x564d02
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x10]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov edx, dword [esi + 8]
mov dword [ecx], edx
mov edx, dword [esi + 4]
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x8c]
mov dword [ecx + 8], edx
setl byte [esi + 0x28]
mov edx, dword [esi + 0xc]
mov dword [ecx + 0xc], edx
cmovge eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x564e41
cmp ecx, 0x20e9c049
je 0x564e58
cmp ecx, 0x3b23d0b1
jne 0x564e27
jmp 0x564e83
cmp ecx, 0x9c6e8745
je 0x564e5c
cmp ecx, 0xeb760989
jne 0x564e27
mov ecx, 0x20e9c049
jmp 0x564e27
mov ecx, eax
jmp 0x564e27
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x564e27
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x564f1e
cmp ecx, 0xcfcad29c
je 0x564f61
cmp ecx, 0x3aca7e6
jne 0x564f02
mov ecx, eax
jmp 0x564f02
cmp ecx, 0x7c4a5f2
je 0x564f5a
cmp ecx, 0x389c0e25
jne 0x564f02
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x564f02
mov ecx, 0x3aca7e6
jmp 0x564f02
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x26
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x28
mov ecx, dword [esi + 0x40]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x565003
cmp eax, 0xc6e82640
je 0x565067
cmp eax, 0x950d98a
jne 0x564fc3
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x564fc3
cmp eax, 0x31a61df5
je 0x565020
cmp eax, 0x4d86efb0
jne 0x564fc3
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x564fc3
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x564fc3
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
mov edx, dword [0x5cf6cc]
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne ecx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, ecx
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
cmovge eax, ecx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x5650eb
cmp ecx, 0x20e9c049
je 0x565102
cmp ecx, 0x3b23d0b1
jne 0x5650d1
jmp 0x56512d
cmp ecx, 0x9c6e8745
je 0x565106
cmp ecx, 0xeb760989
jne 0x5650d1
mov ecx, 0x20e9c049
jmp 0x5650d1
mov ecx, eax
jmp 0x5650d1
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5650d1
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x70]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x5651c6
cmp ecx, 0xcfcad29c
je 0x565209
cmp ecx, 0x3aca7e6
jne 0x5651aa
mov ecx, eax
jmp 0x5651aa
cmp ecx, 0x7c4a5f2
je 0x565202
cmp ecx, 0x389c0e25
jne 0x5651aa
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5651aa
mov ecx, 0x3aca7e6
jmp 0x5651aa
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x26
mov ecx, dword [esi + 0x70]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x27
mov ecx, dword [esi + 0x40]
push dword [esi + 0x70]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x5652ac
cmp eax, 0xc6e82640
je 0x564d02
cmp eax, 0x950d98a
jne 0x56526c
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x56526c
cmp eax, 0x31a61df5
je 0x5652c9
cmp eax, 0x4d86efb0
jne 0x56526c
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x56526c
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x56526c
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x565639
mov dword [esi + 0x58], 1
jmp 0x565357
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x565639
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x58]
mov dword [esi + 4], edx
test cl, al
jne 0x56539f
xor cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 4], eax
jne 0x56539f
jmp 0x5918ba
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edx
call fcn.00433980
cmp dword [esi + 4], 0
je 0x565602
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax + 1]
imul edi, eax
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete al
cmp ebx, 0xa
setl dl
xor dl, al
mov eax, 0xbf25ae54
mov edx, 0x20ab24e5
cmovne eax, edx
mov dword [esi + 0x24], ecx
test ecx, edi
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
mov dword [esi + 0xc], ebx
cmp ebx, 0xa
cmovge ecx, eax
mov dword [esi + 8], ecx
setl byte [esi + 0x28]
mov eax, dword [esi + 0x40]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
mov dword [esi + 0x34], ecx
lea eax, [ecx + eax*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x56541d
cmp eax, 0xffb13445
je 0x565452
cmp eax, 0x20ab24e5
jne 0x565406
jmp 0x56545e
cmp eax, 0xbf25ae54
je 0x565457
cmp eax, 0xe6642f9a
jne 0x565406
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne ebx, ecx
test al, al
mov eax, ebx
cmovne eax, ecx
test dl, dl
cmove eax, ebx
jmp 0x565406
mov eax, dword [esi + 8]
jmp 0x565406
mov eax, 0xffb13445
jmp 0x565406
mov ecx, dword [esi + 4]
dec ecx
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x48], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x3c], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x34]
lea eax, [ecx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5654b2
cmp eax, 0xffb13445
je 0x5654ec
cmp eax, 0x20ab24e5
jne 0x56549b
jmp 0x5654f8
cmp eax, 0xbf25ae54
je 0x5654f1
cmp eax, 0xe6642f9a
jne 0x56549b
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, bl
xor bh, al
test al, al
mov eax, 0xbf25ae54
mov ecx, 0xffb13445
cmovne eax, ecx
test bl, bl
mov edx, 0xbf25ae54
cmove eax, edx
test bh, bh
cmovne eax, ecx
jmp 0x56549b
mov eax, dword [esi + 8]
jmp 0x56549b
mov eax, 0xffb13445
jmp 0x56549b
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x48]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x3c]
sbb ecx, dword [eax + 4]
jge 0x565602
test dword [esi + 0x24], edi
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x56553f
cmp eax, 0xffb13445
je 0x565579
cmp eax, 0x20ab24e5
jne 0x565528
jmp 0x565585
cmp eax, 0xbf25ae54
je 0x56557e
cmp eax, 0xe6642f9a
jne 0x565528
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, al
xor dh, dl
test al, al
mov eax, 0xbf25ae54
mov ecx, 0xffb13445
cmovne eax, ecx
test dl, dl
mov ebx, 0xbf25ae54
cmove eax, ebx
test dh, dh
cmovne eax, ecx
jmp 0x565528
mov eax, dword [esi + 8]
jmp 0x565528
mov eax, 0xffb13445
jmp 0x565528
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5655bc
cmp eax, 0xffb13445
je 0x5655f6
cmp eax, 0x20ab24e5
jne 0x5655a2
jmp 0x565386
cmp eax, 0xbf25ae54
je 0x5655fb
cmp eax, 0xe6642f9a
jne 0x5655a2
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, al
xor ch, cl
test al, al
mov eax, 0xbf25ae54
mov ebx, 0xffb13445
cmovne eax, ebx
test cl, cl
mov edi, 0xbf25ae54
cmove eax, edi
test ch, ch
cmovne eax, ebx
jmp 0x5655a2
mov eax, dword [esi + 8]
jmp 0x5655a2
mov eax, 0xffb13445
jmp 0x5655a2
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x565335
xor dl, al
jne 0x565335
jmp 0x5918bc
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x56568c
cmp edi, 0x88e9608c
je 0x5656cb
cmp edi, 0xdf32ec89
jne 0x565668
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x565668
cmp edi, 0x30b7124c
je 0x565724
cmp edi, 0x124998e2
jne 0x565668
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
test bh, bh
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test cl, cl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bl, bl
cmovne edi, edx
jmp 0x565668
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea edi, [ecx + 1]
mov dword [esi + 4], ecx
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete cl
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne ecx, ebx
cmp edi, 0xffffffff
mov edi, ecx
cmove edi, ebx
mov dword [esi + 8], edx
cmp edx, 0xa
cmovge edi, ecx
mov ecx, dword [esi + 0x18]
jmp 0x565668
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x40]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x565772
cmp ecx, 0x88e9608c
je 0x5657b2
cmp ecx, 0xdf32ec89
jne 0x56574e
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x56574e
cmp ecx, 0x30b7124c
je 0x565800
cmp ecx, 0x124998e2
jne 0x56574e
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x56574e
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x56574e
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
jmp 0x56582d
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x565846
xor cl, al
je 0x5918be
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x565c35
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmovne ebx, edi
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
mov edi, ebx
mov ecx, 0x2601f5a7
cmove edi, ecx
cmp edx, 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov ecx, dword [eax]
mov dword [esi + 8], ecx
cmovge edi, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x5658d7
cmp edx, 0x87fb68d6
je 0x565913
cmp edx, 0xfc04dcc5
jne 0x5658b8
mov edx, 0x87fb68d6
jmp 0x5658b8
cmp edx, 0x2601f5a7
je 0x565917
cmp edx, 0x5a893bc4
jne 0x5658b8
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov ecx, 0xfc04dcc5
cmove edx, ecx
test bh, bh
cmovne edx, eax
jmp 0x5658b8
mov edx, edi
jmp 0x5658b8
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
cmp dword [esi + 8], ecx
je 0x565b37
mov eax, dword [0x5cf6f0]
mov dword [esi + 0xc], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x56595d
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x3c]
je 0x565b37
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
setne cl
cmp dword [esi + 0x38], 0xa
setge al
mov edx, eax
xor dl, cl
or al, cl
xor al, 1
or al, dl
mov byte [esi + 0x24], al
jne 0x565a33
mov eax, dword [esi + 0xc]
lea edx, [eax + 1]
imul edx, eax
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
test ecx, ecx
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
mov edx, 0x1b272c9a
jmp 0x5659d2
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x5659ec
cmp edx, 0x4c6ca682
je 0x565a23
cmp edx, 0x6707b2cf
jne 0x5659d2
jmp 0x565a2a
cmp edx, 0xf74fd645
je 0x5659d0
cmp edx, 0x1b272c9a
jne 0x5659d2
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x5659d2
mov edx, 0xf74fd645
jmp 0x5659d2
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0xc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
sete byte [esi + 0x10]
sete ah
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove edx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl bl
mov edi, 0x4c6ca682
cmovge edx, edi
xor bl, ah
mov eax, 0x6707b2cf
cmovne edx, eax
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x565a8f
cmp ebx, 0x4c6ca682
je 0x565acf
cmp ebx, 0x6707b2cf
jne 0x565a75
jmp 0x565ada
cmp ebx, 0xf74fd645
je 0x565ad6
cmp ebx, 0x1b272c9a
jne 0x565a75
mov ah, byte [esi + 0x10]
movzx ebx, byte [esi + 0x28]
mov al, bl
xor al, ah
test bl, bl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test ah, ah
mov edi, 0x4c6ca682
cmove ebx, edi
test al, al
mov eax, 0xf74fd645
cmovne ebx, eax
jmp 0x565a75
mov ebx, 0xf74fd645
jmp 0x565a75
mov ebx, edx
jmp 0x565a75
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
cmp byte [esi + 0x24], 0
je 0x56599b
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x56594b
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0xc], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x56594b
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [esi + 0x38], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x565b5e
or cl, al
test cl, 1
jne 0x5918c0
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x565ba8
cmp eax, 0xcd5e6053
je 0x565c06
cmp eax, 0x18ed46ca
jne 0x565b86
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x565b86
cmp eax, 0x5499d804
je 0x565817
cmp eax, 0x685e39a2
jne 0x565b86
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x18ed46ca
mov ebx, 0x5499d804
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x565b86
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x565b86
mov ecx, dword [esi + 0x40]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete byte [esi + 8]
cmp ecx, 0xa
setl bh
setge bl
mov edi, dword [esi + 0x5c]
cmp bh, byte [esi + 8]
jne 0x564cd4
or bl, dl
mov edi, dword [esi + 0x5c]
test bl, 1
je 0x564cd4
mov edi, dword [esi + 0x40]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp ecx, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x565cbe
test dl, dl
je 0x565c78
mov edi, dword [esi + 0x5c]
jmp 0x564cd4
mov edi, dword [esi + 0x5c]
jmp 0x564cd4
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete ah
cmp ecx, 0xa
setge al
setl cl
xor cl, ah
jne 0x565ce9
or al, dl
test al, 1
jne 0x5918a0
mov esp, dword [esi + 0x9c]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
sete dh
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x68], ecx
mov esp, ecx
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x70], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x64], ecx
mov esp, ecx
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x565d15
mov ecx, dword [esi + 0x68]
add ecx, 0x10
mov dword [esi + 0x90], ecx
mov ecx, dword [esi + 0x64]
add ecx, 0x10
mov dword [esi + 0x80], ecx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x566d8a
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete ah
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
mov ebx, dword [esi + 0x38]
mov dword [esi + 4], ebx
mov ebx, dword [esi + 0x24]
mov dword [esi + 8], ebx
jne 0x565de7
or dl, al
jne 0x5918b0
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x5663ad
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x565da7
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 8]
mov dword [ecx], ebx
mov ebx, dword [esi + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x8c]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0xc]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x565ee9
cmp ecx, 0x20e9c049
je 0x565f00
cmp ecx, 0x3b23d0b1
jne 0x565ecf
jmp 0x565f30
cmp ecx, 0x9c6e8745
je 0x565f04
cmp ecx, 0xeb760989
jne 0x565ecf
mov ecx, 0x20e9c049
jmp 0x565ecf
mov ecx, eax
jmp 0x565ecf
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x565ecf
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x565fc9
cmp ecx, 0xcfcad29c
je 0x566007
cmp ecx, 0x3aca7e6
jne 0x565fad
mov ecx, eax
jmp 0x565fad
cmp ecx, 0x7c4a5f2
je 0x566000
cmp ecx, 0x389c0e25
jne 0x565fad
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x565fad
mov ecx, 0x3aca7e6
jmp 0x565fad
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x29
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x2b
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x5660a9
cmp eax, 0xc6e82640
je 0x56610d
cmp eax, 0x950d98a
jne 0x566069
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x566069
cmp eax, 0x31a61df5
je 0x5660c6
cmp eax, 0x4d86efb0
jne 0x566069
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x566069
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x566069
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf6cc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
setl dl
mov ebx, 0xeb760989
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x56618d
cmp ecx, 0x20e9c049
je 0x5661a4
cmp ecx, 0x3b23d0b1
jne 0x566173
jmp 0x5661cf
cmp ecx, 0x9c6e8745
je 0x5661a8
cmp ecx, 0xeb760989
jne 0x566173
mov ecx, 0x20e9c049
jmp 0x566173
mov ecx, eax
jmp 0x566173
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x566173
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x70]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x566265
cmp ecx, 0xcfcad29c
je 0x5662a8
cmp ecx, 0x3aca7e6
jne 0x566249
mov ecx, eax
jmp 0x566249
cmp ecx, 0x7c4a5f2
je 0x5662a1
cmp ecx, 0x389c0e25
jne 0x566249
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x566249
mov ecx, 0x3aca7e6
jmp 0x566249
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x29
mov ecx, dword [esi + 0x70]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x2a
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x70]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x56634a
cmp eax, 0xc6e82640
je 0x565da7
cmp eax, 0x950d98a
jne 0x56630a
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x56630a
cmp eax, 0x31a61df5
je 0x566367
cmp eax, 0x4d86efb0
jne 0x56630a
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x56630a
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x56630a
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x5666d8
mov dword [esi + 0x58], 1
jmp 0x5663f4
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x5666d8
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne al
sete dl
cmp edi, 0xa
setge cl
setl ah
xor ah, dl
mov edx, dword [esi + 0x58]
mov dword [esi + 4], edx
jne 0x566442
or cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 4], eax
je 0x566442
jmp 0x5918b2
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edx
call fcn.00433980
cmp dword [esi + 4], 0
je 0x5666a0
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax + 1]
imul edi, eax
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete al
cmp ebx, 0xa
setl dl
xor dl, al
mov eax, 0xbf25ae54
mov edx, 0x20ab24e5
cmovne eax, edx
mov dword [esi + 0x24], ecx
test ecx, edi
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
mov dword [esi + 0xc], ebx
cmp ebx, 0xa
cmovge ecx, eax
mov dword [esi + 8], ecx
setl byte [esi + 0x28]
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
lea edx, [eax + eax*2]
mov dword [esi + 0x34], ecx
lea eax, [ecx + edx*4]
mov dword [esi + 0x38], eax
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x5664c3
cmp edx, 0xffb13445
je 0x5664ff
cmp edx, 0x20ab24e5
jne 0x5664a9
jmp 0x56650b
cmp edx, 0xbf25ae54
je 0x566504
cmp edx, 0xe6642f9a
jne 0x5664a9
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
test dl, dl
mov edx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne edx, ecx
test al, al
mov ebx, 0xbf25ae54
cmove edx, ebx
test ah, ah
cmovne edx, ecx
jmp 0x5664a9
mov edx, dword [esi + 8]
jmp 0x5664a9
mov edx, 0xffb13445
jmp 0x5664a9
mov ecx, dword [esi + 4]
dec ecx
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x48], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x40], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x34]
lea eax, [ecx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x56655f
cmp eax, 0xffb13445
je 0x566594
cmp eax, 0x20ab24e5
jne 0x566548
jmp 0x5665a0
cmp eax, 0xbf25ae54
je 0x566599
cmp eax, 0xe6642f9a
jne 0x566548
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne edx, ecx
test al, al
mov eax, edx
cmovne eax, ecx
test bl, bl
cmove eax, edx
jmp 0x566548
mov eax, dword [esi + 8]
jmp 0x566548
mov eax, 0xffb13445
jmp 0x566548
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x48]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x40]
sbb ecx, dword [eax + 4]
jge 0x5666a0
test dword [esi + 0x24], edi
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5665e7
cmp eax, 0xffb13445
je 0x56661c
cmp eax, 0x20ab24e5
jne 0x5665d0
jmp 0x566628
cmp eax, 0xbf25ae54
je 0x566621
cmp eax, 0xe6642f9a
jne 0x5665d0
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne ebx, ecx
test al, al
mov eax, ebx
cmovne eax, ecx
test dl, dl
cmove eax, ebx
jmp 0x5665d0
mov eax, dword [esi + 8]
jmp 0x5665d0
mov eax, 0xffb13445
jmp 0x5665d0
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x56665f
cmp eax, 0xffb13445
je 0x566694
cmp eax, 0x20ab24e5
jne 0x566645
jmp 0x566429
cmp eax, 0xbf25ae54
je 0x566699
cmp eax, 0xe6642f9a
jne 0x566645
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov edi, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edi, ebx
test al, al
mov eax, edi
cmovne eax, ebx
test cl, cl
cmove eax, edi
jmp 0x566645
mov eax, dword [esi + 8]
jmp 0x566645
mov eax, 0xffb13445
jmp 0x566645
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x5663d2
xor dl, al
jne 0x5663d2
jmp 0x5918b4
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x56672b
cmp edi, 0x88e9608c
je 0x56676a
cmp edi, 0xdf32ec89
jne 0x566707
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x566707
cmp edi, 0x30b7124c
je 0x5667c3
cmp edi, 0x124998e2
jne 0x566707
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x566707
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea edi, [ecx + 1]
mov dword [esi + 4], ecx
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete cl
cmp ebx, 0xa
setl dl
xor dl, cl
mov ecx, 0xdf32ec89
mov edx, 0x30b7124c
cmovne ecx, edx
cmp edi, 0xffffffff
mov edi, ecx
cmove edi, edx
mov dword [esi + 8], ebx
cmp ebx, 0xa
cmovge edi, ecx
mov ecx, dword [esi + 0x18]
jmp 0x566707
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x566811
cmp ecx, 0x88e9608c
je 0x566851
cmp ecx, 0xdf32ec89
jne 0x5667ed
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x5667ed
cmp ecx, 0x30b7124c
je 0x56689f
cmp ecx, 0x124998e2
jne 0x5667ed
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5667ed
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x5667ed
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf6c4], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x5668d3
or cl, al
jne 0x5918b8
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x566cf1
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
mov dword [esi + 8], edx
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edx, 0x2601f5a7
cmovne ebx, edx
test edi, ecx
sete byte [esi + 0x28]
mov ecx, ebx
cmove ecx, edx
cmp dword [esi + 8], 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov eax, dword [eax]
mov dword [esi + 8], eax
cmovge ecx, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x566961
cmp edx, 0x87fb68d6
je 0x56699d
cmp edx, 0xfc04dcc5
jne 0x566942
mov edx, 0x87fb68d6
jmp 0x566942
cmp edx, 0x2601f5a7
je 0x5669a1
cmp edx, 0x5a893bc4
jne 0x566942
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, bl
xor bh, dl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x566942
mov edx, ecx
jmp 0x566942
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x566bc5
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x5669e7
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x566bc5
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x34], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x566ac4
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
test ecx, ecx
sete al
mov edi, dword [esi + 4]
cmp edi, 0xa
setl dl
xor dl, al
mov eax, 0x4c6ca682
mov edx, 0x6707b2cf
cmovne eax, edx
test ecx, ecx
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
cmp edi, 0xa
setl byte [esi + 0x28]
cmovge ecx, eax
mov ebx, 0x1b272c9a
jmp 0x566a5e
mov ebx, ecx
cmp ebx, 0x4c6ca681
jle 0x566a78
cmp ebx, 0x4c6ca682
je 0x566ab4
cmp ebx, 0x6707b2cf
jne 0x566a5e
jmp 0x566abb
cmp ebx, 0xf74fd645
je 0x566a5c
cmp ebx, 0x1b272c9a
jne 0x566a5e
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, dl
xor ah, al
test dl, dl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test al, al
mov edx, 0x4c6ca682
cmove ebx, edx
test ah, ah
cmovne ebx, edi
jmp 0x566a5e
mov ebx, 0xf74fd645
jmp 0x566a5e
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
mov dword [esi + 0xc], ecx
sete byte [esi + 0x10]
sete bl
mov eax, 0x4c6ca682
mov edx, 0x6707b2cf
cmove eax, edx
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl bh
mov edi, 0x4c6ca682
cmovge eax, edi
xor bh, bl
cmovne eax, edx
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x566b22
cmp ebx, 0x4c6ca682
je 0x566b5d
cmp ebx, 0x6707b2cf
jne 0x566b08
jmp 0x566b68
cmp ebx, 0xf74fd645
je 0x566b64
cmp ebx, 0x1b272c9a
jne 0x566b08
movzx edx, byte [esi + 0x10]
mov dh, byte [esi + 0x28]
mov ebx, edx
xor bl, dh
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test dh, dh
mov ebx, edi
mov ecx, 0xf74fd645
cmovne ebx, ecx
test dl, dl
cmove ebx, edi
jmp 0x566b08
mov ebx, 0xf74fd645
jmp 0x566b08
mov ebx, eax
jmp 0x566b08
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x566a20
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x5669d5
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x5669d5
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [esi + 0x34], 0xa
setge cl
setl ch
xor ch, dl
jne 0x566bec
or cl, al
test cl, 1
jne 0x5918b6
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x566c36
cmp eax, 0xcd5e6053
je 0x566c8b
cmp eax, 0x18ed46ca
jne 0x566c14
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x566c14
cmp eax, 0x5499d804
je 0x566cba
cmp eax, 0x685e39a2
jne 0x566c14
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x566c14
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x566c14
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x5668d3
xor cl, al
jne 0x5668d3
jmp 0x5918b8
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete bl
setne dl
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl bh
setge dh
mov edi, dword [esi + 0x5c]
cmp bh, bl
jne 0x565d79
or dh, dl
mov edi, dword [esi + 0x5c]
je 0x565d79
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete bh
mov dword [esi + 8], ecx
cmp ecx, 0xa
setge bl
setl cl
or bl, dl
xor cl, bh
test cl, cl
jne 0x566d82
test bl, 1
jne 0x566d39
mov edi, dword [esi + 0x5c]
jmp 0x565d79
mov edi, dword [esi + 0x5c]
jmp 0x565d79
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete ah
cmp dword [esi + 8], 0xa
setge al
setl cl
xor cl, ah
jne 0x566dae
or al, dl
test al, 1
jne 0x5918a2
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dh
sete bl
cmp eax, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
xor dl, 1
or dl, bh
push eax
sub esp, 8
mov dword [esi + 8], esp
sub esp, 0xc
mov dword [esi + 0x34], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x54], edi
mov esp, edi
push eax
mov dword [esi + 0x64], esp
sub esp, 0xc
mov dword [esi + 0x40], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
push eax
mov dword [esi + 0x70], esp
push eax
mov dword [esi + 0x88], esp
test dl, dl
je 0x566de4
mov edx, dword [esi + 0x54]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x567e3c
mov ecx, dword [esi + 8]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x48], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], 0
mov eax, dword [esi + 0x3c]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x566eb1
xor dl, al
je 0x5918a6
mov edx, dword [esi + 4]
mov eax, edx
imul eax, dword [esi + 0xc]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x48]
sbb eax, 0
jae 0x56748e
mov eax, dword [esi + 0x48]
mov edi, dword [esi + 4]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x60], eax
mov eax, 0
mov ebx, dword [esi + 0xc]
sbb eax, ebx
mov dword [esi + 0x4c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0x24], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x3c], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0x38], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x60]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
sbb ecx, edx
or ecx, eax
jne 0x566e76
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x10]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x54]
mov edx, dword [esi + 4]
mov dword [ecx], edx
mov edx, dword [esi + 0xc]
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x8c]
mov dword [ecx + 8], edx
setl byte [esi + 0x28]
mov edx, dword [esi + 0x24]
mov dword [ecx + 0xc], edx
cmovge eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x566fb5
cmp ecx, 0x20e9c049
je 0x566fcc
cmp ecx, 0x3b23d0b1
jne 0x566f9b
jmp 0x566ffc
cmp ecx, 0x9c6e8745
je 0x566fd0
cmp ecx, 0xeb760989
jne 0x566f9b
mov ecx, 0x20e9c049
jmp 0x566f9b
mov ecx, eax
jmp 0x566f9b
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x566f9b
mov eax, dword [esi + 0x64]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x34]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x56708f
cmp ecx, 0xcfcad29c
je 0x5670d2
cmp ecx, 0x3aca7e6
jne 0x567073
mov ecx, eax
jmp 0x567073
cmp ecx, 0x7c4a5f2
je 0x5670cb
cmp ecx, 0x389c0e25
jne 0x567073
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x567073
mov ecx, 0x3aca7e6
jmp 0x567073
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x2c
mov ecx, dword [esi + 0x34]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x2e
mov ecx, dword [esi + 8]
push dword [esi + 0x34]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x567179
cmp eax, 0xc6e82640
je 0x5671e3
cmp eax, 0x950d98a
jne 0x567134
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x567134
cmp eax, 0x31a61df5
je 0x567196
cmp eax, 0x4d86efb0
jne 0x567134
mov ecx, dword [esi + 0x34]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x567134
mov ecx, dword [esi + 0x34]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x567134
mov ebx, dword [esi + 0x68]
mov eax, dword [esi + 0x24]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf6cc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 4]
mov dword [ebx + 8], edx
setl dl
mov ebx, 0xeb760989
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x567263
cmp ecx, 0x20e9c049
je 0x56727a
cmp ecx, 0x3b23d0b1
jne 0x567249
jmp 0x5672a5
cmp ecx, 0x9c6e8745
je 0x56727e
cmp ecx, 0xeb760989
jne 0x567249
mov ecx, 0x20e9c049
jmp 0x567249
mov ecx, eax
jmp 0x567249
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x567249
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x40]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x56733e
cmp ecx, 0xcfcad29c
je 0x567381
cmp ecx, 0x3aca7e6
jne 0x567322
mov ecx, eax
jmp 0x567322
cmp ecx, 0x7c4a5f2
je 0x56737a
cmp ecx, 0x389c0e25
jne 0x567322
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x567322
mov ecx, 0x3aca7e6
jmp 0x567322
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x2c
mov ecx, dword [esi + 0x40]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x2d
mov ecx, dword [esi + 8]
push dword [esi + 0x40]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x567424
cmp eax, 0xc6e82640
je 0x566e76
cmp eax, 0x950d98a
jne 0x5673e4
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x5673e4
cmp eax, 0x31a61df5
je 0x567441
cmp eax, 0x4d86efb0
jne 0x5673e4
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x5673e4
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x5673e4
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x5677be
mov dword [esi + 0x60], 1
jmp 0x5674d5
mov ebx, dword [esi + 0x60]
inc ebx
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x60], ebx
cmp ebx, edx
jae 0x5677be
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
setne al
cmp edi, 0xa
setl ah
setge cl
mov edi, dword [esi + 0x60]
mov dword [esi + 4], edi
cmp ah, dl
jne 0x567525
or cl, al
mov eax, dword [esi + 0x60]
mov dword [esi + 4], eax
je 0x567525
jmp 0x5918a8
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0x24]
call fcn.00433980
cmp dword [esi + 4], 0
je 0x567786
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0x24], ecx
sete byte [esi + 0x10]
sete al
mov ecx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove ecx, ebx
mov dword [esi + 0xc], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ecx, edx
setl dl
xor dl, al
mov eax, dword [esi + 8]
mov edi, dword [eax]
mov eax, dword [esi + 4]
lea edx, [eax + eax*2]
mov dword [esi + 0x3c], edi
lea eax, [edi + edx*4]
mov dword [esi + 0x38], eax
cmovne ecx, ebx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x56759d
cmp edx, 0xffb13445
je 0x5675d9
cmp edx, 0x20ab24e5
jne 0x567583
jmp 0x5675e4
cmp edx, 0xbf25ae54
je 0x5675dd
cmp edx, 0xe6642f9a
jne 0x567583
movzx ebx, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov bh, bl
xor bh, dl
test dl, dl
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test bl, bl
mov eax, 0xbf25ae54
cmove edx, eax
test bh, bh
cmovne edx, edi
jmp 0x567583
mov edx, ecx
jmp 0x567583
mov edx, 0xffb13445
jmp 0x567583
mov eax, dword [esi + 4]
dec eax
cmp dword [esi + 0x24], 0
mov edx, dword [esi + 0x38]
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x18]
mov ebx, dword [edx]
mov edx, dword [ebx]
mov dword [esi + 0x4c], edx
mov edx, dword [ebx + 4]
mov dword [esi + 0x48], edx
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], eax
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x3c]
lea eax, [eax + edx*4]
mov dword [esi + 0x3c], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x567639
cmp eax, 0xffb13445
je 0x567673
cmp eax, 0x20ab24e5
jne 0x567622
jmp 0x56767e
cmp eax, 0xbf25ae54
je 0x567677
cmp eax, 0xe6642f9a
jne 0x567622
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test dl, dl
mov ebx, 0xbf25ae54
cmove eax, ebx
test dh, dh
cmovne eax, edi
jmp 0x567622
mov eax, ecx
jmp 0x567622
mov eax, 0xffb13445
jmp 0x567622
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [esi + 0x4c]
cmp edx, dword [eax]
mov edx, dword [esi + 0x48]
sbb edx, dword [eax + 4]
jge 0x567786
cmp dword [esi + 0x24], 0
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5676c6
cmp eax, 0xffb13445
je 0x5676fb
cmp eax, 0x20ab24e5
jne 0x5676af
jmp 0x567706
cmp eax, 0xbf25ae54
je 0x5676ff
cmp eax, 0xe6642f9a
jne 0x5676af
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ebx, edi
test al, al
mov eax, ebx
cmovne eax, edi
test dl, dl
cmove eax, ebx
jmp 0x5676af
mov eax, ecx
jmp 0x5676af
mov eax, 0xffb13445
jmp 0x5676af
cmp dword [esi + 0x24], 0
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x24], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x567741
cmp eax, 0xffb13445
je 0x56777b
cmp eax, 0x20ab24e5
jne 0x567727
jmp 0x56750a
cmp eax, 0xbf25ae54
je 0x56777f
cmp eax, 0xe6642f9a
jne 0x567727
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, bl
xor bh, al
test al, al
mov eax, 0xbf25ae54
mov edx, 0xffb13445
cmovne eax, edx
test bl, bl
mov edi, 0xbf25ae54
cmove eax, edi
test bh, bh
cmovne eax, edx
jmp 0x567727
mov eax, ecx
jmp 0x567727
mov eax, 0xffb13445
jmp 0x567727
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
cmp edi, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x5674b3
or dl, al
test dl, 1
je 0x5674b3
jmp 0x5918aa
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 0xc], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x567812
cmp edi, 0x88e9608c
je 0x567851
cmp edi, 0xdf32ec89
jne 0x5677ee
mov ecx, dword [esi + 0x70]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x5677ee
cmp edi, 0x30b7124c
je 0x5678ab
cmp edi, 0x124998e2
jne 0x5677ee
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
test bh, bh
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test cl, cl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bl, bl
cmovne edi, edx
jmp 0x5677ee
mov ecx, dword [esi + 0x70]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
mov dword [esi + 0xc], edx
imul ecx, edx
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 4], ebx
cmp ebx, 0xa
mov ebx, 0xdf32ec89
cmovge edi, ebx
setl ch
xor ch, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x5677ee
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x5678fc
cmp ecx, 0x88e9608c
je 0x56793c
cmp ecx, 0xdf32ec89
jne 0x5678d5
mov ecx, dword [esi + 0x88]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x5678d5
cmp ecx, 0x30b7124c
je 0x567992
cmp ecx, 0x124998e2
jne 0x5678d5
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5678d5
mov ecx, dword [esi + 0x88]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov edi, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne edi, ebx
cmp ecx, 0xffffffff
mov ecx, edi
cmove ecx, ebx
cmp edx, 0xa
cmovge ecx, edi
mov edx, dword [esi + 0x18]
jmp 0x5678d5
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x5679c2
or cl, al
test cl, 1
jne 0x5918ac
mov eax, dword [esi + 0x70]
mov eax, dword [eax]
mov ecx, dword [esi + 0x88]
cmp eax, dword [ecx]
je 0x567daf
mov ecx, dword [esi + 0x70]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmovne ebx, edi
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
mov edi, ebx
mov ecx, 0x2601f5a7
cmove edi, ecx
cmp edx, 0xa
setl byte [esi + 0x18]
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov dword [esi + 4], ecx
cmovge edi, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x567a56
cmp edx, 0x87fb68d6
je 0x567a8d
cmp edx, 0xfc04dcc5
jne 0x567a37
mov edx, 0x87fb68d6
jmp 0x567a37
cmp edx, 0x2601f5a7
je 0x567a91
cmp edx, 0x5a893bc4
jne 0x567a37
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, bl
xor dh, dl
mov ecx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne ecx, eax
test dl, dl
mov edx, ecx
cmovne edx, eax
test bl, bl
cmove edx, ecx
jmp 0x567a37
mov edx, edi
jmp 0x567a37
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x4c], ecx
cmp dword [esi + 4], ecx
je 0x567cb0
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x567ad7
mov eax, dword [esi + 4]
add eax, 8
mov dword [esi + 4], eax
cmp eax, dword [esi + 0x4c]
je 0x567cb0
mov ecx, dword [esi + 0x48]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne cl
cmp dword [esi + 0x3c], 0xa
setge al
mov edx, eax
xor dl, cl
or al, cl
xor al, 1
or al, dl
mov byte [esi + 0x38], al
jne 0x567bac
mov eax, dword [esi + 0x24]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
test ecx, ecx
sete al
mov edi, dword [esi + 0xc]
cmp edi, 0xa
setl dl
xor dl, al
mov eax, 0x4c6ca682
mov edx, 0x6707b2cf
cmovne eax, edx
test ecx, ecx
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
cmp edi, 0xa
setl byte [esi + 0x28]
cmovge ecx, eax
mov edx, 0x1b272c9a
jmp 0x567b4b
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x567b65
cmp edx, 0x4c6ca682
je 0x567b9c
cmp edx, 0x6707b2cf
jne 0x567b4b
jmp 0x567ba3
cmp edx, 0xf74fd645
je 0x567b49
cmp edx, 0x1b272c9a
jne 0x567b4b
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x567b4b
mov edx, 0xf74fd645
jmp 0x567b4b
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x24]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
sete byte [esi + 0x10]
sete ah
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove edx, edi
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl bl
mov edi, 0x4c6ca682
cmovge edx, edi
xor bl, ah
mov eax, 0x6707b2cf
cmovne edx, eax
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x567c08
cmp ebx, 0x4c6ca682
je 0x567c48
cmp ebx, 0x6707b2cf
jne 0x567bee
jmp 0x567c53
cmp ebx, 0xf74fd645
je 0x567c4f
cmp ebx, 0x1b272c9a
jne 0x567bee
mov ah, byte [esi + 0x10]
movzx ebx, byte [esi + 0x28]
mov al, bl
xor al, ah
test bl, bl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test ah, ah
mov edi, 0x4c6ca682
cmove ebx, edi
test al, al
mov eax, 0xf74fd645
cmovne ebx, eax
jmp 0x567bee
mov ebx, 0xf74fd645
jmp 0x567bee
mov ebx, edx
jmp 0x567bee
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x567b10
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x567ac5
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x3c], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x567ac5
mov ecx, dword [esi + 0x48]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne al
sete dl
cmp dword [esi + 0x3c], 0xa
setge cl
setl ah
xor ah, dl
jne 0x567cdc
or cl, al
jne 0x5918ae
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x567d27
cmp eax, 0xcd5e6053
je 0x567d80
cmp eax, 0x18ed46ca
jne 0x567d05
mov eax, dword [esi + 0x70]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x567d05
cmp eax, 0x5499d804
je 0x567992
cmp eax, 0x685e39a2
jne 0x567d05
mov eax, dword [esi + 0x70]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x567d05
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x567d05
mov ecx, dword [esi + 8]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dl
cmp eax, 0xa
setl dh
mov edi, dword [esi + 0x5c]
test dh, dl
jne 0x566e48
xor dh, dl
mov edi, dword [esi + 0x5c]
jne 0x566e48
mov edi, dword [esi + 8]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp eax, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x567e34
test dl, dl
je 0x567dee
mov edi, dword [esi + 0x5c]
jmp 0x566e48
mov edi, dword [esi + 0x5c]
jmp 0x566e48
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x567e5e
xor al, cl
je 0x5918a4
mov esp, dword [esi + 0xa0]
mov eax, dword [0x5d21a8]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x5af2d6e3
mov edi, 0xbf311110
cmove eax, edi
cmp dword [0x5d21ac], 0xa
mov edx, 0x5af2d6e3
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x56418f
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp dword [0x5cf5f4], 0xa
setl dl
test dl, cl
jne 0x567edd
xor dl, cl
jne 0x567edd
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x567ea3
cmp byte [eax + 0x2d0], 0x30
jne 0x567f56
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf5f4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x567f56
or cl, al
je 0x567f56
push 0
push 0
mov edi, dword [sym.imp.KERNEL32.dll_Beep]
call edi
push 0
push 0
call edi
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x567f56
xor cl, al
je 0x567f1d
mov ecx, dword [esi + 4]
call fcn.0040ed30
mov esp, dword [esi + 0x40]
mov dword [esi + 0xa0], esp
mov dword [esi + 0x9c], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
sete dh
cmp ecx, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 0x40], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x70], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x567f90
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x568ff4
mov ecx, dword [esi + 0x40]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x56805d
xor dl, al
je 0x591722
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x56862e
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x3c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x3c]
sbb ecx, edx
or ecx, eax
jne 0x568022
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x10]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov edx, dword [esi + 8]
mov dword [ecx], edx
mov edx, dword [esi + 4]
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x8c]
mov dword [ecx + 8], edx
setl byte [esi + 0x28]
mov edx, dword [esi + 0xc]
mov dword [ecx + 0xc], edx
cmovge eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x568161
cmp ecx, 0x20e9c049
je 0x568178
cmp ecx, 0x3b23d0b1
jne 0x568147
jmp 0x5681a8
cmp ecx, 0x9c6e8745
je 0x56817c
cmp ecx, 0xeb760989
jne 0x568147
mov ecx, 0x20e9c049
jmp 0x568147
mov ecx, eax
jmp 0x568147
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x568147
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x4c]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x90]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x68]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x56823f
cmp ecx, 0xcfcad29c
je 0x56827d
cmp ecx, 0x3aca7e6
jne 0x568223
mov ecx, eax
jmp 0x568223
cmp ecx, 0x7c4a5f2
je 0x568276
cmp ecx, 0x389c0e25
jne 0x568223
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x568223
mov ecx, 0x3aca7e6
jmp 0x568223
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x30
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x32
mov ecx, dword [esi + 0x40]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x568325
cmp eax, 0xc6e82640
je 0x568388
cmp eax, 0x950d98a
jne 0x5682e0
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x5682e0
cmp eax, 0x31a61df5
je 0x568342
cmp eax, 0x4d86efb0
jne 0x5682e0
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x5682e0
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x5682e0
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf6cc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
setl dl
mov ebx, 0xeb760989
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x568408
cmp ecx, 0x20e9c049
je 0x56841f
cmp ecx, 0x3b23d0b1
jne 0x5683ee
jmp 0x56844a
cmp ecx, 0x9c6e8745
je 0x568423
cmp ecx, 0xeb760989
jne 0x5683ee
mov ecx, 0x20e9c049
jmp 0x5683ee
mov ecx, eax
jmp 0x5683ee
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5683ee
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x70]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x5684e5
cmp ecx, 0xcfcad29c
je 0x568523
cmp ecx, 0x3aca7e6
jne 0x5684c9
mov ecx, eax
jmp 0x5684c9
cmp ecx, 0x7c4a5f2
je 0x56851c
cmp ecx, 0x389c0e25
jne 0x5684c9
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5684c9
mov ecx, 0x3aca7e6
jmp 0x5684c9
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x30
mov ecx, dword [esi + 0x70]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x31
mov ecx, dword [esi + 0x40]
push dword [esi + 0x70]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x5685ca
cmp eax, 0xc6e82640
je 0x568022
cmp eax, 0x950d98a
jne 0x568585
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x568585
cmp eax, 0x31a61df5
je 0x5685e7
cmp eax, 0x4d86efb0
jne 0x568585
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x568585
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x568585
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x568959
mov dword [esi + 0x58], 1
jmp 0x568675
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x568959
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp edi, 0xa
setl ch
setge cl
mov edi, dword [esi + 0x58]
mov dword [esi + 4], edi
cmp ch, dl
jne 0x5686be
or cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 4], eax
test cl, 1
je 0x5686be
jmp 0x591898
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edx
call fcn.00433980
cmp dword [esi + 4], 0
je 0x568921
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax + 1]
imul edi, eax
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete al
cmp ebx, 0xa
setl dl
xor dl, al
mov eax, 0xbf25ae54
mov edx, 0x20ab24e5
cmovne eax, edx
mov dword [esi + 0x24], ecx
test ecx, edi
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
mov dword [esi + 0xc], ebx
cmp ebx, 0xa
cmovge ecx, eax
mov dword [esi + 8], ecx
setl byte [esi + 0x28]
mov eax, dword [esi + 0x40]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
mov dword [esi + 0x34], ecx
lea eax, [ecx + eax*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x56873c
cmp eax, 0xffb13445
je 0x568771
cmp eax, 0x20ab24e5
jne 0x568725
jmp 0x56877d
cmp eax, 0xbf25ae54
je 0x568776
cmp eax, 0xe6642f9a
jne 0x568725
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne ebx, ecx
test al, al
mov eax, ebx
cmovne eax, ecx
test dl, dl
cmove eax, ebx
jmp 0x568725
mov eax, dword [esi + 8]
jmp 0x568725
mov eax, 0xffb13445
jmp 0x568725
mov ecx, dword [esi + 4]
dec ecx
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x48], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x3c], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x34]
lea eax, [ecx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5687d1
cmp eax, 0xffb13445
je 0x56880b
cmp eax, 0x20ab24e5
jne 0x5687ba
jmp 0x568817
cmp eax, 0xbf25ae54
je 0x568810
cmp eax, 0xe6642f9a
jne 0x5687ba
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, bl
xor bh, al
test al, al
mov eax, 0xbf25ae54
mov ecx, 0xffb13445
cmovne eax, ecx
test bl, bl
mov edx, 0xbf25ae54
cmove eax, edx
test bh, bh
cmovne eax, ecx
jmp 0x5687ba
mov eax, dword [esi + 8]
jmp 0x5687ba
mov eax, 0xffb13445
jmp 0x5687ba
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x48]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x3c]
sbb ecx, dword [eax + 4]
jge 0x568921
test dword [esi + 0x24], edi
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x56885e
cmp eax, 0xffb13445
je 0x568898
cmp eax, 0x20ab24e5
jne 0x568847
jmp 0x5688a4
cmp eax, 0xbf25ae54
je 0x56889d
cmp eax, 0xe6642f9a
jne 0x568847
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0xbf25ae54
mov ecx, 0xffb13445
cmovne eax, ecx
test dl, dl
mov ebx, 0xbf25ae54
cmove eax, ebx
test dh, dh
cmovne eax, ecx
jmp 0x568847
mov eax, dword [esi + 8]
jmp 0x568847
mov eax, 0xffb13445
jmp 0x568847
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5688db
cmp eax, 0xffb13445
je 0x568915
cmp eax, 0x20ab24e5
jne 0x5688c1
jmp 0x5686a5
cmp eax, 0xbf25ae54
je 0x56891a
cmp eax, 0xe6642f9a
jne 0x5688c1
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, al
xor ch, cl
test al, al
mov eax, 0xbf25ae54
mov ebx, 0xffb13445
cmovne eax, ebx
test cl, cl
mov edi, 0xbf25ae54
cmove eax, edi
test ch, ch
cmovne eax, ebx
jmp 0x5688c1
mov eax, dword [esi + 8]
jmp 0x5688c1
mov eax, 0xffb13445
jmp 0x5688c1
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
cmp edi, 0xa
setge dl
setl bl
xor bl, dh
jne 0x568653
or dl, al
test dl, 1
je 0x568653
jmp 0x59189a
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x5689a9
cmp edi, 0x88e9608c
je 0x5689ee
cmp edi, 0xdf32ec89
jne 0x568985
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x568985
cmp edi, 0x30b7124c
je 0x568a46
cmp edi, 0x124998e2
jne 0x568985
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, cl
xor bh, bl
test cl, cl
mov edi, 0xdf32ec89
mov ecx, 0x88e9608c
cmovne edi, ecx
test bl, bl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bh, bh
mov ecx, 0x88e9608c
cmovne edi, ecx
jmp 0x568985
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 8], ebx
cmp ebx, 0xa
mov ebx, 0xdf32ec89
cmovge edi, ebx
setl ch
xor ch, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x568985
lea eax, [edx + 1]
imul eax, edx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x40]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x568a91
cmp ecx, 0x88e9608c
je 0x568acc
cmp ecx, 0xdf32ec89
jne 0x568a6d
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x568a6d
cmp ecx, 0x30b7124c
je 0x568b1f
cmp ecx, 0x124998e2
jne 0x568a6d
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x568a6d
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov edi, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne edi, ebx
cmp ecx, 0xffffffff
mov ecx, edi
cmove ecx, ebx
cmp edx, 0xa
cmovge ecx, edi
mov edx, dword [esi + 0x18]
jmp 0x568a6d
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x568b4f
or cl, al
test cl, 1
jne 0x59189e
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x568f67
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmovne ebx, edi
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
mov edi, ebx
mov ecx, 0x2601f5a7
cmove edi, ecx
cmp edx, 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov ecx, dword [eax]
mov dword [esi + 8], ecx
cmovge edi, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x568be0
cmp edx, 0x87fb68d6
je 0x568c1c
cmp edx, 0xfc04dcc5
jne 0x568bc1
mov edx, 0x87fb68d6
jmp 0x568bc1
cmp edx, 0x2601f5a7
je 0x568c20
cmp edx, 0x5a893bc4
jne 0x568bc1
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov ecx, 0xfc04dcc5
cmove edx, ecx
test bh, bh
cmovne edx, eax
jmp 0x568bc1
mov edx, edi
jmp 0x568bc1
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
cmp dword [esi + 8], ecx
je 0x568e34
mov eax, dword [0x5cf6f0]
mov dword [esi + 0xc], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x568c66
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x3c]
je 0x568e34
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x38], 0xa
setl cl
or cl, al
mov byte [esi + 0x24], cl
jne 0x568d34
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
test ecx, ecx
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov ebx, 0x6707b2cf
cmove ecx, ebx
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl dl
mov edi, 0x4c6ca682
cmovge ecx, edi
xor dl, al
cmovne ecx, ebx
mov eax, 0x1b272c9a
jmp 0x568cd3
mov eax, ecx
cmp eax, 0x4c6ca681
jle 0x568cea
cmp eax, 0x4c6ca682
je 0x568d24
cmp eax, 0x6707b2cf
jne 0x568cd3
jmp 0x568d2b
cmp eax, 0xf74fd645
je 0x568cd1
cmp eax, 0x1b272c9a
jne 0x568cd3
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne eax, ebx
test dl, dl
mov edi, 0x4c6ca682
cmove eax, edi
test dh, dh
cmovne eax, ebx
jmp 0x568cd3
mov eax, 0xf74fd645
jmp 0x568cd3
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0xc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
sete byte [esi + 0x10]
sete bl
mov eax, 0x4c6ca682
mov edx, 0x6707b2cf
cmove eax, edx
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl bh
mov edi, 0x4c6ca682
cmovge eax, edi
xor bh, bl
cmovne eax, edx
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x568d8b
cmp ebx, 0x4c6ca682
je 0x568dcc
cmp ebx, 0x6707b2cf
jne 0x568d71
jmp 0x568dd7
cmp ebx, 0xf74fd645
je 0x568dd3
cmp ebx, 0x1b272c9a
jne 0x568d71
movzx edx, byte [esi + 0x10]
movzx ebx, byte [esi + 0x28]
mov dh, bl
xor dh, dl
test bl, bl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test dl, dl
mov edi, 0x4c6ca682
cmove ebx, edi
test dh, dh
mov edx, 0xf74fd645
cmovne ebx, edx
jmp 0x568d71
mov ebx, 0xf74fd645
jmp 0x568d71
mov ebx, eax
jmp 0x568d71
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x24], 0
je 0x568c9c
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x568c54
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0xc], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x568c54
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne al
sete dl
cmp dword [esi + 0x38], 0xa
setge cl
setl ah
xor ah, dl
jne 0x568e60
or cl, al
jne 0x59189c
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x568eab
cmp eax, 0xcd5e6053
je 0x568f00
cmp eax, 0x18ed46ca
jne 0x568e89
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x568e89
cmp eax, 0x5499d804
je 0x568f2a
cmp eax, 0x685e39a2
jne 0x568e89
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x568e89
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x568e89
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x568b4f
or cl, al
je 0x568b4f
jmp 0x59189e
mov ecx, dword [esi + 0x40]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dl
cmp ecx, 0xa
setl dh
mov edi, dword [esi + 0x5c]
test dh, dl
jne 0x567ff4
xor dh, dl
mov edi, dword [esi + 0x5c]
jne 0x567ff4
mov edi, dword [esi + 0x40]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp ecx, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x568fec
test dl, dl
je 0x568fa6
mov edi, dword [esi + 0x5c]
jmp 0x567ff4
mov edi, dword [esi + 0x5c]
jmp 0x567ff4
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete al
cmp ecx, 0xa
setl cl
test cl, al
jne 0x569017
xor cl, al
je 0x59187e
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea ebx, [ecx + 1]
imul ebx, ecx
test bl, 1
sete dh
cmp edi, 0xa
setge dl
setl al
or dl, bl
xor al, dh
xor dl, 1
or dl, al
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x68], eax
mov esp, eax
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x70], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x64], eax
mov esp, eax
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, 1
je 0x569047
mov eax, dword [esi + 0x68]
add eax, 0x10
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x64]
add eax, 0x10
mov dword [esi + 0x80], eax
mov ebx, 0xa
cmp ebx, 0x1f4
jae 0x56a0cd
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [ebx + 1]
imul ebx, eax
shr ebx, 1
mov dword [esi + 0x34], ebx
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x569115
xor dl, al
je 0x59188e
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x5696ed
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x5690da
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 8]
mov dword [ecx], ebx
mov ebx, dword [esi + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x8c]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0xc]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x569216
cmp ecx, 0x20e9c049
je 0x56922d
cmp ecx, 0x3b23d0b1
jne 0x5691fc
jmp 0x56925d
cmp ecx, 0x9c6e8745
je 0x569231
cmp ecx, 0xeb760989
jne 0x5691fc
mov ecx, 0x20e9c049
jmp 0x5691fc
mov ecx, eax
jmp 0x5691fc
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5691fc
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x4c]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x90]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x68]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x5692f4
cmp ecx, 0xcfcad29c
je 0x569337
cmp ecx, 0x3aca7e6
jne 0x5692d8
mov ecx, eax
jmp 0x5692d8
cmp ecx, 0x7c4a5f2
je 0x569330
cmp ecx, 0x389c0e25
jne 0x5692d8
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5692d8
mov ecx, 0x3aca7e6
jmp 0x5692d8
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x33
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x35
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x5693de
cmp eax, 0xc6e82640
je 0x569446
cmp eax, 0x950d98a
jne 0x569399
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x569399
cmp eax, 0x31a61df5
je 0x5693fb
cmp eax, 0x4d86efb0
jne 0x569399
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x569399
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x569399
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
mov edx, dword [0x5cf6cc]
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne ecx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, ecx
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
cmovge eax, ecx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x5694ca
cmp ecx, 0x20e9c049
je 0x5694e1
cmp ecx, 0x3b23d0b1
jne 0x5694b0
jmp 0x56950c
cmp ecx, 0x9c6e8745
je 0x5694e5
cmp ecx, 0xeb760989
jne 0x5694b0
mov ecx, 0x20e9c049
jmp 0x5694b0
mov ecx, eax
jmp 0x5694b0
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5694b0
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x70]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x5695a5
cmp ecx, 0xcfcad29c
je 0x5695e3
cmp ecx, 0x3aca7e6
jne 0x569589
mov ecx, eax
jmp 0x569589
cmp ecx, 0x7c4a5f2
je 0x5695dc
cmp ecx, 0x389c0e25
jne 0x569589
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x569589
mov ecx, 0x3aca7e6
jmp 0x569589
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x33
mov ecx, dword [esi + 0x70]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x34
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x70]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x569685
cmp eax, 0xc6e82640
je 0x5690da
cmp eax, 0x950d98a
jne 0x569645
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x569645
cmp eax, 0x31a61df5
je 0x5696a2
cmp eax, 0x4d86efb0
jne 0x569645
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x569645
mov ecx, dword [esi + 0x70]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x569645
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x569a29
mov dword [esi + 0x58], 1
jmp 0x569734
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x569a29
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp edi, 0xa
setge cl
setl ch
xor ch, dl
mov edx, dword [esi + 0x58]
mov dword [esi + 8], edx
jne 0x56977f
or cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 8], eax
test cl, 1
je 0x56977f
jmp 0x591890
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0xc]
call fcn.00433980
cmp dword [esi + 8], 0
je 0x5699f2
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0xc], ecx
mov dword [esi + 0x24], eax
test eax, ecx
sete byte [esi + 0x10]
mov ecx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove ecx, ebx
sete al
mov dword [esi + 4], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ecx, edx
setl dl
xor dl, al
mov eax, dword [esi + 0x3c]
mov edx, dword [eax]
mov eax, dword [esi + 8]
lea eax, [eax + eax*2]
mov dword [esi + 0x34], edx
lea eax, [edx + eax*4]
mov dword [esi + 0x38], eax
cmovne ecx, ebx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x5697fe
cmp edx, 0xffb13445
je 0x56983a
cmp edx, 0x20ab24e5
jne 0x5697e4
jmp 0x569845
cmp edx, 0xbf25ae54
je 0x56983e
cmp edx, 0xe6642f9a
jne 0x5697e4
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, dl
xor ah, al
test dl, dl
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov ebx, 0xbf25ae54
cmove edx, ebx
test ah, ah
cmovne edx, edi
jmp 0x5697e4
mov edx, ecx
jmp 0x5697e4
mov edx, 0xffb13445
jmp 0x5697e4
mov edx, dword [esi + 8]
dec edx
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax]
mov dword [esi + 0x48], edi
mov eax, dword [eax + 4]
mov dword [esi + 0x40], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov dword [esi + 8], edx
lea eax, [edx + edx*2]
mov edx, dword [esi + 0x34]
lea eax, [edx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x56989c
cmp eax, 0xffb13445
je 0x5698d6
cmp eax, 0x20ab24e5
jne 0x569885
jmp 0x5698e1
cmp eax, 0xbf25ae54
je 0x5698da
cmp eax, 0xe6642f9a
jne 0x569885
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, bl
xor bh, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test bl, bl
mov edx, 0xbf25ae54
cmove eax, edx
test bh, bh
cmovne eax, edi
jmp 0x569885
mov eax, ecx
jmp 0x569885
mov eax, 0xffb13445
jmp 0x569885
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [esi + 0x48]
cmp edx, dword [eax]
mov edx, dword [esi + 0x40]
sbb edx, dword [eax + 4]
jge 0x5699f2
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x56992b
cmp eax, 0xffb13445
je 0x569965
cmp eax, 0x20ab24e5
jne 0x569914
jmp 0x569970
cmp eax, 0xbf25ae54
je 0x569969
cmp eax, 0xe6642f9a
jne 0x569914
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test dl, dl
mov ebx, 0xbf25ae54
cmove eax, ebx
test dh, dh
cmovne eax, edi
jmp 0x569914
mov eax, ecx
jmp 0x569914
mov eax, 0xffb13445
jmp 0x569914
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5699ad
cmp eax, 0xffb13445
je 0x5699e7
cmp eax, 0x20ab24e5
jne 0x569993
jmp 0x569764
cmp eax, 0xbf25ae54
je 0x5699eb
cmp eax, 0xe6642f9a
jne 0x569993
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, al
xor bh, bl
test al, al
mov eax, 0xbf25ae54
mov edx, 0xffb13445
cmovne eax, edx
test bl, bl
mov edi, 0xbf25ae54
cmove eax, edi
test bh, bh
cmovne eax, edx
jmp 0x569993
mov eax, ecx
jmp 0x569993
mov eax, 0xffb13445
jmp 0x569993
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x569712
xor dl, al
jne 0x569712
jmp 0x591892
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x569a7c
cmp edi, 0x88e9608c
je 0x569abb
cmp edi, 0xdf32ec89
jne 0x569a58
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x569a58
cmp edi, 0x30b7124c
je 0x569b14
cmp edi, 0x124998e2
jne 0x569a58
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
test bh, bh
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test cl, cl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bl, bl
cmovne edi, edx
jmp 0x569a58
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea edi, [ecx - 1]
mov dword [esi + 4], ecx
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete cl
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne ecx, ebx
cmp edi, 0xffffffff
mov edi, ecx
cmove edi, ebx
mov dword [esi + 8], edx
cmp edx, 0xa
cmovge edi, ecx
mov ecx, dword [esi + 0x18]
jmp 0x569a58
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x569b62
cmp ecx, 0x88e9608c
je 0x569b9d
cmp ecx, 0xdf32ec89
jne 0x569b3e
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x569b3e
cmp ecx, 0x30b7124c
je 0x569bf0
cmp ecx, 0x124998e2
jne 0x569b3e
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x569b3e
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov edi, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne edi, ebx
cmp ecx, 0xffffffff
mov ecx, edi
cmove ecx, ebx
cmp edx, 0xa
cmovge ecx, edi
mov edx, dword [esi + 0x18]
jmp 0x569b3e
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x569c24
or cl, al
jne 0x591896
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x56a038
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
mov dword [esi + 8], edx
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edx, 0x2601f5a7
cmovne ebx, edx
test edi, ecx
sete byte [esi + 0x28]
mov ecx, ebx
cmove ecx, edx
cmp dword [esi + 8], 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov eax, dword [eax]
mov dword [esi + 8], eax
cmovge ecx, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x569cb2
cmp edx, 0x87fb68d6
je 0x569cee
cmp edx, 0xfc04dcc5
jne 0x569c93
mov edx, 0x87fb68d6
jmp 0x569c93
cmp edx, 0x2601f5a7
je 0x569cf2
cmp edx, 0x5a893bc4
jne 0x569c93
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x569c93
mov edx, ecx
jmp 0x569c93
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x569f11
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x569d38
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x569f11
mov eax, dword [esi + 0x40]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete dl
cmp dword [esi + 0x34], 0xa
setge al
setl ah
or al, cl
xor ah, dl
xor al, 1
or al, ah
mov byte [esi + 0x38], al
test al, 1
jne 0x569e0b
mov eax, dword [esi + 0x24]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
test ecx, ecx
sete dl
mov edi, dword [esi + 4]
cmp edi, 0xa
setl ah
xor ah, dl
mov edx, 0x4c6ca682
mov eax, 0x6707b2cf
cmovne edx, eax
test ecx, ecx
sete byte [esi + 0x10]
mov ecx, edx
cmove ecx, eax
cmp edi, 0xa
setl byte [esi + 0x28]
cmovge ecx, edx
mov edx, 0x1b272c9a
jmp 0x569dab
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x569dc5
cmp edx, 0x4c6ca682
je 0x569dfb
cmp edx, 0x6707b2cf
jne 0x569dab
jmp 0x569e02
cmp edx, 0xf74fd645
je 0x569da9
cmp edx, 0x1b272c9a
jne 0x569dab
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov dh, ah
xor dh, dl
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test dl, dl
mov edx, edi
cmovne edx, ebx
test ah, ah
cmove edx, edi
jmp 0x569dab
mov edx, 0xf74fd645
jmp 0x569dab
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x24]
lea edx, [eax + 1]
imul edx, eax
mov ecx, edx
xor ecx, 0xfffffffe
mov edi, ecx
and edi, edx
sete bh
mov eax, dword [esi + 4]
cmp eax, 0xa
setl bl
xor bl, bh
mov ebx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne ebx, edi
and ecx, edx
sete byte [esi + 0x10]
mov edi, ebx
mov edx, 0x6707b2cf
cmove edi, edx
cmp eax, 0xa
setl byte [esi + 0x28]
cmovge edi, ebx
mov edx, 0x1b272c9a
cmp edx, 0x4c6ca681
jle 0x569e71
cmp edx, 0x4c6ca682
je 0x569ea9
cmp edx, 0x6707b2cf
jne 0x569e57
jmp 0x569eb4
cmp edx, 0xf74fd645
je 0x569eb0
cmp edx, 0x1b272c9a
jne 0x569e57
mov dh, byte [esi + 0x10]
mov byte [esi + 0xc], dh
mov dl, byte [esi + 0x28]
xor dh, dl
mov ebx, 0x4c6ca682
mov eax, 0xf74fd645
cmovne ebx, eax
test dl, dl
mov edx, ebx
cmovne edx, eax
cmp byte [esi + 0xc], 0
cmove edx, ebx
jmp 0x569e57
mov edx, 0xf74fd645
jmp 0x569e57
mov edx, edi
jmp 0x569e57
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
test byte [esi + 0x38], 1
je 0x569d70
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x569d26
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x569d26
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x34], 0xa
setl cl
test cl, al
jne 0x569f38
xor cl, al
je 0x591894
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x569f82
cmp eax, 0xcd5e6053
je 0x569fd7
cmp eax, 0x18ed46ca
jne 0x569f60
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x569f60
cmp eax, 0x5499d804
je 0x56a001
cmp eax, 0x685e39a2
jne 0x569f60
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x569f60
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x569f60
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x569c24
xor cl, al
jne 0x569c24
jmp 0x591896
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete al
setne dl
cmp edi, 0xa
setl ah
setge dh
mov ebx, dword [esi + 0x5c]
cmp ah, al
jne 0x5690ac
or dh, dl
mov ebx, dword [esi + 0x5c]
je 0x5690ac
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete al
cmp edi, 0xa
setl ah
mov dl, ah
xor dl, al
test ah, al
jne 0x56a0c5
test dl, dl
je 0x56a07e
mov ebx, dword [esi + 0x5c]
jmp 0x5690ac
mov ebx, dword [esi + 0x5c]
jmp 0x5690ac
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
cmp edi, 0xa
setl al
test al, cl
jne 0x56a0f0
xor al, cl
je 0x591880
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp eax, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 8], esp
sub esp, 0xc
mov dword [esi + 0x34], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x54], edi
mov esp, edi
push eax
mov dword [esi + 0x64], esp
sub esp, 0xc
mov dword [esi + 0x40], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
push eax
mov dword [esi + 0x70], esp
push eax
mov dword [esi + 0x88], esp
test dl, dl
je 0x56a119
mov edx, dword [esi + 0x54]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x56b15e
mov ecx, dword [esi + 8]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x48], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], 0
mov eax, dword [esi + 0x3c]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x56a1e6
xor dl, al
je 0x591884
mov edx, dword [esi + 4]
mov eax, edx
imul eax, dword [esi + 0xc]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x48]
sbb eax, 0
jae 0x56a7b6
mov eax, dword [esi + 0x48]
mov edi, dword [esi + 4]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x60], eax
mov eax, 0
mov ebx, dword [esi + 0xc]
sbb eax, ebx
mov dword [esi + 0x4c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0x24], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x3c], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0x38], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x60]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
sbb ecx, edx
or ecx, eax
jne 0x56a1ab
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x54]
mov ebx, dword [esi + 4]
mov dword [ecx], ebx
mov ebx, dword [esi + 0xc]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x8c]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0x24]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x56a2e8
cmp ecx, 0x20e9c049
je 0x56a2ff
cmp ecx, 0x3b23d0b1
jne 0x56a2ce
jmp 0x56a32a
cmp ecx, 0x9c6e8745
je 0x56a303
cmp ecx, 0xeb760989
jne 0x56a2ce
mov ecx, 0x20e9c049
jmp 0x56a2ce
mov ecx, eax
jmp 0x56a2ce
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x56a2ce
mov eax, dword [esi + 0x64]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x34]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x56a3bd
cmp ecx, 0xcfcad29c
je 0x56a400
cmp ecx, 0x3aca7e6
jne 0x56a3a1
mov ecx, eax
jmp 0x56a3a1
cmp ecx, 0x7c4a5f2
je 0x56a3f9
cmp ecx, 0x389c0e25
jne 0x56a3a1
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x56a3a1
mov ecx, 0x3aca7e6
jmp 0x56a3a1
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x36
mov ecx, dword [esi + 0x34]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x38
mov ecx, dword [esi + 8]
push dword [esi + 0x34]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x56a4a8
cmp eax, 0xc6e82640
je 0x56a50c
cmp eax, 0x950d98a
jne 0x56a463
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x56a463
cmp eax, 0x31a61df5
je 0x56a4c5
cmp eax, 0x4d86efb0
jne 0x56a463
mov ecx, dword [esi + 0x34]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x56a463
mov ecx, dword [esi + 0x34]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x56a463
mov ebx, dword [esi + 0x68]
mov eax, dword [esi + 0x24]
mov dword [ebx + 4], eax
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
mov edx, dword [0x5cf6cc]
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne ecx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, ecx
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 4]
mov dword [ebx + 8], edx
cmovge eax, ecx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x56a590
cmp ecx, 0x20e9c049
je 0x56a5a7
cmp ecx, 0x3b23d0b1
jne 0x56a576
jmp 0x56a5d7
cmp ecx, 0x9c6e8745
je 0x56a5ab
cmp ecx, 0xeb760989
jne 0x56a576
mov ecx, 0x20e9c049
jmp 0x56a576
mov ecx, eax
jmp 0x56a576
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x56a576
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x40]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x56a66d
cmp ecx, 0xcfcad29c
je 0x56a6ab
cmp ecx, 0x3aca7e6
jne 0x56a651
mov ecx, eax
jmp 0x56a651
cmp ecx, 0x7c4a5f2
je 0x56a6a4
cmp ecx, 0x389c0e25
jne 0x56a651
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x56a651
mov ecx, 0x3aca7e6
jmp 0x56a651
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x36
mov ecx, dword [esi + 0x40]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x37
mov ecx, dword [esi + 8]
push dword [esi + 0x40]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x56a753
cmp eax, 0xc6e82640
je 0x56a1ab
cmp eax, 0x950d98a
jne 0x56a70e
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x56a70e
cmp eax, 0x31a61df5
je 0x56a770
cmp eax, 0x4d86efb0
jne 0x56a70e
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x56a70e
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x56a70e
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x56aada
mov dword [esi + 0x60], 1
jmp 0x56a7fd
mov ebx, dword [esi + 0x60]
inc ebx
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x60], ebx
cmp ebx, edx
jae 0x56aada
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne al
sete dl
cmp edi, 0xa
setge cl
setl ah
xor ah, dl
mov edx, dword [esi + 0x60]
mov dword [esi + 0xc], edx
jne 0x56a84b
or cl, al
mov eax, dword [esi + 0x60]
mov dword [esi + 0xc], eax
je 0x56a84b
jmp 0x591886
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edi
call fcn.00433980
cmp dword [esi + 0xc], 0
je 0x56aaa2
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax + 1]
imul edi, eax
mov eax, edi
and eax, 1
sete al
cmp ebx, 0xa
setl cl
xor cl, al
mov eax, 0xbf25ae54
mov ecx, 0x20ab24e5
cmovne eax, ecx
and edi, 1
sete byte [esi + 0x10]
mov edx, eax
cmove edx, ecx
mov dword [esi + 0x24], ebx
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov dword [esi + 4], edx
mov eax, dword [esi + 8]
mov ecx, dword [eax]
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*2]
mov dword [esi + 0x3c], ecx
lea eax, [ecx + eax*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x56a8c5
cmp eax, 0xffb13445
je 0x56a8fa
cmp eax, 0x20ab24e5
jne 0x56a8ae
jmp 0x56a906
cmp eax, 0xbf25ae54
je 0x56a8ff
cmp eax, 0xe6642f9a
jne 0x56a8ae
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov ecx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ecx, edx
test al, al
mov eax, ecx
cmovne eax, edx
test bl, bl
cmove eax, ecx
jmp 0x56a8ae
mov eax, dword [esi + 4]
jmp 0x56a8ae
mov eax, 0xffb13445
jmp 0x56a8ae
mov ecx, dword [esi + 0xc]
dec ecx
test edi, edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x4c], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x48], eax
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov dword [esi + 0xc], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x3c]
lea eax, [ecx + eax*4]
mov dword [esi + 0x3c], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x56a959
cmp eax, 0xffb13445
je 0x56a98e
cmp eax, 0x20ab24e5
jne 0x56a942
jmp 0x56a99a
cmp eax, 0xbf25ae54
je 0x56a993
cmp eax, 0xe6642f9a
jne 0x56a942
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov edx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edx, ebx
test al, al
mov eax, edx
cmovne eax, ebx
test cl, cl
cmove eax, edx
jmp 0x56a942
mov eax, dword [esi + 4]
jmp 0x56a942
mov eax, 0xffb13445
jmp 0x56a942
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x4c]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x48]
sbb ecx, dword [eax + 4]
jge 0x56aaa2
test edi, edi
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x56a9e0
cmp eax, 0xffb13445
je 0x56aa15
cmp eax, 0x20ab24e5
jne 0x56a9c9
jmp 0x56aa21
cmp eax, 0xbf25ae54
je 0x56aa1a
cmp eax, 0xe6642f9a
jne 0x56a9c9
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edx, ebx
test al, al
mov eax, edx
cmovne eax, ebx
test cl, cl
cmove eax, edx
jmp 0x56a9c9
mov eax, dword [esi + 4]
jmp 0x56a9c9
mov eax, 0xffb13445
jmp 0x56a9c9
test edi, edi
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x18], eax
mov edi, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x56aa5a
cmp ecx, 0xffb13445
je 0x56aa96
cmp ecx, 0x20ab24e5
jne 0x56aa3d
jmp 0x56a832
cmp ecx, 0xbf25ae54
je 0x56aa9b
cmp ecx, 0xe6642f9a
jne 0x56aa3d
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test cl, cl
mov ecx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne ecx, ebx
test al, al
mov eax, 0xbf25ae54
cmove ecx, eax
test dl, dl
cmovne ecx, ebx
jmp 0x56aa3d
mov ecx, dword [esi + 4]
jmp 0x56aa3d
mov ecx, 0xffb13445
jmp 0x56aa3d
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
cmp edi, 0xa
setge dl
setl bl
xor bl, dh
jne 0x56a7db
or dl, al
test dl, 1
je 0x56a7db
jmp 0x591888
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx - 1]
mov dword [esi + 0xc], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x56ab2e
cmp edi, 0x88e9608c
je 0x56ab6d
cmp edi, 0xdf32ec89
jne 0x56ab0a
mov ecx, dword [esi + 0x70]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x56ab0a
cmp edi, 0x30b7124c
je 0x56abc7
cmp edi, 0x124998e2
jne 0x56ab0a
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x56ab0a
mov ecx, dword [esi + 0x70]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
mov dword [esi + 0xc], edx
imul ecx, edx
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 4], ebx
cmp ebx, 0xa
mov edx, 0xdf32ec89
cmovge edi, edx
setl dl
xor dl, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x56ab0a
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x56ac18
cmp ecx, 0x88e9608c
je 0x56ac53
cmp ecx, 0xdf32ec89
jne 0x56abf1
mov ecx, dword [esi + 0x88]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x56abf1
cmp ecx, 0x30b7124c
je 0x56aca9
cmp ecx, 0x124998e2
jne 0x56abf1
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x56abf1
mov ecx, dword [esi + 0x88]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi - 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov edi, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne edi, ebx
cmp ecx, 0xffffffff
mov ecx, edi
cmove ecx, ebx
cmp edx, 0xa
cmovge ecx, edi
mov edx, dword [esi + 0x18]
jmp 0x56abf1
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
jmp 0x56acd6
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x56acef
xor cl, al
je 0x59188a
mov eax, dword [esi + 0x70]
mov eax, dword [eax]
mov ecx, dword [esi + 0x88]
cmp eax, dword [ecx]
je 0x56b0d0
mov ecx, dword [esi + 0x70]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmovne ebx, edi
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
mov edi, ebx
mov ecx, 0x2601f5a7
cmove edi, ecx
cmp edx, 0xa
setl byte [esi + 0x18]
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov dword [esi + 4], ecx
cmovge edi, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x56ad83
cmp edx, 0x87fb68d6
je 0x56adbf
cmp edx, 0xfc04dcc5
jne 0x56ad64
mov edx, 0x87fb68d6
jmp 0x56ad64
cmp edx, 0x2601f5a7
je 0x56adc3
cmp edx, 0x5a893bc4
jne 0x56ad64
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, bl
xor bh, dl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov ecx, 0xfc04dcc5
cmove edx, ecx
test bh, bh
cmovne edx, eax
jmp 0x56ad64
mov edx, edi
jmp 0x56ad64
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x4c], ecx
cmp dword [esi + 4], ecx
je 0x56afd2
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x56ae09
mov eax, dword [esi + 4]
add eax, 8
mov dword [esi + 4], eax
cmp eax, dword [esi + 0x4c]
je 0x56afd2
mov ecx, dword [esi + 0x48]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x3c], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x56aed2
mov eax, dword [esi + 0x24]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
test ecx, ecx
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov ebx, 0x6707b2cf
cmove ecx, ebx
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl dl
mov edi, 0x4c6ca682
cmovge ecx, edi
xor dl, al
cmovne ecx, ebx
mov eax, 0x1b272c9a
jmp 0x56ae71
mov eax, ecx
cmp eax, 0x4c6ca681
jle 0x56ae88
cmp eax, 0x4c6ca682
je 0x56aec2
cmp eax, 0x6707b2cf
jne 0x56ae71
jmp 0x56aec9
cmp eax, 0xf74fd645
je 0x56ae6f
cmp eax, 0x1b272c9a
jne 0x56ae71
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, al
xor dh, dl
test al, al
mov eax, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne eax, ebx
test dl, dl
mov edi, 0x4c6ca682
cmove eax, edi
test dh, dh
cmovne eax, ebx
jmp 0x56ae71
mov eax, 0xf74fd645
jmp 0x56ae71
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x24]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
sete byte [esi + 0x10]
sete bl
mov eax, 0x4c6ca682
mov edx, 0x6707b2cf
cmove eax, edx
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl bh
mov edi, 0x4c6ca682
cmovge eax, edi
xor bh, bl
cmovne eax, edx
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x56af29
cmp ebx, 0x4c6ca682
je 0x56af6a
cmp ebx, 0x6707b2cf
jne 0x56af0f
jmp 0x56af75
cmp ebx, 0xf74fd645
je 0x56af71
cmp ebx, 0x1b272c9a
jne 0x56af0f
movzx edx, byte [esi + 0x10]
movzx ebx, byte [esi + 0x28]
mov dh, bl
xor dh, dl
test bl, bl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test dl, dl
mov edi, 0x4c6ca682
cmove ebx, edi
test dh, dh
mov edx, 0xf74fd645
cmovne ebx, edx
jmp 0x56af0f
mov ebx, 0xf74fd645
jmp 0x56af0f
mov ebx, eax
jmp 0x56af0f
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x56ae3a
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x56adf7
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x3c], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x56adf7
mov ecx, dword [esi + 0x48]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x3c], 0xa
setl cl
test cl, al
jne 0x56aff8
xor cl, al
je 0x59188c
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x56b043
cmp eax, 0xcd5e6053
je 0x56b0a1
cmp eax, 0x18ed46ca
jne 0x56b021
mov eax, dword [esi + 0x70]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x56b021
cmp eax, 0x5499d804
je 0x56acc0
cmp eax, 0x685e39a2
jne 0x56b021
mov eax, dword [esi + 0x70]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x18ed46ca
mov ebx, 0x5499d804
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x56b021
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x56b021
mov ecx, dword [esi + 8]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dl
cmp eax, 0xa
setl dh
mov edi, dword [esi + 0x5c]
test dh, dl
jne 0x56a17d
xor dh, dl
mov edi, dword [esi + 0x5c]
jne 0x56a17d
mov edi, dword [esi + 8]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp eax, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x56b156
test dl, dl
je 0x56b10f
mov edi, dword [esi + 0x5c]
jmp 0x56a17d
mov edi, dword [esi + 0x5c]
jmp 0x56a17d
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x56b180
xor al, cl
je 0x591882
mov esp, dword [esi + 0xa0]
mov eax, 0x57676505
jmp 0x56418f
mov esp, dword [esi + 0x94]
mov edx, dword [0x5d21a0]
mov ecx, dword [0x5d21a4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xf60420d1
mov edi, 0x8c5f966a
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x55aedb
mov eax, 0x5ae21c5b
mov esp, dword [esi + 0x94]
jmp 0x55aedb
mov eax, 0x1bdfd7df
mov esp, dword [esi + 0x90]
jmp 0x5454e0
mov esp, dword [esi + 0x98]
mov eax, dword [0x5d2198]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0xd7a09326
mov edi, 0xbbb61ac6
cmove eax, edi
cmp dword [0x5d219c], 0xa
mov edx, 0xd7a09326
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x5454e0
push eax
push eax
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xac], eax
mov esp, eax
mov dword [esi + 0x70], esp
mov eax, dword [0x5d2198]
mov ecx, dword [0x5d219c]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0xa8]
cmp ecx, 0xa
setl byte [esi + 0xa9]
mov eax, 0x37913fdd
cmp eax, 0x1bdfd7de
jg 0x56b3b0
cmp eax, 0xbbb61ac6
je 0x5911a5
cmp eax, 0xd7a09326
jne 0x56b280
mov dword [esi + 0x10], 1
mov dword [esi + 0x14], 0xa
mov dword [esi + 0x74], 0xf
mov dword [esi + 0x78], 0x1e
lea ecx, [esi + 0x18]
call fcn.00540a80
mov ecx, dword [0x5cf588]
xor edi, edi
mov eax, dword [0x5cf58c]
nop
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x56b2f3
xor al, cl
je 0x591250
cmp edi, 0x63
ja 0x56b50c
mov dword [esi + 8], edi
mov eax, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
mov dword [esi + 0xc0], 0xab
lea ecx, [esi + 0x74]
push edx
push eax
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov ecx, dword [0x5cf588]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [0x5cf58c], 0xa
setl dl
test dl, cl
jne 0x56b34a
xor dl, cl
je 0x591290
mov dword [esi + 0x28], eax
lea ecx, [esi + 0x10]
push dword [esi + 0x14]
push dword [esi + 0x10]
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov dword [esi + 0x50], eax
lea ecx, [esi + 0x18]
lea eax, [esi + 0x28]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.004341a0
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp eax, 0xa
setl dl
or dl, dh
cmp dl, 1
mov edi, dword [esi + 8]
jne 0x56b3a9
nop dword [eax]
inc edi
test dl, dl
jne 0x56b2d0
inc edi
jmp 0x56b3a0
cmp eax, 0x1bdfd7df
je 0x56b3f7
cmp eax, 0x37913fdd
jne 0x56b280
movzx ecx, byte [esi + 0xa8]
movzx eax, byte [esi + 0xa9]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0xd7a09326
mov edi, 0x1bdfd7df
cmovne eax, edi
test cl, cl
mov ecx, 0xd7a09326
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x56b280
mov dword [esi + 0x10], 1
mov dword [esi + 0x14], 0xa
mov dword [esi + 0x74], 0xf
mov dword [esi + 0x78], 0x1e
lea ecx, [esi + 0x18]
call fcn.00540a80
mov ecx, dword [0x5cf588]
xor edi, edi
mov eax, dword [0x5cf58c]
nop dword [eax + eax]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x56b452
xor al, cl
je 0x591270
cmp edi, 0x63
ja 0x56ba70
mov dword [esi + 8], edi
mov eax, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
mov dword [esi + 0xc0], 0x72
lea ecx, [esi + 0x74]
push edx
push eax
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov edx, dword [0x5cf588]
lea ecx, [edx + 1]
imul ecx, edx
test cl, 1
sete dh
cmp dword [0x5cf58c], 0xa
setge dl
setl bl
xor bl, dh
jne 0x56b4aa
or dl, cl
test dl, 1
jne 0x5912b0
mov dword [esi + 0x28], eax
lea ecx, [esi + 0x10]
push dword [esi + 0x14]
push dword [esi + 0x10]
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov dword [esi + 0x50], eax
lea ecx, [esi + 0x18]
lea eax, [esi + 0x28]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.004341a0
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp eax, 0xa
setl dl
or dl, dh
cmp dl, 1
mov edi, dword [esi + 8]
jne 0x56b509
nop
inc edi
test dl, dl
jne 0x56b430
inc edi
jmp 0x56b500
lea ecx, [esi + 0x28]
call fcn.00540a80
mov ebx, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x4c], eax
cmp ebx, eax
jne 0x56b669
mov edx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
test ecx, ecx
sete dl
setne cl
cmp eax, 0xa
setl ah
setge al
cmp dl, ah
jne 0x56b556
or cl, al
jne 0x591410
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0xc], ecx
cmp eax, ecx
je 0x56bfd2
mov ecx, dword [0x5cf590]
mov edi, dword [0x5cf594]
mov dword [esi + 4], edi
lea ebx, [ecx + 1]
imul ebx, ecx
mov ecx, ebx
xor ecx, 0xfffffffe
test ecx, ebx
sete dh
cmp edi, 0xa
setl dl
xor dl, dh
mov edx, 0xbd723542
mov edi, 0xd08af799
cmovne edx, edi
mov dword [esi + 0x24], ebx
mov dword [esi + 0x38], ecx
test ecx, ebx
mov ecx, edx
cmove ecx, edi
cmp dword [esi + 4], 0xa
cmovge ecx, edx
mov dword [esi + 0x34], ecx
xor edx, edx
jmp 0x56b5d7
mov dword [esi + 0x50], eax
mov ecx, dword [esi + 0x50]
add edx, dword [ecx + 4]
sub edx, dword [ecx]
add eax, 8
cmp eax, dword [esi + 0xc]
je 0x56bfc0
mov ecx, dword [esi + 0x38]
test dword [esi + 0x24], ecx
sete byte [esi + 0x46]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x47]
mov ecx, 0x553a1bc1
nop
cmp ecx, 0xd08af798
jg 0x56b610
cmp ecx, 0xb4e27a0f
je 0x56b64d
cmp ecx, 0xbd723542
jne 0x56b5f0
mov ecx, 0xb4e27a0f
jmp 0x56b5f0
cmp ecx, 0xd08af799
je 0x56b5c0
cmp ecx, 0x553a1bc1
jne 0x56b5f0
movzx ebx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, bl
xor ch, cl
mov edi, 0xbd723542
mov dword [esi + 8], eax
mov eax, 0xb4e27a0f
cmovne edi, eax
test cl, cl
mov ecx, edi
cmovne ecx, eax
mov eax, dword [esi + 8]
test bl, bl
cmove ecx, edi
jmp 0x56b5f0
mov ecx, dword [esi + 0x34]
jmp 0x56b5f0
cmp ebx, dword [esi + 0x4c]
je 0x56b539
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xbd723542
mov edi, 0xd08af799
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x46]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edx
mov ecx, 0x553a1bc1
mov dword [esi + 0x3c], ebx
nop dword [eax]
cmp ecx, 0xd08af798
jg 0x56b6e0
cmp ecx, 0xb4e27a0f
je 0x56b71f
cmp ecx, 0xbd723542
jne 0x56b6c0
mov ecx, 0xb4e27a0f
jmp 0x56b6c0
cmp ecx, 0xd08af799
je 0x56b730
cmp ecx, 0x553a1bc1
jne 0x56b6c0
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
mov ebx, dword [esi + 0x3c]
jmp 0x56b6c0
mov ecx, eax
jmp 0x56b6c0
mov dword [esi + 0x50], ebx
mov edi, dword [esi + 0x50]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov al, 1
mov dword [esi + 0x48], eax
mov dword [esi + 8], ecx
mov dword [esi + 0x40], edx
cmp ecx, edx
je 0x56b9d6
mov dword [esi + 4], edi
lea eax, [edi + 4]
mov dword [esi + 0xc], eax
mov ecx, dword [0x5cf588]
mov edx, dword [0x5cf58c]
nop word cs:[eax + eax]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edx, 0xa
setl cl
test cl, al
jne 0x56b7c0
xor cl, al
je 0x56b8d0
jmp 0x56b7c0
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x40]
jne 0x56b770
jmp 0x56b9d3
mov eax, dword [0x5cf590]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf594]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x46]
sete cl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x47]
setl dl
mov ebx, 0xbd723542
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x553a1bc1
nop dword [eax]
cmp ecx, 0xd08af798
jg 0x56b830
cmp ecx, 0xb4e27a0f
je 0x56b867
cmp ecx, 0xbd723542
jne 0x56b810
mov ecx, 0xb4e27a0f
jmp 0x56b810
cmp ecx, 0xd08af799
je 0x56b870
cmp ecx, 0x553a1bc1
jne 0x56b810
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x56b810
mov ecx, eax
jmp 0x56b810
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
mov dword [esi + 0x38], eax
mov dword [esi + 0x24], edx
lea eax, [edi + 4]
push dword [esi + 0xc]
push eax
call fcn.00433d30
add esp, 8
mov dword [esi + 0x34], edx
mov ecx, dword [0x5cf588]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
mov edx, dword [0x5cf58c]
sete bl
cmp edx, 0xa
setl bh
test bh, bl
jne 0x56b9b0
xor bh, bl
jne 0x56b9b0
mov eax, dword [0x5cf590]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf594]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x46]
sete cl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x47]
setl dl
mov ebx, 0xbd723542
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x553a1bc1
jmp 0x56b920
mov ecx, eax
nop dword [eax]
cmp ecx, 0xd08af798
jg 0x56b940
cmp ecx, 0xb4e27a0f
je 0x56b91b
cmp ecx, 0xbd723542
jne 0x56b920
mov ecx, 0xb4e27a0f
jmp 0x56b920
cmp ecx, 0xd08af799
je 0x56b980
cmp ecx, 0x553a1bc1
jne 0x56b920
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x56b920
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
add edi, 4
push dword [esi + 0xc]
push edi
call fcn.00433d30
add esp, 8
jmp 0x56b7c0
mov ebx, dword [esi + 0x24]
mov ebx, dword [ebx]
cmp ebx, dword [eax]
jg 0x56b7a0
mov eax, dword [esi + 0x38]
mov eax, dword [eax]
mov dword [edi], eax
mov eax, dword [esi + 0x34]
mov eax, dword [eax]
mov dword [edi + 4], eax
mov dword [esi + 0x48], 0
mov edi, dword [esi + 4]
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
setne dl
sete bl
cmp eax, 0xa
setge dh
setl bh
xor bh, bl
jne 0x56ba09
or dh, dl
jne 0x5912d0
cmp byte [esi + 0x48], 0
mov ebx, dword [esi + 0x3c]
je 0x56ba40
mov dword [esi + 0xc0], 0xac
lea ecx, [esi + 0x28]
push edi
call fcn.00540ea0
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
mov ebx, dword [esi + 0x3c]
test ecx, ecx
sete dh
cmp eax, 0xa
setl dl
or dl, dh
cmp dl, 1
jne 0x56ba6b
nop word cs:[eax + eax]
add ebx, 8
test dl, dl
jne 0x56b660
add ebx, 8
jmp 0x56ba60
lea ecx, [esi + 0x28]
call fcn.00540a80
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x54], ecx
cmp eax, ecx
jne 0x56bbc9
mov ecx, dword [0x5cf588]
mov edi, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
test ecx, ecx
sete dl
setne cl
cmp edi, 0xa
setl ah
setge al
cmp dl, ah
jne 0x56babf
or cl, al
jne 0x591420
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 8], ecx
cmp eax, ecx
je 0x56c11e
mov ecx, dword [0x5cf590]
mov ebx, dword [0x5cf594]
lea edx, [ecx - 1]
imul edx, ecx
and edx, 1
mov dword [esi + 0xc], edx
sete cl
mov edi, 0xbd723542
mov edx, 0xd08af799
cmove edi, edx
mov dword [esi + 4], ebx
cmp ebx, 0xa
setl ch
mov ebx, 0xbd723542
cmovge edi, ebx
xor ch, cl
cmovne edi, edx
mov dword [esi + 0x24], edi
xor ecx, ecx
jmp 0x56bb37
mov dword [esi + 0x50], eax
mov edx, dword [esi + 0x50]
add ecx, dword [edx + 4]
sub ecx, dword [edx]
add eax, 8
cmp eax, dword [esi + 8]
je 0x56c10c
cmp dword [esi + 0xc], 0
sete byte [esi + 0x46]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x47]
mov ebx, 0x553a1bc1
nop dword [eax]
cmp ebx, 0xd08af798
jg 0x56bb70
cmp ebx, 0xb4e27a0f
je 0x56bbb1
cmp ebx, 0xbd723542
jne 0x56bb50
mov ebx, 0xb4e27a0f
jmp 0x56bb50
cmp ebx, 0xd08af799
je 0x56bb20
cmp ebx, 0x553a1bc1
jne 0x56bb50
movzx edx, byte [esi + 0x46]
movzx ebx, byte [esi + 0x47]
mov dh, bl
xor dh, dl
test bl, bl
mov ebx, 0xbd723542
mov edi, 0xb4e27a0f
cmovne ebx, edi
test dl, dl
mov edi, 0xbd723542
cmove ebx, edi
test dh, dh
mov edx, 0xb4e27a0f
cmovne ebx, edx
jmp 0x56bb50
mov ebx, dword [esi + 0x24]
jmp 0x56bb50
cmp eax, dword [esi + 0x54]
je 0x56baa2
mov dword [esi + 0x4c], eax
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xbd723542
mov edi, 0xd08af799
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x46]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edx
mov ecx, 0x553a1bc1
nop dword [eax]
cmp ecx, 0xd08af798
jg 0x56bc40
cmp ecx, 0xb4e27a0f
je 0x56bc77
cmp ecx, 0xbd723542
jne 0x56bc20
mov ecx, 0xb4e27a0f
jmp 0x56bc20
cmp ecx, 0xd08af799
je 0x56bc80
cmp ecx, 0x553a1bc1
jne 0x56bc20
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x56bc20
mov ecx, eax
jmp 0x56bc20
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x50]
mov edx, dword [esi + 0x28]
mov edi, dword [esi + 0x2c]
mov cl, 1
mov dword [esi + 0x6c], ecx
mov dword [esi + 8], edx
mov dword [esi + 0x48], edi
cmp edx, edi
mov dword [esi + 4], eax
je 0x56bf36
add eax, 4
mov dword [esi + 0xc], eax
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
nop word cs:[eax + eax]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x56bd10
xor al, cl
je 0x56be26
jmp 0x56bd10
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
mov eax, dword [esi + 0x34]
jne 0x56bcc0
jmp 0x56bf36
mov eax, dword [0x5cf590]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf594]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x46]
sete cl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x47]
setl dl
mov ebx, 0xbd723542
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x553a1bc1
nop dword [eax]
cmp ecx, 0xd08af798
jg 0x56bd80
cmp ecx, 0xb4e27a0f
je 0x56bdbc
cmp ecx, 0xbd723542
jne 0x56bd60
mov ecx, 0xb4e27a0f
jmp 0x56bd60
cmp ecx, 0xd08af799
je 0x56bdc0
cmp ecx, 0x553a1bc1
jne 0x56bd60
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x56bd60
mov ecx, eax
jmp 0x56bd60
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
mov dword [esi + 0x40], eax
mov dword [esi + 0x24], edx
lea eax, [edi + 4]
push dword [esi + 0xc]
push eax
call fcn.00433d30
add esp, 8
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], edx
mov ecx, dword [0x5cf588]
lea ebx, [ecx + 1]
imul ebx, ecx
test bl, 1
sete dh
mov eax, dword [0x5cf58c]
mov dword [esi + 0x34], eax
cmp eax, 0xa
setge dl
setl al
xor al, dh
jne 0x56bf10
or dl, bl
test dl, 1
je 0x56bf10
mov eax, dword [0x5cf590]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf594]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x46]
sete cl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x47]
setl dl
mov ebx, 0xbd723542
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x553a1bc1
jmp 0x56be80
mov ecx, eax
nop word cs:[eax + eax]
cmp ecx, 0xd08af798
jg 0x56bea0
cmp ecx, 0xb4e27a0f
je 0x56be71
cmp ecx, 0xbd723542
jne 0x56be80
mov ecx, 0xb4e27a0f
jmp 0x56be80
cmp ecx, 0xd08af799
je 0x56bee0
cmp ecx, 0x553a1bc1
jne 0x56be80
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x56be80
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
add edi, 4
push dword [esi + 0xc]
push edi
call fcn.00433d30
add esp, 8
jmp 0x56bd10
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov edx, dword [esi + 0x38]
cmp eax, dword [edx]
jg 0x56bcf0
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov dword [edi], eax
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov dword [edi + 4], eax
mov dword [esi + 0x6c], 0
mov ecx, dword [0x5cf588]
mov edi, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
and ecx, 1
sete bh
cmp edi, 0xa
setl al
setge bl
cmp al, bh
jne 0x56bf68
or bl, dl
test bl, 1
jne 0x5912f0
cmp byte [esi + 0x6c], 0
je 0x56bf9b
mov dword [esi + 0xc0], 0x73
lea ecx, [esi + 0x28]
push dword [esi + 4]
call fcn.00540ea0
mov eax, dword [0x5cf588]
mov edi, dword [0x5cf58c]
lea edx, [eax + 1]
imul edx, eax
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
test ecx, ecx
sete al
cmp edi, 0xa
setl dl
or dl, al
cmp dl, 1
mov eax, dword [esi + 0x4c]
jne 0x56bfbb
add eax, 8
test dl, dl
jne 0x56bbc0
add eax, 8
jmp 0x56bfb0
cmp edx, 0x12345678
jne 0x56bfd2
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
lea ecx, [esi + 0x28]
call fcn.0041e540
lea edi, [esi + 0x18]
mov ecx, edi
call fcn.0041e540
mov dword [esi + 0x8c], esp
mov dword [esi + 0x10], 1
mov dword [esi + 0x14], 0xa
mov dword [esi + 0x74], 0xf
mov dword [esi + 0x78], 0x1e
mov ecx, edi
call fcn.00540a80
mov ecx, dword [0x5cf588]
xor edi, edi
mov eax, dword [0x5cf58c]
nop word [eax + eax]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
setne cl
sete dl
cmp eax, 0xa
setge al
setl ah
xor ah, dl
jne 0x56c048
or al, cl
jne 0x591310
cmp edi, 0x63
ja 0x56c25c
mov dword [esi + 8], edi
mov eax, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
mov dword [esi + 0xc0], 0xad
lea ecx, [esi + 0x74]
push edx
push eax
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov ecx, dword [0x5cf588]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp dword [0x5cf58c], 0xa
setl dl
test dl, cl
jne 0x56c09e
xor dl, cl
je 0x591350
mov dword [esi + 0x28], eax
lea ecx, [esi + 0x10]
push dword [esi + 0x14]
push dword [esi + 0x10]
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov dword [esi + 0x50], eax
lea ecx, [esi + 0x18]
lea eax, [esi + 0x28]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.004341a0
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
setne dh
cmp eax, 0xa
setge dl
mov ebx, edx
xor bl, dh
or dl, dh
xor dl, 1
or dl, bl
cmp dl, 1
mov edi, dword [esi + 8]
jne 0x56c109
nop dword [eax + eax]
inc edi
test dl, dl
jne 0x56c020
inc edi
jmp 0x56c100
cmp ecx, 0x12345678
jne 0x56c11e
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
lea ecx, [esi + 0x28]
call fcn.0041e540
lea edi, [esi + 0x18]
mov ecx, edi
call fcn.0041e540
mov dword [esi + 0x98], esp
mov dword [esi + 0x10], 1
mov dword [esi + 0x14], 0xa
mov dword [esi + 0x74], 0xf
mov dword [esi + 0x78], 0x1e
mov ecx, edi
call fcn.00540a80
mov ecx, dword [0x5cf588]
xor edi, edi
mov eax, dword [0x5cf58c]
nop word cs:[eax + eax]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x56c192
xor al, cl
je 0x591320
cmp edi, 0x63
ja 0x56c7a0
mov dword [esi + 8], edi
mov eax, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
mov dword [esi + 0xc0], 0x74
lea ecx, [esi + 0x74]
push edx
push eax
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov edx, dword [0x5cf588]
lea ecx, [edx + 1]
imul ecx, edx
test cl, 1
sete dh
cmp dword [0x5cf58c], 0xa
setl bl
setge dl
cmp bl, dh
jne 0x56c1ea
or dl, cl
test dl, 1
jne 0x591360
mov dword [esi + 0x28], eax
lea ecx, [esi + 0x10]
push dword [esi + 0x14]
push dword [esi + 0x10]
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov dword [esi + 0x50], eax
lea ecx, [esi + 0x18]
lea eax, [esi + 0x28]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.004341a0
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dh
cmp eax, 0xa
setge dl
mov ebx, edx
xor bl, dh
or dl, dh
xor dl, 1
or dl, bl
cmp dl, 1
mov edi, dword [esi + 8]
jne 0x56c259
nop word cs:[eax + eax]
inc edi
test dl, dl
jne 0x56c170
inc edi
jmp 0x56c250
lea ecx, [esi + 0x28]
call fcn.00540a80
mov edi, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x54], eax
cmp edi, eax
jne 0x56c39f
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
test ecx, ecx
sete cl
cmp eax, 0xa
setl al
test cl, al
jne 0x56c2a4
xor cl, al
je 0x591550
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 4], ecx
cmp eax, ecx
je 0x56cce2
mov ecx, dword [0x5cf590]
mov edi, dword [0x5cf594]
lea ebx, [ecx - 1]
imul ebx, ecx
mov ecx, ebx
and ecx, 1
sete cl
cmp edi, 0xa
setl dl
xor dl, cl
mov ecx, 0xbd723542
mov edx, 0xd08af799
cmovne ecx, edx
and ebx, 1
mov dword [esi + 0x24], ebx
mov ebx, ecx
cmove ebx, edx
mov dword [esi + 0xc], edi
cmp edi, 0xa
cmovge ebx, ecx
mov dword [esi + 0x38], ebx
xor ecx, ecx
jmp 0x56c316
mov dword [esi + 0x50], eax
mov edx, dword [esi + 0x50]
add ecx, dword [edx + 4]
sub ecx, dword [edx]
add eax, 8
cmp eax, dword [esi + 4]
je 0x56ccd0
cmp dword [esi + 0x24], 0
sete byte [esi + 0x46]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x47]
mov ebx, 0x553a1bc1
nop dword [eax + eax]
cmp ebx, 0xd08af798
jg 0x56c350
cmp ebx, 0xb4e27a0f
je 0x56c391
cmp ebx, 0xbd723542
jne 0x56c330
mov ebx, 0xb4e27a0f
jmp 0x56c330
cmp ebx, 0xd08af799
je 0x56c2ff
cmp ebx, 0x553a1bc1
jne 0x56c330
movzx edx, byte [esi + 0x46]
mov dh, byte [esi + 0x47]
mov ebx, edx
xor bl, dh
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test dh, dh
mov ebx, edi
mov dword [esi + 8], eax
mov eax, 0xb4e27a0f
cmovne ebx, eax
mov eax, dword [esi + 8]
test dl, dl
cmove ebx, edi
jmp 0x56c330
mov ebx, dword [esi + 0x38]
jmp 0x56c330
cmp edi, dword [esi + 0x54]
je 0x56c28d
mov dword [esi + 0x4c], edi
mov eax, dword [0x5cf590]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf594]
sete byte [esi + 0x46]
sete dl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
setl cl
mov ebx, 0xbd723542
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov edi, dword [esi + 0x4c]
mov ecx, 0x553a1bc1
nop dword [eax]
cmp ecx, 0xd08af798
jg 0x56c410
cmp ecx, 0xb4e27a0f
je 0x56c44f
cmp ecx, 0xbd723542
jne 0x56c3f0
mov ecx, 0xb4e27a0f
jmp 0x56c3f0
cmp ecx, 0xd08af799
je 0x56c453
cmp ecx, 0x553a1bc1
jne 0x56c3f0
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
mov edi, dword [esi + 0x4c]
test dh, dh
cmovne ecx, ebx
jmp 0x56c3f0
mov ecx, eax
jmp 0x56c3f0
mov dword [esi + 0x50], edi
mov eax, dword [esi + 0x50]
mov edx, dword [esi + 0x28]
mov ebx, dword [esi + 0x2c]
mov cl, 1
mov dword [esi + 0x6c], ecx
mov dword [esi + 8], edx
mov dword [esi + 0x48], ebx
cmp edx, ebx
mov dword [esi + 4], eax
je 0x56c709
add eax, 4
mov dword [esi + 0xc], eax
mov ecx, dword [0x5cf588]
mov edx, dword [0x5cf58c]
nop word [eax + eax]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete ch
cmp edx, 0xa
setl dl
setge cl
cmp dl, ch
jne 0x56c4e0
or cl, al
test cl, 1
jne 0x56c5fb
jmp 0x56c4e0
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
mov edx, dword [esi + 0x38]
jne 0x56c490
jmp 0x56c706
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xbd723542
mov ebx, 0xd08af799
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x46]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edi
mov ecx, 0x553a1bc1
nop dword [eax + eax]
cmp ecx, 0xd08af798
jg 0x56c550
cmp ecx, 0xb4e27a0f
je 0x56c587
cmp ecx, 0xbd723542
jne 0x56c530
mov ecx, 0xb4e27a0f
jmp 0x56c530
cmp ecx, 0xd08af799
je 0x56c590
cmp ecx, 0x553a1bc1
jne 0x56c530
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x56c530
mov ecx, eax
jmp 0x56c530
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
mov dword [esi + 0x40], eax
mov dword [esi + 0x24], edx
mov dword [esi + 0x34], edi
lea eax, [edi + 4]
push dword [esi + 0xc]
push eax
call fcn.00433d30
add esp, 8
mov dword [esi + 0x3c], edx
mov ecx, dword [0x5cf588]
lea edx, [ecx + 1]
imul edx, ecx
mov ebx, edx
xor ebx, 0xfffffffe
test ebx, edx
setne bl
sete dl
mov edi, dword [0x5cf58c]
mov dword [esi + 0x38], edi
cmp edi, 0xa
setge bh
setl dh
xor dh, dl
jne 0x56c6e0
or bh, bl
je 0x56c6e0
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xbd723542
mov edi, 0xd08af799
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x46]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edx
mov ecx, 0x553a1bc1
jmp 0x56c650
mov ecx, eax
nop dword [eax]
cmp ecx, 0xd08af798
jg 0x56c670
cmp ecx, 0xb4e27a0f
je 0x56c64a
cmp ecx, 0xbd723542
jne 0x56c650
mov ecx, 0xb4e27a0f
jmp 0x56c650
cmp ecx, 0xd08af799
je 0x56c6b0
cmp ecx, 0x553a1bc1
jne 0x56c650
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x56c650
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
add edi, 4
push dword [esi + 0xc]
push edi
call fcn.00433d30
add esp, 8
jmp 0x56c4e0
mov edx, dword [esi + 0x24]
mov edx, dword [edx]
cmp edx, dword [eax]
jg 0x56c4c0
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov ecx, dword [esi + 0x34]
mov dword [ecx], eax
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov dword [ecx + 4], eax
mov dword [esi + 0x6c], 0
mov edi, dword [esi + 0x4c]
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
setne dl
sete bl
cmp eax, 0xa
setge dh
setl bh
xor bh, bl
jne 0x56c73c
or dh, dl
jne 0x5913d0
cmp byte [esi + 0x6c], 0
je 0x56c772
mov dword [esi + 0xc0], 0xae
lea ecx, [esi + 0x28]
push dword [esi + 4]
call fcn.00540ea0
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
mov edi, dword [esi + 0x4c]
test ecx, ecx
sete dh
cmp eax, 0xa
setl dl
or dl, dh
cmp dl, 1
jne 0x56c79b
nop word cs:[eax + eax]
add edi, 8
test dl, dl
jne 0x56c396
add edi, 8
jmp 0x56c790
lea ecx, [esi + 0x28]
call fcn.00540a80
mov ebx, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x54], eax
cmp ebx, eax
jne 0x56c8df
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
test ecx, ecx
sete cl
cmp eax, 0xa
setl al
test cl, al
jne 0x56c7e8
xor cl, al
je 0x591560
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 4], ecx
cmp eax, ecx
je 0x56dee6
mov ecx, dword [0x5cf590]
mov edi, dword [0x5cf594]
lea ebx, [ecx + 1]
imul ebx, ecx
mov ecx, ebx
and ecx, 1
sete cl
cmp edi, 0xa
setl dl
xor dl, cl
mov ecx, 0xbd723542
mov edx, 0xd08af799
cmovne ecx, edx
and ebx, 1
mov dword [esi + 0x24], ebx
mov ebx, ecx
cmove ebx, edx
mov dword [esi + 0xc], edi
cmp edi, 0xa
cmovge ebx, ecx
mov dword [esi + 0x38], ebx
xor ecx, ecx
jmp 0x56c85a
mov dword [esi + 0x50], eax
mov edx, dword [esi + 0x50]
add ecx, dword [edx + 4]
sub ecx, dword [edx]
add eax, 8
cmp eax, dword [esi + 4]
je 0x56ded4
cmp dword [esi + 0x24], 0
sete byte [esi + 0x46]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x47]
mov ebx, 0x553a1bc1
nop
cmp ebx, 0xd08af798
jg 0x56c890
cmp ebx, 0xb4e27a0f
je 0x56c8d1
cmp ebx, 0xbd723542
jne 0x56c870
mov ebx, 0xb4e27a0f
jmp 0x56c870
cmp ebx, 0xd08af799
je 0x56c843
cmp ebx, 0x553a1bc1
jne 0x56c870
movzx edx, byte [esi + 0x46]
mov dh, byte [esi + 0x47]
mov ebx, edx
xor bl, dh
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test dh, dh
mov ebx, edi
mov dword [esi + 8], eax
mov eax, 0xb4e27a0f
cmovne ebx, eax
mov eax, dword [esi + 8]
test dl, dl
cmove ebx, edi
jmp 0x56c870
mov ebx, dword [esi + 0x38]
jmp 0x56c870
cmp ebx, dword [esi + 0x54]
je 0x56c7d1
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xbd723542
mov edi, 0xd08af799
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x46]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edx
mov ecx, 0x553a1bc1
mov dword [esi + 0x4c], ebx
nop
cmp ecx, 0xd08af798
jg 0x56c950
cmp ecx, 0xb4e27a0f
je 0x56c98f
cmp ecx, 0xbd723542
jne 0x56c930
mov ecx, 0xb4e27a0f
jmp 0x56c930
cmp ecx, 0xd08af799
je 0x56c993
cmp ecx, 0x553a1bc1
jne 0x56c930
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
mov ebx, dword [esi + 0x4c]
jmp 0x56c930
mov ecx, eax
jmp 0x56c930
mov dword [esi + 0x50], ebx
mov edi, dword [esi + 0x50]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov al, 1
mov dword [esi + 0x6c], eax
mov dword [esi + 8], ecx
mov dword [esi + 0x48], edx
cmp ecx, edx
je 0x56cc4c
mov dword [esi + 4], edi
lea eax, [edi + 4]
mov dword [esi + 0xc], eax
mov ecx, dword [0x5cf588]
mov edx, dword [0x5cf58c]
nop word [eax + eax]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edx, 0xa
setl cl
test cl, al
jne 0x56ca20
xor cl, al
je 0x56cb3b
jmp 0x56ca20
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
mov edx, dword [esi + 0x38]
jne 0x56c9d0
jmp 0x56cc46
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xbd723542
mov edi, 0xd08af799
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x46]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edx
mov ecx, 0x553a1bc1
nop dword [eax]
cmp ecx, 0xd08af798
jg 0x56ca90
cmp ecx, 0xb4e27a0f
je 0x56cac7
cmp ecx, 0xbd723542
jne 0x56ca70
mov ecx, 0xb4e27a0f
jmp 0x56ca70
cmp ecx, 0xd08af799
je 0x56cad0
cmp ecx, 0x553a1bc1
jne 0x56ca70
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x56ca70
mov ecx, eax
jmp 0x56ca70
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
mov dword [esi + 0x40], eax
mov dword [esi + 0x24], edx
mov dword [esi + 0x34], edi
lea eax, [edi + 4]
push dword [esi + 0xc]
push eax
call fcn.00433d30
add esp, 8
mov dword [esi + 0x3c], edx
mov ecx, dword [0x5cf588]
lea edx, [ecx + 1]
imul edx, ecx
mov ebx, edx
xor ebx, 0xfffffffe
test ebx, edx
setne bl
sete dl
mov edi, dword [0x5cf58c]
mov dword [esi + 0x38], edi
cmp edi, 0xa
setge bh
setl dh
xor dh, dl
jne 0x56cc20
or bh, bl
je 0x56cc20
mov eax, dword [0x5cf590]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf594]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x46]
sete cl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x47]
setl dl
mov ebx, 0xbd723542
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x553a1bc1
jmp 0x56cb90
mov ecx, eax
nop dword [eax + eax]
cmp ecx, 0xd08af798
jg 0x56cbb0
cmp ecx, 0xb4e27a0f
je 0x56cb86
cmp ecx, 0xbd723542
jne 0x56cb90
mov ecx, 0xb4e27a0f
jmp 0x56cb90
cmp ecx, 0xd08af799
je 0x56cbf0
cmp ecx, 0x553a1bc1
jne 0x56cb90
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x56cb90
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
add edi, 4
push dword [esi + 0xc]
push edi
call fcn.00433d30
add esp, 8
jmp 0x56ca20
mov edx, dword [esi + 0x24]
mov edx, dword [edx]
cmp edx, dword [eax]
jg 0x56ca00
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov ecx, dword [esi + 0x34]
mov dword [ecx], eax
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov dword [ecx + 4], eax
mov dword [esi + 0x6c], 0
mov ebx, dword [esi + 0x4c]
mov edi, dword [esi + 4]
mov edx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x56cc75
xor dh, dl
je 0x5913e0
cmp byte [esi + 0x6c], 0
je 0x56cca5
mov dword [esi + 0xc0], 0x75
lea ecx, [esi + 0x28]
push edi
call fcn.00540ea0
mov edx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
mov ebx, dword [esi + 0x4c]
test ecx, ecx
sete dh
cmp eax, 0xa
setl dl
or dl, dh
cmp dl, 1
jne 0x56cccb
nop word [eax + eax]
add ebx, 8
test dl, dl
jne 0x56c8d6
add ebx, 8
jmp 0x56ccc0
cmp ecx, 0x12345678
jne 0x56cce2
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
lea ecx, [esi + 0x28]
call fcn.0041e540
lea ecx, [esi + 0x18]
call fcn.0041e540
mov dword [esi + 0x90], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
mov dword [esi + 0xc], eax
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov eax, dword [0x5cf6c4]
setne dh
mov dword [esi + 4], eax
cmp eax, 0xa
setge al
mov ebx, eax
xor bl, dh
or al, dh
xor al, 1
or al, bl
mov byte [esi + 8], al
nop dword [eax + eax]
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x6c], esp
sub esp, 0x10
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
mov dword [esi + 0x54], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov esp, ecx
push eax
mov edi, esp
push eax
mov eax, esp
push eax
mov edx, esp
cmp byte [esi + 8], 0
je 0x56cd30
mov dword [esi + 0x58], edx
mov dword [esi + 0x68], eax
mov dword [esi + 0x84], edi
mov dword [esi + 0x64], ebx
lea eax, [ebx + 0x10]
mov dword [esi + 0x88], eax
lea eax, [ecx + 0x10]
mov dword [esi + 0x60], eax
mov edi, 0xa
mov eax, dword [esi + 0xc]
mov ebx, dword [esi + 0x3c]
mov dword [esi + 0x94], ecx
cmp edi, 0x1f4
jae 0x56f0c5
mov ecx, ebx
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x48], edi
mov dword [esi + 0x98], eax
mov edi, eax
shr edi, 1
xor ebx, ebx
jmp 0x56cdc8
mov ebx, dword [esi + 0xc]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov dword [esi + 8], ebx
mov edx, edi
sete ah
setne al
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setl bh
setge bl
cmp bh, ah
jne 0x56ce01
or bl, al
jne 0x591390
mov eax, edx
imul eax, dword [esi + 8]
mov ebx, edx
mov dword [esi + 0x24], edx
mulx edx, ebx, edx
add eax, eax
add eax, edx
mov edx, dword [esi + 0x48]
cmp ebx, edx
sbb eax, 0
jae 0x56d442
mov edi, dword [esi + 0x24]
sub edx, edi
mov dword [esi + 0x34], edx
mov ebx, 0
mov eax, dword [esi + 8]
sbb ebx, eax
add edi, 1
adc eax, 0
mov dword [esi + 0xc], eax
push eax
push edi
push ebx
push edx
call fcn.00594a90
mov dword [esi + 4], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x40], edx
mov dword [esi + 0x38], eax
mov edx, eax
imul edx, dword [esi + 0xc]
add ecx, edx
mov edx, dword [esi + 4]
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x34]
sub eax, dword [esi + 0x40]
sbb ebx, edx
or ebx, eax
mov ebx, dword [esi + 0xc]
jne 0x56cdc8
mov dword [esi + 0x34], edi
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x10]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ebx, dword [esi + 0x64]
mov ecx, dword [esi + 0x24]
mov dword [ebx], ecx
mov ecx, dword [esi + 8]
mov dword [ebx + 4], ecx
mov ecx, dword [esi + 0x38]
mov dword [ebx + 8], ecx
setl byte [esi + 0x28]
mov ecx, dword [esi + 4]
mov dword [ebx + 0xc], ecx
cmovge eax, edi
mov ecx, 0x9c6e8745
mov edx, dword [esi + 0x54]
nop word cs:[eax + eax]
cmp ecx, 0x20e9c048
jle 0x56cf10
cmp ecx, 0x20e9c049
je 0x56cf27
cmp ecx, 0x3b23d0b1
jne 0x56cef0
jmp 0x56cf5d
cmp ecx, 0x9c6e8745
je 0x56cf2b
cmp ecx, 0xeb760989
jne 0x56cef0
mov ecx, 0x20e9c049
jmp 0x56cef0
mov ecx, eax
jmp 0x56cef0
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
mov edx, dword [esi + 0x54]
cmovne ecx, ebx
mov ebx, dword [esi + 0x64]
jmp 0x56cef0
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
mov dword [esi + 0x40], ecx
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ecx, 0xcfcad29c
cmovne edx, ecx
test edi, eax
sete byte [esi + 0x50]
mov eax, ebx
mov ebx, edx
cmove ebx, ecx
cmp dword [esi + 0x40], 0xa
mov ecx, dword [esi + 0x6c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov edi, dword [esi + 0x88]
mov dword [esi + 0x28], edi
setl byte [esi + 0x74]
mov dword [esi + 0x10], eax
cmovge ebx, edx
mov eax, 0x389c0e25
nop word [eax + eax]
cmp eax, 0x7c4a5f1
jg 0x56d000
cmp eax, 0xcfcad29c
je 0x56d044
cmp eax, 0x3aca7e6
jne 0x56cfe0
mov eax, ebx
jmp 0x56cfe0
cmp eax, 0x7c4a5f2
je 0x56d03d
cmp eax, 0x389c0e25
jne 0x56cfe0
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov eax, 0x3aca7e6
cmovne edi, eax
test cl, cl
mov eax, edi
mov ecx, 0x3aca7e6
cmovne eax, ecx
mov ecx, dword [esi + 0x6c]
test dl, dl
cmove eax, edi
jmp 0x56cfe0
mov eax, 0x3aca7e6
jmp 0x56cfe0
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xaf
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xb1
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x6c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
mov ebx, dword [esi + 0x6c]
jmp 0x56d0e8
mov ecx, ebx
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
mov edi, dword [esi + 0x38]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
nop word cs:[eax + eax]
cmp eax, 0x31a61df4
jg 0x56d120
cmp eax, 0xc6e82640
je 0x56d168
cmp eax, 0x950d98a
jne 0x56d100
jmp 0x56d13c
cmp eax, 0x31a61df5
je 0x56d0a8
cmp eax, 0x4d86efb0
jne 0x56d100
mov ecx, ebx
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x56d0eb
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x56d0e8
mov ebx, dword [esi + 0x94]
mov dword [ebx + 4], edx
mov dword [ebx], edi
mov dword [ebx + 0xc], ecx
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf6cc]
sete byte [esi + 0x10]
sete al
mov edx, 0xeb760989
mov edi, 0x3b23d0b1
cmove edx, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, dword [esi + 0x24]
mov dword [ebx + 8], ecx
setl cl
mov ebx, 0xeb760989
cmovge edx, ebx
xor cl, al
cmovne edx, edi
mov eax, 0x9c6e8745
mov ecx, dword [esi + 0x4c]
mov edi, dword [esi + 0x84]
nop dword [eax]
cmp eax, 0x20e9c048
jle 0x56d1f0
cmp eax, 0x20e9c049
je 0x56d205
cmp eax, 0x3b23d0b1
jne 0x56d1d0
jmp 0x56d238
cmp eax, 0x9c6e8745
je 0x56d209
cmp eax, 0xeb760989
jne 0x56d1d0
mov eax, 0x20e9c049
jmp 0x56d1d0
mov eax, edx
jmp 0x56d1d0
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, bl
xor ch, cl
mov edi, 0xeb760989
mov eax, 0x20e9c049
cmovne edi, eax
test cl, cl
mov eax, edi
mov ecx, 0x20e9c049
cmovne eax, ecx
mov ecx, dword [esi + 0x4c]
test bl, bl
cmove eax, edi
jmp 0x56d1c7
mov dword [esi + 0x18], edi
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov edi, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp edi, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov ebx, edx
mov eax, 0xcfcad29c
cmove ebx, eax
cmp edi, 0xa
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov eax, dword [esi + 0x60]
mov dword [esi + 0x28], eax
setl byte [esi + 0x74]
mov eax, dword [esi + 0x94]
mov dword [esi + 0x10], eax
cmovge ebx, edx
mov eax, 0x389c0e25
nop word cs:[eax + eax]
cmp eax, 0x7c4a5f1
jg 0x56d2e0
cmp eax, 0xcfcad29c
je 0x56d324
cmp eax, 0x3aca7e6
jne 0x56d2c0
mov eax, ebx
jmp 0x56d2c0
cmp eax, 0x7c4a5f2
je 0x56d31d
cmp eax, 0x389c0e25
jne 0x56d2c0
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov eax, 0x7c4a5f2
mov ecx, 0x3aca7e6
cmovne eax, ecx
test dl, dl
mov edi, 0x7c4a5f2
cmove eax, edi
test dh, dh
cmovne eax, ecx
mov ecx, dword [esi + 0x4c]
jmp 0x56d2c0
mov eax, 0x3aca7e6
jmp 0x56d2c0
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xaf
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xb0
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
mov ebx, dword [esi + 0x4c]
mov edi, dword [esi + 0x34]
nop word [eax + eax]
cmp eax, 0x31a61df4
jg 0x56d3e0
cmp eax, 0xc6e82640
je 0x56cdc5
cmp eax, 0x950d98a
jne 0x56d390
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
mov edi, dword [esi + 0x34]
test cl, cl
cmove eax, edx
jmp 0x56d390
cmp eax, 0x31a61df5
je 0x56d3fc
cmp eax, 0x4d86efb0
jne 0x56d390
mov ecx, ebx
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x56d390
mov ecx, ebx
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x56d387
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x56d7d2
mov ebx, 1
jmp 0x56d484
mov ebx, dword [esi + 0x48]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp ebx, edx
jae 0x56d7d2
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne al
sete dl
cmp edi, 0xa
setge cl
setl ah
xor ah, dl
mov edx, ebx
mov dword [esi + 4], ebx
mov dword [esi + 0x48], ebx
jne 0x56d4d9
or cl, al
mov dword [esi + 4], ebx
je 0x56d4d9
jmp 0x5914e0
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edx
call fcn.00433980
cmp dword [esi + 4], 0
je 0x56d79a
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0x24], ecx
mov dword [esi + 0x38], eax
test eax, ecx
sete byte [esi + 0x10]
mov ecx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove ecx, ebx
sete al
mov dword [esi + 0xc], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ecx, edx
setl dl
xor dl, al
mov eax, dword [esi + 0x3c]
mov edi, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
lea eax, [edi + eax*4]
mov dword [esi + 0x34], eax
cmovne ecx, ebx
mov dword [esi + 8], ecx
mov eax, 0xe6642f9a
nop
cmp eax, 0xffb13444
jle 0x56d560
cmp eax, 0xffb13445
je 0x56d595
cmp eax, 0x20ab24e5
jne 0x56d540
jmp 0x56d5b0
cmp eax, 0xbf25ae54
je 0x56d59a
cmp eax, 0xe6642f9a
jne 0x56d540
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne ebx, ecx
test al, al
mov eax, ebx
cmovne eax, ecx
test dl, dl
cmove eax, ebx
jmp 0x56d540
mov eax, dword [esi + 8]
jmp 0x56d540
mov eax, 0xffb13445
jmp 0x56d540
mov edx, dword [esi + 4]
dec edx
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [eax]
mov ebx, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], edx
lea eax, [edx + edx*2]
lea eax, [edi + eax*4]
mov dword [esi + 0x40], eax
mov eax, 0xe6642f9a
nop word [eax + eax]
cmp eax, 0xffb13444
jle 0x56d610
cmp eax, 0xffb13445
je 0x56d657
cmp eax, 0x20ab24e5
jne 0x56d5f0
jmp 0x56d670
cmp eax, 0xbf25ae54
je 0x56d65c
cmp eax, 0xe6642f9a
jne 0x56d5f0
mov edi, ecx
mov ecx, ebx
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, al
xor bh, bl
test al, al
mov eax, 0xbf25ae54
mov edx, 0xffb13445
cmovne eax, edx
test bl, bl
mov edx, 0xbf25ae54
cmove eax, edx
test bh, bh
mov ebx, ecx
mov ecx, edi
mov edx, 0xffb13445
cmovne eax, edx
jmp 0x56d5f0
mov eax, dword [esi + 8]
jmp 0x56d5f0
mov eax, 0xffb13445
jmp 0x56d5f0
mov eax, dword [esi + 0x40]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
cmp ecx, dword [eax]
sbb ebx, dword [eax + 4]
jge 0x56d79a
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
nop dword [eax]
cmp eax, 0xffb13444
jle 0x56d6c0
cmp eax, 0xffb13445
je 0x56d6f5
cmp eax, 0x20ab24e5
jne 0x56d6a0
jmp 0x56d710
cmp eax, 0xbf25ae54
je 0x56d6fa
cmp eax, 0xe6642f9a
jne 0x56d6a0
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ebx, edi
test al, al
mov eax, ebx
cmovne eax, edi
test dl, dl
cmove eax, ebx
jmp 0x56d6a0
mov eax, dword [esi + 8]
jmp 0x56d6a0
mov eax, 0xffb13445
jmp 0x56d6a0
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x40]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x56d750
cmp eax, 0xffb13445
je 0x56d78e
cmp eax, 0x20ab24e5
jne 0x56d730
jmp 0x56d4c0
cmp eax, 0xbf25ae54
je 0x56d793
cmp eax, 0xe6642f9a
jne 0x56d730
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, al
xor bh, bl
test al, al
mov eax, 0xbf25ae54
mov ecx, edx
mov edx, 0xffb13445
cmovne eax, edx
test bl, bl
mov edi, 0xbf25ae54
cmove eax, edi
test bh, bh
cmovne eax, edx
mov edx, ecx
jmp 0x56d730
mov eax, dword [esi + 8]
jmp 0x56d730
mov eax, 0xffb13445
jmp 0x56d730
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
cmp edi, 0xa
setge dl
setl bl
xor bl, dh
jne 0x56d465
or dl, al
test dl, 1
je 0x56d465
jmp 0x591520
mov ecx, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea edi, [ecx + 1]
mov dword [esi + 4], ecx
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 8], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
mov ecx, dword [esi + 0x68]
mov edx, dword [esi + 0x58]
cmp edi, 0x124998e1
jg 0x56d829
cmp edi, 0x88e9608c
je 0x56d86b
cmp edi, 0xdf32ec89
jne 0x56d808
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x56d808
cmp edi, 0x30b7124c
je 0x56d8c0
cmp edi, 0x124998e2
jne 0x56d808
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, dword [esi + 0x68]
cmove edi, edx
jmp 0x56d805
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
mov dword [esi + 8], edx
lea edi, [ecx + 1]
mov dword [esi + 4], ecx
imul edi, ecx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete cl
cmp edx, 0xa
setl dh
xor dh, cl
mov edx, 0xdf32ec89
mov ecx, 0x30b7124c
cmovne edx, ecx
test ebx, edi
mov edi, edx
cmove edi, ecx
cmp dword [esi + 8], 0xa
cmovge edi, edx
mov ecx, dword [esi + 0x18]
jmp 0x56d802
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x56d90b
cmp ecx, 0x88e9608c
je 0x56d94e
cmp ecx, 0xdf32ec89
jne 0x56d8ea
mov dword [edx], eax
mov ecx, 0x88e9608c
jmp 0x56d8ea
cmp ecx, 0x30b7124c
je 0x56d9a1
cmp ecx, 0x124998e2
jne 0x56d8ea
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
mov edx, dword [esi + 0x58]
cmovne ecx, ebx
jmp 0x56d8ea
mov dword [esi + 0x18], edx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov edi, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne edi, ebx
cmp ecx, 0xffffffff
mov ecx, edi
cmove ecx, ebx
cmp edx, 0xa
cmovge ecx, edi
mov edx, dword [esi + 0x18]
mov edx, dword [esi + 0x58]
jmp 0x56d8ea
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x56d9d0
xor cl, al
je 0x591480
mov ecx, dword [esi + 0x68]
mov eax, dword [ecx]
cmp eax, dword [edx]
je 0x56de27
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx - 1]
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov edi, dword [eax]
mov dword [esi + 8], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
nop dword [eax]
cmp edx, 0x2601f5a6
jg 0x56da60
cmp edx, 0x87fb68d6
je 0x56da9c
cmp edx, 0xfc04dcc5
jne 0x56da40
mov edx, 0x87fb68d6
jmp 0x56da40
cmp edx, 0x2601f5a7
je 0x56daa0
cmp edx, 0x5a893bc4
jne 0x56da40
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, bl
xor bh, dl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x56da40
mov edx, ecx
jmp 0x56da40
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x56dced
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x56daf2
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x56dced
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x34], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x56dbd9
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
test ecx, ecx
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
mov ebx, 0x1b272c9a
jmp 0x56db60
mov ebx, ecx
nop
cmp ebx, 0x4c6ca681
jle 0x56db80
cmp ebx, 0x4c6ca682
je 0x56dbbc
cmp ebx, 0x6707b2cf
jne 0x56db60
jmp 0x56dbd0
cmp ebx, 0xf74fd645
je 0x56db5d
cmp ebx, 0x1b272c9a
jne 0x56db60
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
test dl, dl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test al, al
mov edx, 0x4c6ca682
cmove ebx, edx
test ah, ah
cmovne ebx, edi
jmp 0x56db60
mov ebx, 0xf74fd645
jmp 0x56db60
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x24]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
sete byte [esi + 0x10]
sete bl
mov eax, 0x4c6ca682
mov edx, 0x6707b2cf
cmove eax, edx
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl bh
mov edi, 0x4c6ca682
cmovge eax, edi
xor bh, bl
cmovne eax, edx
mov ebx, 0x1b272c9a
nop word cs:[eax + eax]
cmp ebx, 0x4c6ca681
jle 0x56dc40
cmp ebx, 0x4c6ca682
je 0x56dc81
cmp ebx, 0x6707b2cf
jne 0x56dc20
jmp 0x56dc90
cmp ebx, 0xf74fd645
je 0x56dc88
cmp ebx, 0x1b272c9a
jne 0x56dc20
movzx edx, byte [esi + 0x10]
mov dh, byte [esi + 0x28]
mov ebx, edx
xor bl, dh
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test dh, dh
mov ebx, edi
mov dword [esi + 0xc], ecx
mov ecx, 0xf74fd645
cmovne ebx, ecx
mov ecx, dword [esi + 0xc]
test dl, dl
cmove ebx, edi
jmp 0x56dc20
mov ebx, 0xf74fd645
jmp 0x56dc20
mov ebx, eax
jmp 0x56dc20
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x56db28
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x56dae0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x56dae0
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x34], 0xa
setl cl
test cl, al
jne 0x56dd13
xor cl, al
je 0x591490
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
mov ecx, dword [esi + 0x68]
nop
cmp eax, 0x5499d803
jg 0x56dd60
cmp eax, 0xcd5e6053
je 0x56ddbe
cmp eax, 0x18ed46ca
jne 0x56dd40
add dword [ecx], 0xc
mov eax, 0x685e39a2
jmp 0x56dd40
cmp eax, 0x5499d804
je 0x56ddeb
cmp eax, 0x685e39a2
jne 0x56dd40
mov dword [esi + 0x18], ecx
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x18ed46ca
mov ebx, 0x5499d804
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
cmovge eax, edi
jmp 0x56dd40
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
mov ecx, dword [esi + 0x68]
cmove eax, edx
jmp 0x56dd40
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ch
xor ch, dl
mov edx, dword [esi + 0x58]
jne 0x56d9d0
or cl, al
test cl, 1
je 0x56d9d0
jmp 0x591480
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dl
sete bl
mov dword [esi + 4], ecx
cmp ecx, 0xa
setge dh
setl bh
xor bh, bl
mov ebx, dword [esi + 0x3c]
mov edi, dword [esi + 0x98]
jne 0x56cd99
or dh, dl
mov edi, dword [esi + 0x98]
je 0x56cd99
mov edi, ebx
mov ecx, ebx
call fcn.0041d7f0
mov ecx, ebx
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete bh
mov dword [esi + 4], ecx
cmp ecx, 0xa
setge bl
setl cl
or bl, dl
xor cl, bh
test cl, cl
jne 0x56dec6
test bl, 1
mov ebx, dword [esi + 0x3c]
jne 0x56de78
mov edi, dword [esi + 0x98]
jmp 0x56cd99
mov edi, dword [esi + 0x98]
mov ebx, dword [esi + 0x3c]
jmp 0x56cd99
cmp ecx, 0x12345678
jne 0x56dee6
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
lea ecx, [esi + 0x28]
call fcn.0041e540
lea ecx, [esi + 0x18]
call fcn.0041e540
mov dword [esi + 0x80], esp
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
mov dword [esi + 0xc], ecx
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
setne dh
mov dword [esi + 4], eax
cmp eax, 0xa
setge al
mov ebx, eax
xor bl, dh
or al, dh
xor al, 1
or al, bl
mov byte [esi + 8], al
nop word cs:[eax + eax]
push eax
sub esp, 8
mov dword [esi + 0x40], esp
sub esp, 0xc
mov dword [esi + 0x48], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
push eax
mov dword [esi + 0x6c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
mov ebx, esp
push eax
mov ecx, esp
push eax
mov edx, esp
cmp byte [esi + 8], 0
je 0x56df40
mov dword [esi + 0x8c], edx
mov dword [esi + 0x64], ecx
mov dword [esi + 0x88], ebx
mov dword [esi + 0x94], eax
add eax, 0x10
mov dword [esi + 0x60], eax
lea eax, [edi + 0x10]
mov dword [esi + 0x58], eax
mov ebx, 0xa
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x84], edi
cmp ebx, 0x1f4
jae 0x56f206
mov ecx, dword [esi + 0x40]
call fcn.004322e0
lea eax, [ebx + 1]
imul ebx, eax
shr ebx, 1
mov dword [esi + 0x68], ebx
mov dword [esi + 0x90], eax
mov edi, eax
shr edi, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi + 8], edi
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x56e00c
or dl, al
test dl, 1
jne 0x5913c0
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
mov edx, dword [esi + 0x68]
cmp ebx, edx
sbb eax, 0
jae 0x56e64e
mov eax, dword [esi + 8]
sub edx, eax
mov dword [esi + 0x34], edx
mov ebx, 0
mov edi, dword [esi + 4]
sbb ebx, edi
add eax, 1
adc edi, 0
mov dword [esi + 0xc], edi
push edi
push eax
mov edi, eax
push ebx
push edx
call fcn.00594a90
mov ecx, eax
mov dword [esi + 0x38], edx
mov edx, eax
mov eax, edi
mov dword [esi + 0x24], edi
mulx edi, edx, edi
mov dword [esi + 0x3c], edx
mov dword [esi + 0x54], ecx
mov edx, ecx
mov ecx, dword [esi + 0xc]
imul edx, ecx
add edi, edx
mov edx, dword [esi + 0x38]
imul edx, eax
add edx, edi
mov eax, dword [esi + 0x34]
sub eax, dword [esi + 0x3c]
sbb ebx, edx
or ebx, eax
mov edi, dword [esi + 0x24]
jne 0x56dfd7
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x10]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov edx, dword [esi + 0x94]
mov ecx, dword [esi + 8]
mov dword [edx], ecx
mov ecx, dword [esi + 4]
mov dword [edx + 4], ecx
mov ecx, dword [esi + 0x54]
mov dword [edx + 8], ecx
setl byte [esi + 0x28]
mov ecx, dword [esi + 0x38]
mov dword [edx + 0xc], ecx
cmovge eax, edi
mov ecx, 0x9c6e8745
mov edi, dword [esi + 0x6c]
nop dword [eax]
cmp ecx, 0x20e9c048
jle 0x56e120
cmp ecx, 0x20e9c049
je 0x56e137
cmp ecx, 0x3b23d0b1
jne 0x56e100
jmp 0x56e162
cmp ecx, 0x9c6e8745
je 0x56e13b
cmp ecx, 0xeb760989
jne 0x56e100
mov ecx, 0x20e9c049
jmp 0x56e100
mov ecx, eax
jmp 0x56e100
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x56e0f6
mov dword [esi + 0x18], edi
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov ebx, edx
cmove ebx, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x48]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov eax, dword [esi + 0x60]
mov dword [esi + 0x28], eax
setl byte [esi + 0x74]
mov eax, dword [esi + 0x94]
mov dword [esi + 0x10], eax
cmovge ebx, edx
mov eax, 0x389c0e25
nop dword [eax + eax]
cmp eax, 0x7c4a5f1
jg 0x56e200
cmp eax, 0xcfcad29c
je 0x56e244
cmp eax, 0x3aca7e6
jne 0x56e1e0
mov eax, ebx
jmp 0x56e1e0
cmp eax, 0x7c4a5f2
je 0x56e23d
cmp eax, 0x389c0e25
jne 0x56e1e0
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov eax, 0x3aca7e6
cmovne edi, eax
test cl, cl
mov eax, edi
mov ecx, 0x3aca7e6
cmovne eax, ecx
test dl, dl
cmove eax, edi
mov ecx, dword [esi + 0x48]
jmp 0x56e1e0
mov eax, 0x3aca7e6
jmp 0x56e1e0
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x76
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], pe_nt_image_headers32
mov ecx, dword [esi + 0x40]
push dword [esi + 0x48]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
mov edi, dword [esi + 0x48]
mov ebx, dword [esi + 0x84]
nop dword [eax]
cmp eax, 0x31a61df4
jg 0x56e300
cmp eax, 0xc6e82640
je 0x56e36b
cmp eax, 0x950d98a
jne 0x56e2b0
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
mov edi, dword [esi + 0x48]
jmp 0x56e2b0
cmp eax, 0x31a61df5
je 0x56e31c
cmp eax, 0x4d86efb0
jne 0x56e2b0
mov ecx, edi
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x56e2b0
mov ecx, edi
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
mov edi, dword [esi + 0x48]
cmp ecx, 0xa
cmovge eax, edx
jmp 0x56e2b0
mov eax, dword [esi + 0x38]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x54]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf6cc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
mov ebx, dword [esi + 0x4c]
mov edx, dword [esi + 0x88]
nop word cs:[eax + eax]
cmp ecx, 0x20e9c048
jle 0x56e400
cmp ecx, 0x20e9c049
je 0x56e417
cmp ecx, 0x3b23d0b1
jne 0x56e3e0
jmp 0x56e44b
cmp ecx, 0x9c6e8745
je 0x56e41b
cmp ecx, 0xeb760989
jne 0x56e3e0
mov ecx, 0x20e9c049
jmp 0x56e3e0
mov ecx, eax
jmp 0x56e3e0
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
mov ebx, dword [esi + 0x4c]
test dl, dl
mov edx, dword [esi + 0x88]
cmove ecx, edi
jmp 0x56e3e0
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax - 1]
imul ecx, eax
mov edi, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete dh
mov eax, 0x7c4a5f2
mov ecx, 0xcfcad29c
cmove eax, ecx
cmp edi, 0xa
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov ecx, dword [esi + 0x58]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x84]
mov dword [esi + 0x10], ecx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
mov ecx, dword [esi + 0x4c]
xor dl, dh
mov edx, 0xcfcad29c
cmovne eax, edx
mov dword [esi + 8], eax
mov eax, 0x389c0e25
nop dword [eax + eax]
cmp eax, 0x7c4a5f1
jg 0x56e4f0
cmp eax, 0xcfcad29c
je 0x56e52f
cmp eax, 0x3aca7e6
jne 0x56e4d0
mov eax, dword [esi + 8]
jmp 0x56e4d0
cmp eax, 0x7c4a5f2
je 0x56e528
cmp eax, 0x389c0e25
jne 0x56e4d0
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov eax, edi
cmovne eax, ebx
mov ecx, dword [esi + 0x4c]
test dl, dl
cmove eax, edi
jmp 0x56e4d0
mov eax, 0x3aca7e6
jmp 0x56e4d0
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x76
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x77
mov ecx, dword [esi + 0x40]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
mov ebx, dword [esi + 0x4c]
mov edi, dword [esi + 0x24]
mov ecx, dword [esi + 0xc]
nop word [eax + eax]
cmp eax, 0x31a61df4
jg 0x56e5c0
cmp eax, 0xc6e82640
je 0x56dfd7
cmp eax, 0x950d98a
jne 0x56e5a0
jmp 0x56e5dc
cmp eax, 0x31a61df5
je 0x56e608
cmp eax, 0x4d86efb0
jne 0x56e5a0
mov ecx, ebx
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x56e594
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x56e591
mov ecx, ebx
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x56e591
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x56e9de
mov dword [esi + 0x54], 1
jmp 0x56e695
mov ebx, dword [esi + 0x54]
inc ebx
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x54], ebx
cmp ebx, edx
jae 0x56e9de
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x54]
mov dword [esi + 4], edx
test cl, al
jne 0x56e6e9
xor cl, al
mov eax, dword [esi + 0x54]
mov dword [esi + 4], eax
jne 0x56e6e9
jmp 0x5914f0
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edx
call fcn.00433980
cmp dword [esi + 4], 0
je 0x56e9a1
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax + 1]
imul edi, eax
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete al
cmp ebx, 0xa
setl dl
xor dl, al
mov eax, 0xbf25ae54
mov edx, 0x20ab24e5
cmovne eax, edx
mov dword [esi + 0x24], ecx
test ecx, edi
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
mov dword [esi + 0xc], ebx
cmp ebx, 0xa
cmovge ecx, eax
mov dword [esi + 8], ecx
setl byte [esi + 0x28]
mov eax, dword [esi + 0x40]
mov ebx, dword [eax]
mov eax, dword [esi + 4]
lea edx, [eax + eax*2]
lea eax, [ebx + edx*4]
mov dword [esi + 0x38], eax
mov edx, 0xe6642f9a
nop dword [eax]
cmp edx, 0xffb13444
jle 0x56e770
cmp edx, 0xffb13445
je 0x56e7b9
cmp edx, 0x20ab24e5
jne 0x56e750
jmp 0x56e7d0
cmp edx, 0xbf25ae54
je 0x56e7be
cmp edx, 0xe6642f9a
jne 0x56e750
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
test dl, dl
mov edx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne edx, ecx
test al, al
mov ecx, edi
mov edi, ebx
mov ebx, 0xbf25ae54
cmove edx, ebx
mov ebx, edi
mov edi, ecx
test ah, ah
mov eax, 0xffb13445
cmovne edx, eax
jmp 0x56e750
mov edx, dword [esi + 8]
jmp 0x56e750
mov edx, 0xffb13445
jmp 0x56e750
mov ecx, dword [esi + 4]
dec ecx
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x3c], edx
mov edx, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
lea eax, [ebx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
nop word [eax + eax]
cmp eax, 0xffb13444
jle 0x56e830
cmp eax, 0xffb13445
je 0x56e873
cmp eax, 0x20ab24e5
jne 0x56e810
jmp 0x56e880
cmp eax, 0xbf25ae54
je 0x56e878
cmp eax, 0xe6642f9a
jne 0x56e810
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, al
xor bh, bl
test al, al
mov eax, 0xbf25ae54
mov ecx, 0xffb13445
cmovne eax, ecx
test bl, bl
mov ecx, edx
mov edx, 0xbf25ae54
cmove eax, edx
mov edx, ecx
test bh, bh
mov ecx, 0xffb13445
cmovne eax, ecx
jmp 0x56e810
mov eax, dword [esi + 8]
jmp 0x56e810
mov eax, 0xffb13445
jmp 0x56e810
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x3c]
cmp ecx, dword [eax]
sbb edx, dword [eax + 4]
jge 0x56e9a1
test dword [esi + 0x24], edi
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
nop dword [eax]
cmp eax, 0xffb13444
jle 0x56e8d0
cmp eax, 0xffb13445
je 0x56e90a
cmp eax, 0x20ab24e5
jne 0x56e8b0
jmp 0x56e920
cmp eax, 0xbf25ae54
je 0x56e90f
cmp eax, 0xe6642f9a
jne 0x56e8b0
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0xbf25ae54
mov ecx, 0xffb13445
cmovne eax, ecx
test dl, dl
mov ebx, 0xbf25ae54
cmove eax, ebx
test dh, dh
cmovne eax, ecx
jmp 0x56e8b0
mov eax, dword [esi + 8]
jmp 0x56e8b0
mov eax, 0xffb13445
jmp 0x56e8b0
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
nop dword [eax]
cmp eax, 0xffb13444
jle 0x56e960
cmp eax, 0xffb13445
je 0x56e995
cmp eax, 0x20ab24e5
jne 0x56e940
jmp 0x56e6d0
cmp eax, 0xbf25ae54
je 0x56e99a
cmp eax, 0xe6642f9a
jne 0x56e940
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov edi, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edi, ebx
test al, al
mov eax, edi
cmovne eax, ebx
test cl, cl
cmove eax, edi
jmp 0x56e940
mov eax, dword [esi + 8]
jmp 0x56e940
mov eax, 0xffb13445
jmp 0x56e940
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete ah
setne al
cmp edi, 0xa
setl dh
setge dl
cmp dh, ah
jne 0x56e673
or dl, al
je 0x56e673
jmp 0x591540
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
mov edx, dword [esi + 0x40]
cmp edi, 0x124998e1
jg 0x56ea35
cmp edi, 0x88e9608c
je 0x56ea74
cmp edi, 0xdf32ec89
jne 0x56ea11
mov ecx, dword [esi + 0x64]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x56ea11
cmp edi, 0x30b7124c
je 0x56eaca
cmp edi, 0x124998e2
jne 0x56ea11
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x56ea0e
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi - 1]
mov dword [esi + 4], edi
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov edi, 0xdf32ec89
mov ebx, 0x30b7124c
cmove edi, ebx
sete cl
mov dword [esi + 8], edx
cmp edx, 0xa
mov edx, 0xdf32ec89
cmovge edi, edx
setl dl
xor dl, cl
cmovne edi, ebx
jmp 0x56ea0e
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [edx + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
mov edx, dword [esi + 0x8c]
cmp ecx, 0x124998e1
jg 0x56eb18
cmp ecx, 0x88e9608c
je 0x56eb5e
cmp ecx, 0xdf32ec89
jne 0x56eaf7
mov dword [edx], eax
mov ecx, 0x88e9608c
jmp 0x56eaf7
cmp ecx, 0x30b7124c
je 0x56ebae
cmp ecx, 0x124998e2
jne 0x56eaf7
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
mov edx, dword [esi + 0x8c]
cmovne ecx, ebx
jmp 0x56eaf7
mov dword [esi + 0x18], edx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi - 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov edi, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne edi, ebx
cmp ecx, 0xffffffff
mov ecx, edi
cmove ecx, ebx
cmp edx, 0xa
cmovge ecx, edi
mov edx, dword [esi + 0x18]
jmp 0x56eaf1
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf6c4], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x56ebe2
or cl, al
jne 0x591450
mov ecx, dword [esi + 0x64]
mov eax, dword [ecx]
mov edx, dword [esi + 0x8c]
cmp eax, dword [edx]
je 0x56f028
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea ecx, [edi - 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmovne ebx, edi
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
mov edi, ebx
mov ecx, 0x2601f5a7
cmove edi, ecx
cmp edx, 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov ecx, dword [eax]
mov dword [esi + 8], ecx
cmovge edi, ebx
mov edx, 0x5a893bc4
nop word cs:[eax + eax]
cmp edx, 0x2601f5a6
jg 0x56ec80
cmp edx, 0x87fb68d6
je 0x56ecb7
cmp edx, 0xfc04dcc5
jne 0x56ec60
mov edx, 0x87fb68d6
jmp 0x56ec60
cmp edx, 0x2601f5a7
je 0x56ecbb
cmp edx, 0x5a893bc4
jne 0x56ec60
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, bl
xor dh, dl
mov ecx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne ecx, eax
test dl, dl
mov edx, ecx
cmovne edx, eax
test bl, bl
cmove edx, ecx
jmp 0x56ec60
mov edx, edi
jmp 0x56ec60
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
cmp dword [esi + 8], ecx
je 0x56eefd
mov eax, dword [0x5cf6f0]
mov dword [esi + 0xc], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x56ed02
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x3c]
je 0x56eefd
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
setne cl
cmp dword [esi + 0x38], 0xa
setge al
mov edx, eax
xor dl, cl
or al, cl
xor al, 1
or al, dl
mov byte [esi + 0x24], al
jne 0x56ede9
mov eax, dword [esi + 0xc]
lea edx, [eax + 1]
imul edx, eax
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
test ecx, ecx
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
mov edx, 0x1b272c9a
jmp 0x56ed80
mov edx, ecx
nop word [eax + eax]
cmp edx, 0x4c6ca681
jle 0x56eda0
cmp edx, 0x4c6ca682
je 0x56edd7
cmp edx, 0x6707b2cf
jne 0x56ed80
jmp 0x56ede0
cmp edx, 0xf74fd645
je 0x56ed75
cmp edx, 0x1b272c9a
jne 0x56ed80
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x56ed80
mov edx, 0xf74fd645
jmp 0x56ed80
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0xc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
sete byte [esi + 0x10]
sete ah
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove edx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl bl
mov edi, 0x4c6ca682
cmovge edx, edi
xor bl, ah
mov eax, 0x6707b2cf
cmovne edx, eax
mov ebx, 0x1b272c9a
nop dword [eax + eax]
cmp ebx, 0x4c6ca681
jle 0x56ee50
cmp ebx, 0x4c6ca682
je 0x56ee90
cmp ebx, 0x6707b2cf
jne 0x56ee30
jmp 0x56eea0
cmp ebx, 0xf74fd645
je 0x56ee97
cmp ebx, 0x1b272c9a
jne 0x56ee30
mov ah, byte [esi + 0x10]
movzx ebx, byte [esi + 0x28]
mov al, bl
xor al, ah
test bl, bl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test ah, ah
mov edi, 0x4c6ca682
cmove ebx, edi
test al, al
mov eax, 0xf74fd645
cmovne ebx, eax
jmp 0x56ee30
mov ebx, 0xf74fd645
jmp 0x56ee30
mov ebx, edx
jmp 0x56ee30
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
cmp byte [esi + 0x24], 0
je 0x56ed40
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x56ecf0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0xc], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x56ecf0
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x38], 0xa
setl cl
test cl, al
jne 0x56ef23
xor cl, al
je 0x5914c0
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
mov ecx, dword [esi + 0x64]
nop
cmp eax, 0x5499d803
jg 0x56ef70
cmp eax, 0xcd5e6053
je 0x56efc9
cmp eax, 0x18ed46ca
jne 0x56ef50
add dword [ecx], 0xc
mov eax, 0x685e39a2
jmp 0x56ef50
cmp eax, 0x5499d804
je 0x56eff3
cmp eax, 0x685e39a2
jne 0x56ef50
mov dword [esi + 0x18], ecx
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x18ed46ca
mov edi, 0x5499d804
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x56ef4b
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x56ef4b
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ah
xor ah, dl
je 0x56ebda
jmp 0x56ebe2
mov ecx, dword [esi + 0x40]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dl
cmp eax, 0xa
setl dh
mov ebx, dword [esi + 0x90]
test dh, dl
jne 0x56dfac
xor dh, dl
mov ebx, dword [esi + 0x90]
jne 0x56dfac
mov edi, dword [esi + 0x40]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
setne bl
cmp eax, 0xa
setl bh
setge dl
or dl, bl
cmp bh, dh
jne 0x56f0ba
test dl, dl
jne 0x56f06d
mov ebx, dword [esi + 0x90]
jmp 0x56dfac
mov ebx, dword [esi + 0x90]
jmp 0x56dfac
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete ah
cmp dword [esi + 4], 0xa
setge al
setl cl
xor cl, ah
jne 0x56f0e9
or al, dl
test al, 1
jne 0x59162c
mov esp, dword [esi + 0x90]
mov dword [esi + 0x10], 1
mov dword [esi + 0x14], 0xa
mov dword [esi + 0x74], 0xf
mov dword [esi + 0x78], 0x1e
lea ecx, [esi + 0x18]
call fcn.00540a80
mov ecx, dword [0x5cf588]
xor edi, edi
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x56f142
xor al, cl
je 0x5915b0
mov dword [esi + 8], edi
cmp edi, 0x63
ja 0x56f340
mov eax, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
mov dword [esi + 0xc0], 0xb2
lea ecx, [esi + 0x74]
push edx
push eax
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov ecx, dword [0x5cf588]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
setne cl
sete ch
cmp dword [0x5cf58c], 0xa
setge dl
setl dh
xor dh, ch
jne 0x56f19e
or dl, cl
jne 0x5915e0
mov dword [esi + 0x28], eax
lea ecx, [esi + 0x10]
push dword [esi + 0x14]
push dword [esi + 0x10]
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov dword [esi + 0x50], eax
lea ecx, [esi + 0x18]
lea eax, [esi + 0x28]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.004341a0
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dh
cmp eax, 0xa
setge dl
mov ebx, edx
xor bl, dh
or dl, dh
xor dl, 1
or dl, bl
cmp dl, 1
mov edi, dword [esi + 8]
jne 0x56f203
inc edi
test dl, dl
jne 0x56f120
inc edi
jmp 0x56f1fa
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x56f228
xor al, cl
je 0x591630
mov esp, dword [esi + 0x80]
mov dword [esi + 0x10], 1
mov dword [esi + 0x14], 0xa
mov dword [esi + 0x74], 0xf
mov dword [esi + 0x78], 0x1e
lea ecx, [esi + 0x18]
call fcn.00540a80
mov ecx, dword [0x5cf588]
xor ebx, ebx
mov edi, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp edi, 0xa
setl al
test al, cl
jne 0x56f283
xor al, cl
je 0x5915c0
mov dword [esi + 8], ebx
cmp ebx, 0x63
ja 0x56f840
mov eax, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
mov dword [esi + 0xc0], 0x79
lea ecx, [esi + 0x74]
push edx
push eax
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov ecx, dword [0x5cf588]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp dword [0x5cf58c], 0xa
setl dl
test dl, cl
jne 0x56f2d9
xor dl, cl
je 0x591600
mov dword [esi + 0x28], eax
lea ecx, [esi + 0x10]
push dword [esi + 0x14]
push dword [esi + 0x10]
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov dword [esi + 0x50], eax
lea ecx, [esi + 0x18]
lea eax, [esi + 0x28]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.004341a0
mov ecx, dword [0x5cf588]
mov edi, dword [0x5cf58c]
lea ebx, [ecx + 1]
imul ebx, ecx
test bl, 1
sete dh
cmp edi, 0xa
setge dl
setl al
or dl, bl
xor al, dh
xor dl, 1
or dl, al
test dl, 1
mov ebx, dword [esi + 8]
je 0x56f33d
inc ebx
test dl, 1
jne 0x56f260
inc ebx
jmp 0x56f333
lea ecx, [esi + 0x28]
call fcn.00540a80
mov ebx, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x54], eax
cmp ebx, eax
jne 0x56f47d
mov edx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
test ecx, ecx
sete dl
setne cl
cmp eax, 0xa
setl ah
setge al
cmp dl, ah
jne 0x56f38a
or cl, al
jne 0x59164a
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
cmp eax, ecx
je 0x56fd35
mov ecx, dword [0x5cf590]
mov edi, dword [0x5cf594]
lea edx, [ecx - 1]
imul edx, ecx
and edx, 1
mov dword [esi + 0x24], edx
sete cl
mov ebx, 0xbd723542
mov edx, 0xd08af799
cmove ebx, edx
mov dword [esi + 0xc], edi
cmp edi, 0xa
setl ch
mov edi, 0xbd723542
cmovge ebx, edi
xor ch, cl
cmovne ebx, edx
mov dword [esi + 0x38], ebx
xor ecx, ecx
jmp 0x56f400
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edx, dword [esi + 0x50]
add ecx, dword [edx + 4]
sub ecx, dword [edx]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 4]
je 0x56fd23
cmp dword [esi + 0x24], 0
sete byte [esi + 0x46]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x47]
mov ebx, 0x553a1bc1
cmp ebx, 0xd08af798
jg 0x56f434
cmp ebx, 0xb4e27a0f
je 0x56f46f
cmp ebx, 0xbd723542
jne 0x56f415
mov ebx, 0xb4e27a0f
jmp 0x56f415
cmp ebx, 0xd08af799
je 0x56f3e3
cmp ebx, 0x553a1bc1
jne 0x56f415
movzx edx, byte [esi + 0x46]
mov dh, byte [esi + 0x47]
mov ebx, edx
xor bl, dh
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test dh, dh
mov ebx, edi
mov eax, 0xb4e27a0f
cmovne ebx, eax
test dl, dl
cmove ebx, edi
jmp 0x56f415
mov ebx, dword [esi + 0x38]
jmp 0x56f415
cmp ebx, dword [esi + 0x54]
je 0x56f36d
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xbd723542
mov edi, 0xd08af799
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x46]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edx
mov ecx, 0x553a1bc1
mov dword [esi + 0x4c], ebx
cmp ecx, 0xd08af798
jg 0x56f4ec
cmp ecx, 0xb4e27a0f
je 0x56f52b
cmp ecx, 0xbd723542
jne 0x56f4cd
mov ecx, 0xb4e27a0f
jmp 0x56f4cd
cmp ecx, 0xd08af799
je 0x56f52f
cmp ecx, 0x553a1bc1
jne 0x56f4cd
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
mov ebx, dword [esi + 0x4c]
jmp 0x56f4cd
mov ecx, eax
jmp 0x56f4cd
mov dword [esi + 0x50], ebx
mov eax, dword [esi + 0x50]
mov edx, dword [esi + 0x28]
mov edi, dword [esi + 0x2c]
mov cl, 1
mov dword [esi + 0x6c], ecx
mov dword [esi + 8], edx
mov dword [esi + 0x48], edi
cmp edx, edi
mov dword [esi + 4], eax
je 0x56f7b6
add eax, 4
mov dword [esi + 0xc], eax
mov edi, dword [0x5cf588]
mov ecx, dword [0x5cf58c]
lea eax, [edi + 1]
imul eax, edi
test al, 1
sete dl
cmp ecx, 0xa
setl ch
setge cl
cmp ch, dl
jne 0x56f59e
or cl, al
test cl, 1
jne 0x56f6b2
jmp 0x56f59e
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x38]
jne 0x56f563
jmp 0x56f7b6
mov eax, dword [0x5cf590]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf594]
sete byte [esi + 0x46]
sete dl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
setl cl
mov ebx, 0xbd723542
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x553a1bc1
nop word cs:[eax + eax]
cmp ecx, 0xd08af798
jg 0x56f610
cmp ecx, 0xb4e27a0f
je 0x56f647
cmp ecx, 0xbd723542
jne 0x56f5f0
mov ecx, 0xb4e27a0f
jmp 0x56f5f0
cmp ecx, 0xd08af799
je 0x56f64b
cmp ecx, 0x553a1bc1
jne 0x56f5f0
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x56f5f0
mov ecx, eax
jmp 0x56f5f0
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
mov dword [esi + 0x40], eax
mov dword [esi + 0x24], edx
mov dword [esi + 0x34], edi
lea eax, [edi + 4]
push dword [esi + 0xc]
push eax
call fcn.00433d30
add esp, 8
mov dword [esi + 0x3c], edx
mov edi, dword [0x5cf588]
lea ebx, [edi + 1]
imul ebx, edi
test bl, 1
sete dh
mov ecx, dword [0x5cf58c]
mov dword [esi + 0x38], ecx
cmp ecx, 0xa
setl cl
setge dl
cmp cl, dh
jne 0x56f790
or dl, bl
test dl, 1
je 0x56f790
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xbd723542
mov ebx, 0xd08af799
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x46]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edi
mov ecx, 0x553a1bc1
jmp 0x56f710
mov ecx, eax
nop word cs:[eax + eax]
cmp ecx, 0xd08af798
jg 0x56f730
cmp ecx, 0xb4e27a0f
je 0x56f6ff
cmp ecx, 0xbd723542
jne 0x56f710
mov ecx, 0xb4e27a0f
jmp 0x56f710
cmp ecx, 0xd08af799
je 0x56f767
cmp ecx, 0x553a1bc1
jne 0x56f710
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x56f710
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
add edi, 4
push dword [esi + 0xc]
push edi
call fcn.00433d30
add esp, 8
jmp 0x56f59e
mov ecx, dword [esi + 0x24]
mov ecx, dword [ecx]
cmp ecx, dword [eax]
jg 0x56f588
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov ecx, dword [esi + 0x34]
mov dword [ecx], eax
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov dword [ecx + 4], eax
mov dword [esi + 0x6c], 0
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
setne dl
sete bl
cmp eax, 0xa
setge dh
setl bh
xor bh, bl
jne 0x56f7e9
or dh, dl
jne 0x591614
cmp byte [esi + 0x6c], 0
mov ebx, dword [esi + 0x4c]
je 0x56f81e
mov dword [esi + 0xc0], 0xb3
lea ecx, [esi + 0x28]
push dword [esi + 4]
call fcn.00540ea0
mov edx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea ecx, [edx - 1]
imul ecx, edx
and ecx, 1
mov ebx, dword [esi + 0x4c]
test ecx, ecx
sete dh
cmp eax, 0xa
setl dl
or dl, dh
cmp dl, 1
jne 0x56f83b
add ebx, 8
test dl, dl
jne 0x56f474
add ebx, 8
jmp 0x56f830
lea ecx, [esi + 0x28]
call fcn.00540a80
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x48], ecx
cmp eax, ecx
jne 0x56f987
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
test ecx, ecx
setne cl
sete dl
cmp eax, 0xa
setge al
setl ah
xor ah, dl
jne 0x56f891
or cl, al
jne 0x59164e
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
cmp eax, ecx
je 0x56fe63
mov ecx, dword [0x5cf590]
mov edi, dword [0x5cf594]
lea edx, [ecx - 1]
imul edx, ecx
and edx, 1
mov dword [esi + 0x24], edx
sete cl
mov ebx, 0xbd723542
mov edx, 0xd08af799
cmove ebx, edx
mov dword [esi + 0xc], edi
cmp edi, 0xa
setl ch
mov edi, 0xbd723542
cmovge ebx, edi
xor ch, cl
cmovne ebx, edx
mov dword [esi + 0x38], ebx
xor ecx, ecx
jmp 0x56f907
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edx, dword [esi + 0x50]
add ecx, dword [edx + 4]
sub ecx, dword [edx]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 4]
je 0x56fe51
cmp dword [esi + 0x24], 0
sete byte [esi + 0x46]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x47]
mov ebx, 0x553a1bc1
cmp ebx, 0xd08af798
jg 0x56f93b
cmp ebx, 0xb4e27a0f
je 0x56f976
cmp ebx, 0xbd723542
jne 0x56f91c
mov ebx, 0xb4e27a0f
jmp 0x56f91c
cmp ebx, 0xd08af799
je 0x56f8ea
cmp ebx, 0x553a1bc1
jne 0x56f91c
movzx edx, byte [esi + 0x46]
mov dh, byte [esi + 0x47]
mov ebx, edx
xor bl, dh
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test dh, dh
mov ebx, edi
mov eax, 0xb4e27a0f
cmovne ebx, eax
test dl, dl
cmove ebx, edi
jmp 0x56f91c
mov ebx, dword [esi + 0x38]
jmp 0x56f91c
mov dword [esi + 0x3c], edi
cmp edi, dword [esi + 0x48]
je 0x56f874
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xbd723542
mov ebx, 0xd08af799
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x46]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edi
mov ecx, 0x553a1bc1
jmp 0x56f9f9
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
mov edi, dword [esi + 0x3c]
cmp ecx, 0xd08af798
jg 0x56fa1b
cmp ecx, 0xb4e27a0f
je 0x56fa2d
cmp ecx, 0xbd723542
jne 0x56f9fc
mov ecx, 0xb4e27a0f
jmp 0x56f9fc
cmp ecx, 0xd08af799
je 0x56fa31
cmp ecx, 0x553a1bc1
jne 0x56f9fc
jmp 0x56f9d4
mov ecx, eax
jmp 0x56f9fc
mov dword [esi + 0x50], edi
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov bl, 1
mov dword [esi + 8], ecx
mov dword [esi + 0x40], edx
cmp ecx, edx
mov dword [esi + 4], eax
je 0x56fc9b
add eax, 4
mov dword [esi + 0xc], eax
mov ecx, dword [0x5cf588]
mov edx, dword [0x5cf58c]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete ch
cmp edx, 0xa
setl dl
setge cl
cmp dl, ch
jne 0x56fa85
or cl, al
test cl, 1
jne 0x56fb90
mov eax, dword [0x5cf590]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf594]
sete byte [esi + 0x46]
sete dl
mov eax, 0xbd723542
mov edi, 0xd08af799
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
setl cl
mov ebx, 0xbd723542
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x553a1bc1
nop dword [eax]
cmp ecx, 0xd08af798
jg 0x56faf0
cmp ecx, 0xb4e27a0f
je 0x56fb2c
cmp ecx, 0xbd723542
jne 0x56fad0
mov ecx, 0xb4e27a0f
jmp 0x56fad0
cmp ecx, 0xd08af799
je 0x56fb30
cmp ecx, 0x553a1bc1
jne 0x56fad0
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x56fad0
mov ecx, eax
jmp 0x56fad0
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
mov dword [esi + 0x38], eax
mov dword [esi + 0x24], edx
lea eax, [edi + 4]
push dword [esi + 0xc]
push eax
call fcn.00433d30
add esp, 8
mov dword [esi + 0x34], edx
mov ecx, dword [0x5cf588]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
mov edx, dword [0x5cf58c]
sete bl
cmp edx, 0xa
setl bh
test bh, bl
jne 0x56fc65
xor bh, bl
jne 0x56fc65
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xbd723542
mov ebx, 0xd08af799
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x46]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edi
mov ecx, 0x553a1bc1
jmp 0x56fbe0
mov ecx, eax
nop
cmp ecx, 0xd08af798
jg 0x56fc00
cmp ecx, 0xb4e27a0f
je 0x56fbdd
cmp ecx, 0xbd723542
jne 0x56fbe0
mov ecx, 0xb4e27a0f
jmp 0x56fbe0
cmp ecx, 0xd08af799
je 0x56fc3c
cmp ecx, 0x553a1bc1
jne 0x56fbe0
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x56fbe0
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
add edi, 4
push dword [esi + 0xc]
push edi
call fcn.00433d30
add esp, 8
jmp 0x56fa85
mov ebx, dword [esi + 0x24]
mov ebx, dword [ebx]
cmp ebx, dword [eax]
jle 0x56fc87
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x40]
jne 0x56fa62
mov edi, dword [esi + 0x3c]
mov bl, 1
jmp 0x56fc9b
mov eax, dword [esi + 0x38]
mov eax, dword [eax]
mov dword [edi], eax
mov eax, dword [esi + 0x34]
mov eax, dword [eax]
mov dword [edi + 4], eax
xor ebx, ebx
mov edi, dword [esi + 0x3c]
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x56fcc8
xor dh, dl
je 0x591618
test bl, bl
je 0x56fcf8
mov dword [esi + 0xc0], 0x7a
lea ecx, [esi + 0x28]
push dword [esi + 4]
call fcn.00540ea0
mov edx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea ecx, [edx - 1]
imul ecx, edx
and ecx, 1
mov edi, dword [esi + 0x3c]
test ecx, ecx
setne dl
cmp eax, 0xa
setge dh
mov ebx, edx
xor bl, dh
or dl, dh
xor dl, 1
or dl, bl
cmp dl, 1
jne 0x56fd1e
add edi, 8
test dl, dl
jne 0x56f97b
add edi, 8
jmp 0x56fd13
cmp ecx, 0x12345678
jne 0x56fd35
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
lea ecx, [esi + 0x28]
call fcn.0041e540
lea edi, [esi + 0x18]
mov ecx, edi
call fcn.0041e540
mov dword [esi + 0x10], 1
mov dword [esi + 0x14], 0xa
mov dword [esi + 0x74], 0xf
mov dword [esi + 0x78], 0x1e
mov ecx, edi
call fcn.00540a80
mov ecx, dword [0x5cf588]
xor edi, edi
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete cl
cmp eax, 0xa
setge al
setl ah
xor ah, cl
jne 0x56fd9a
or al, dl
test al, 1
jne 0x59161c
mov dword [esi + 8], edi
cmp edi, 0x63
ja 0x56ff7e
mov eax, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
mov dword [esi + 0xc0], 0xb4
lea ecx, [esi + 0x74]
push edx
push eax
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov ecx, dword [0x5cf588]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [0x5cf58c], 0xa
setl dl
test dl, cl
jne 0x56fdf1
xor dl, cl
je 0x591624
mov dword [esi + 0x28], eax
lea ecx, [esi + 0x10]
push dword [esi + 0x14]
push dword [esi + 0x10]
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov dword [esi + 0x50], eax
lea ecx, [esi + 0x18]
lea eax, [esi + 0x28]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.004341a0
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp eax, 0xa
setl dl
or dl, dh
cmp dl, 1
mov edi, dword [esi + 8]
jne 0x56fe4e
inc edi
test dl, dl
jne 0x56fd77
inc edi
jmp 0x56fe45
cmp ecx, 0x12345678
jne 0x56fe63
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
lea ecx, [esi + 0x28]
call fcn.0041e540
lea edi, [esi + 0x18]
mov ecx, edi
call fcn.0041e540
mov dword [esi + 0x10], 1
mov dword [esi + 0x14], 0xa
mov dword [esi + 0x74], 0xf
mov dword [esi + 0x78], 0x1e
mov ecx, edi
call fcn.00540a80
mov ecx, dword [0x5cf588]
xor edi, edi
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete cl
cmp eax, 0xa
setge al
setl ah
xor ah, cl
jne 0x56fec8
or al, dl
test al, 1
jne 0x591620
mov dword [esi + 8], edi
cmp edi, 0x63
ja 0x570474
mov eax, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
mov dword [esi + 0xc0], 0x7b
lea ecx, [esi + 0x74]
push edx
push eax
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov ecx, dword [0x5cf588]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp dword [0x5cf58c], 0xa
setl dl
test dl, cl
jne 0x56ff1e
xor dl, cl
je 0x591628
mov dword [esi + 0x28], eax
lea ecx, [esi + 0x10]
push dword [esi + 0x14]
push dword [esi + 0x10]
lea eax, [esi + 0x7c]
push eax
call fcn.0041de80
mov dword [esi + 0x50], eax
lea ecx, [esi + 0x18]
lea eax, [esi + 0x28]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.004341a0
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp eax, 0xa
setl dl
or dl, dh
cmp dl, 1
mov edi, dword [esi + 8]
jne 0x56ff7b
inc edi
test dl, dl
jne 0x56fea5
inc edi
jmp 0x56ff72
lea ecx, [esi + 0x28]
call fcn.00540a80
mov ebx, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x4c], eax
cmp ebx, eax
jne 0x5700c4
mov edx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea ecx, [edx - 1]
imul ecx, edx
and ecx, 1
test ecx, ecx
setne cl
sete dl
cmp eax, 0xa
setge al
setl ah
xor ah, dl
jne 0x56ffc8
or cl, al
jne 0x591672
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 4], ecx
cmp eax, ecx
je 0x570973
mov ecx, dword [0x5cf590]
mov edi, dword [0x5cf594]
mov dword [esi + 8], edi
lea ebx, [ecx + 1]
imul ebx, ecx
mov ecx, ebx
xor ecx, 0xfffffffe
test ecx, ebx
sete dh
cmp edi, 0xa
setl dl
xor dl, dh
mov edx, 0xbd723542
mov edi, 0xd08af799
cmovne edx, edi
mov dword [esi + 0xc], ebx
mov dword [esi + 0x24], ecx
test ecx, ebx
mov ecx, edx
cmove ecx, edi
cmp dword [esi + 8], 0xa
cmovge ecx, edx
mov dword [esi + 0x38], ecx
xor edx, edx
jmp 0x57003f
mov dword [esi + 0x50], eax
mov ecx, dword [esi + 0x50]
add edx, dword [ecx + 4]
sub edx, dword [ecx]
add eax, 8
cmp eax, dword [esi + 4]
je 0x570961
mov ecx, dword [esi + 0x24]
test dword [esi + 0xc], ecx
sete byte [esi + 0x46]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x47]
mov ecx, 0x553a1bc1
cmp ecx, 0xd08af798
jg 0x570075
cmp ecx, 0xb4e27a0f
je 0x5700b6
cmp ecx, 0xbd723542
jne 0x570056
mov ecx, 0xb4e27a0f
jmp 0x570056
cmp ecx, 0xd08af799
je 0x570028
cmp ecx, 0x553a1bc1
jne 0x570056
movzx ebx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov bh, cl
xor bh, bl
test cl, cl
mov ecx, 0xbd723542
mov edi, 0xb4e27a0f
cmovne ecx, edi
test bl, bl
mov edi, 0xbd723542
cmove ecx, edi
test bh, bh
mov edi, 0xb4e27a0f
cmovne ecx, edi
jmp 0x570056
mov ecx, dword [esi + 0x38]
jmp 0x570056
cmp ebx, dword [esi + 0x4c]
je 0x56ffab
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xbd723542
mov edi, 0xd08af799
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x46]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edx
mov ecx, 0x553a1bc1
mov dword [esi + 0x3c], ebx
cmp ecx, 0xd08af798
jg 0x570133
cmp ecx, 0xb4e27a0f
je 0x570172
cmp ecx, 0xbd723542
jne 0x570114
mov ecx, 0xb4e27a0f
jmp 0x570114
cmp ecx, 0xd08af799
je 0x570176
cmp ecx, 0x553a1bc1
jne 0x570114
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
mov ebx, dword [esi + 0x3c]
jmp 0x570114
mov ecx, eax
jmp 0x570114
mov dword [esi + 0x50], ebx
mov eax, dword [esi + 0x50]
mov edx, dword [esi + 0x28]
mov edi, dword [esi + 0x2c]
mov cl, 1
mov dword [esi + 0x48], ecx
mov dword [esi + 8], edx
mov dword [esi + 0x40], edi
cmp edx, edi
mov dword [esi + 4], eax
je 0x5703e4
add eax, 4
mov dword [esi + 0xc], eax
mov ecx, dword [0x5cf588]
mov edx, dword [0x5cf58c]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete ch
cmp edx, 0xa
setl dl
setge cl
cmp dl, ch
jne 0x5701e2
or cl, al
test cl, 1
jne 0x5702ee
jmp 0x5701e2
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x40]
jne 0x5701aa
jmp 0x5703e4
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xbd723542
mov edi, 0xd08af799
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x46]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edx
mov ecx, 0x553a1bc1
cmp ecx, 0xd08af798
jg 0x57024e
cmp ecx, 0xb4e27a0f
je 0x57028a
cmp ecx, 0xbd723542
jne 0x57022f
mov ecx, 0xb4e27a0f
jmp 0x57022f
cmp ecx, 0xd08af799
je 0x57028e
cmp ecx, 0x553a1bc1
jne 0x57022f
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57022f
mov ecx, eax
jmp 0x57022f
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
mov dword [esi + 0x38], eax
mov dword [esi + 0x24], edx
lea eax, [edi + 4]
push dword [esi + 0xc]
push eax
call fcn.00433d30
add esp, 8
mov dword [esi + 0x34], edx
mov ecx, dword [0x5cf588]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
mov edx, dword [0x5cf58c]
sete bl
cmp edx, 0xa
setl bh
test bh, bl
jne 0x5703c1
xor bh, bl
jne 0x5703c1
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xbd723542
mov ebx, 0xd08af799
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x46]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edi
mov ecx, 0x553a1bc1
jmp 0x57033d
mov ecx, eax
cmp ecx, 0xd08af798
jg 0x57035c
cmp ecx, 0xb4e27a0f
je 0x57033b
cmp ecx, 0xbd723542
jne 0x57033d
mov ecx, 0xb4e27a0f
jmp 0x57033d
cmp ecx, 0xd08af799
je 0x570398
cmp ecx, 0x553a1bc1
jne 0x57033d
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57033d
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
add edi, 4
push dword [esi + 0xc]
push edi
call fcn.00433d30
add esp, 8
jmp 0x5701e2
mov ebx, dword [esi + 0x24]
mov ebx, dword [ebx]
cmp ebx, dword [eax]
jg 0x5701cf
mov eax, dword [esi + 0x38]
mov eax, dword [eax]
mov dword [edi], eax
mov eax, dword [esi + 0x34]
mov eax, dword [eax]
mov dword [edi + 4], eax
mov dword [esi + 0x48], 0
mov ecx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
setne dl
sete bl
cmp eax, 0xa
setge dh
setl bh
xor bh, bl
jne 0x570417
or dh, dl
jne 0x591632
cmp byte [esi + 0x48], 0
je 0x570446
mov dword [esi + 0xc0], 0xb5
lea ecx, [esi + 0x28]
push dword [esi + 4]
call fcn.00540ea0
mov edx, dword [0x5cf588]
mov eax, dword [0x5cf58c]
lea ecx, [edx - 1]
imul ecx, edx
and ecx, 1
test ecx, ecx
setne dl
cmp eax, 0xa
setge dh
mov ebx, edx
xor bl, dh
or dl, dh
xor dl, 1
or dl, bl
cmp dl, 1
mov ebx, dword [esi + 0x3c]
jne 0x57046f
add ebx, 8
test dl, dl
jne 0x5700bb
add ebx, 8
jmp 0x570464
lea ecx, [esi + 0x28]
call fcn.00540a80
mov ebx, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x4c], eax
cmp ebx, eax
jne 0x5705b3
mov ecx, dword [0x5cf588]
mov edi, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
test ecx, ecx
sete dl
setne cl
cmp edi, 0xa
setl ah
setge al
cmp dl, ah
jne 0x5704c3
or cl, al
jne 0x591678
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 8], ecx
cmp eax, ecx
je 0x580d65
mov ecx, dword [0x5cf590]
mov ebx, dword [0x5cf594]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
mov dword [esi + 0xc], edx
sete cl
mov edi, 0xbd723542
mov edx, 0xd08af799
cmove edi, edx
mov dword [esi + 4], ebx
cmp ebx, 0xa
setl ch
mov ebx, 0xbd723542
cmovge edi, ebx
xor ch, cl
cmovne edi, edx
mov dword [esi + 0x24], edi
xor ecx, ecx
jmp 0x570530
mov dword [esi + 0x50], eax
mov edx, dword [esi + 0x50]
add ecx, dword [edx + 4]
sub ecx, dword [edx]
add eax, 8
cmp eax, dword [esi + 8]
je 0x580d53
cmp dword [esi + 0xc], 0
sete byte [esi + 0x46]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x47]
mov ebx, 0x553a1bc1
cmp ebx, 0xd08af798
jg 0x570564
cmp ebx, 0xb4e27a0f
je 0x5705a5
cmp ebx, 0xbd723542
jne 0x570545
mov ebx, 0xb4e27a0f
jmp 0x570545
cmp ebx, 0xd08af799
je 0x570519
cmp ebx, 0x553a1bc1
jne 0x570545
movzx edx, byte [esi + 0x46]
movzx ebx, byte [esi + 0x47]
mov dh, bl
xor dh, dl
test bl, bl
mov ebx, 0xbd723542
mov edi, 0xb4e27a0f
cmovne ebx, edi
test dl, dl
mov edi, 0xbd723542
cmove ebx, edi
test dh, dh
mov edx, 0xb4e27a0f
cmovne ebx, edx
jmp 0x570545
mov ebx, dword [esi + 0x24]
jmp 0x570545
cmp ebx, dword [esi + 0x4c]
je 0x5704a6
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xbd723542
mov edi, 0xd08af799
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x46]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edx
mov ecx, 0x553a1bc1
mov dword [esi + 0x3c], ebx
cmp ecx, 0xd08af798
jg 0x570622
cmp ecx, 0xb4e27a0f
je 0x570661
cmp ecx, 0xbd723542
jne 0x570603
mov ecx, 0xb4e27a0f
jmp 0x570603
cmp ecx, 0xd08af799
je 0x570665
cmp ecx, 0x553a1bc1
jne 0x570603
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
mov ebx, dword [esi + 0x3c]
jmp 0x570603
mov ecx, eax
jmp 0x570603
mov dword [esi + 0x50], ebx
mov eax, dword [esi + 0x50]
mov edx, dword [esi + 0x28]
mov edi, dword [esi + 0x2c]
mov cl, 1
mov dword [esi + 0x48], ecx
mov dword [esi + 8], edx
mov dword [esi + 0x40], edi
cmp edx, edi
mov dword [esi + 4], eax
je 0x5708ce
add eax, 4
mov dword [esi + 0xc], eax
mov ecx, dword [0x5cf588]
mov edx, dword [0x5cf58c]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edx, 0xa
setl cl
test cl, al
jne 0x5706d0
xor cl, al
je 0x5707db
jmp 0x5706d0
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x40]
jne 0x570699
jmp 0x5708ce
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xbd723542
mov edi, 0xd08af799
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x46]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edx
mov ecx, 0x553a1bc1
cmp ecx, 0xd08af798
jg 0x57073c
cmp ecx, 0xb4e27a0f
je 0x570778
cmp ecx, 0xbd723542
jne 0x57071d
mov ecx, 0xb4e27a0f
jmp 0x57071d
cmp ecx, 0xd08af799
je 0x57077c
cmp ecx, 0x553a1bc1
jne 0x57071d
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne ecx, ebx
test dl, dl
mov edi, 0xbd723542
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57071d
mov ecx, eax
jmp 0x57071d
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
mov dword [esi + 0x38], eax
mov dword [esi + 0x24], edx
lea eax, [edi + 4]
push dword [esi + 0xc]
push eax
call fcn.00433d30
add esp, 8
mov dword [esi + 0x34], edx
mov ecx, dword [0x5cf588]
lea edx, [ecx + 1]
imul edx, ecx
mov ebx, edx
xor ebx, 0xfffffffe
test ebx, edx
mov edx, dword [0x5cf58c]
sete bl
cmp edx, 0xa
setl bh
test bh, bl
jne 0x5708ab
xor bh, bl
jne 0x5708ab
mov edx, dword [0x5cf590]
mov ecx, dword [0x5cf594]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xbd723542
mov edi, 0xd08af799
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x46]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x47]
cmovge eax, edx
mov ecx, 0x553a1bc1
jmp 0x57082c
mov ecx, eax
cmp ecx, 0xd08af798
jg 0x57084b
cmp ecx, 0xb4e27a0f
je 0x57082a
cmp ecx, 0xbd723542
jne 0x57082c
mov ecx, 0xb4e27a0f
jmp 0x57082c
cmp ecx, 0xd08af799
je 0x570882
cmp ecx, 0x553a1bc1
jne 0x57082c
movzx edx, byte [esi + 0x46]
movzx ecx, byte [esi + 0x47]
mov ch, dl
xor ch, cl
mov edi, 0xbd723542
mov ebx, 0xb4e27a0f
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x57082c
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x50]
push dword [esi + 4]
push edi
call fcn.00433d30
add esp, 8
add edi, 4
push dword [esi + 0xc]
push edi
call fcn.00433d30
add esp, 8
jmp 0x5706d0
mov ebx, dword [esi + 0x24]
mov ebx, dword [ebx]
cmp ebx, dword [eax]
jg 0x5706bd
mov eax, dword [esi + 0x38]
mov eax, dword [eax]
mov dword [edi], eax
mov eax, dword [esi + 0x34]
mov eax, dword [eax]
mov dword [edi + 4], eax
mov dword [esi + 0x48], 0
mov ecx, dword [0x5cf588]
mov edi, dword [0x5cf58c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
and ecx, 1
sete bh
cmp edi, 0xa
setge bl
setl al
xor al, bh
jne 0x570900
or bl, dl
test bl, 1
jne 0x591638
cmp byte [esi + 0x48], 0
je 0x57092f
mov dword [esi + 0xc0], 0x7c
lea ecx, [esi + 0x28]
push dword [esi + 4]
call fcn.00540ea0
mov eax, dword [0x5cf588]
mov edi, dword [0x5cf58c]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
test ecx, ecx
setne al
sete ah
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
or dl, al
xor dl, 1
or dl, dh
cmp dl, 1
mov ebx, dword [esi + 0x3c]
jne 0x57095c
add ebx, 8
test dl, dl
jne 0x5705aa
add ebx, 8
jmp 0x570951
cmp edx, 0x12345678
jne 0x570973
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
lea ecx, [esi + 0x28]
call fcn.0041e540
lea ecx, [esi + 0x18]
call fcn.0041e540
mov eax, dword [0x5d21a0]
mov ecx, dword [0x5d21a4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0xa7]
cmp ecx, 0xa
setl byte [esi + 0x7c]
mov eax, 0x8f871a7e
cmp eax, 0xf60420d0
jg 0x5709f6
cmp eax, 0x8c5f966a
je 0x591151
cmp eax, 0x8f871a7e
jne 0x5709ae
movzx ecx, byte [esi + 0xa7]
movzx eax, byte [esi + 0x7c]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0xf60420d1
mov edi, 0x5ae21c5b
cmovne eax, edi
test cl, cl
mov ecx, 0xf60420d1
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x5709ae
cmp eax, 0xf60420d1
je 0x571ac4
cmp eax, 0x5ae21c5b
jne 0x5709ae
mov dword [esi + 0x5c], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
setne dh
sete bl
mov dword [esi + 8], ecx
cmp ecx, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
xor dl, 1
or dl, bh
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov ecx, esp
sub esp, 0x10
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
mov dword [esi + 0x54], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
mov dword [esi + 0x68], esp
push eax
mov dword [esi + 0x6c], esp
push eax
mov dword [esi + 0x64], esp
test dl, dl
je 0x570a3e
mov dword [esi + 0x94], ecx
mov dword [esi + 0x60], ebx
lea ecx, [ebx + 0x10]
mov dword [esi + 0x98], ecx
mov dword [esi + 0x58], edi
lea ecx, [edi + 0x10]
mov dword [esi + 0x90], ecx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x572b76
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x88], edi
mov dword [esi + 0x80], eax
shr eax, 1
mov dword [esi + 4], eax
mov dword [esi + 0xc], 0
mov ebx, dword [esi + 0xc]
mov edi, dword [esi + 4]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
mov dword [esi + 8], ecx
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov ecx, dword [0x5cf6c4]
sete al
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl ah
test ah, al
jne 0x570b0a
xor ah, al
je 0x59163e
mov eax, edi
imul eax, ebx
mov edx, edi
mulx edx, ecx, edi
add eax, eax
add eax, edx
mov edx, dword [esi + 0x88]
cmp ecx, edx
sbb eax, 0
jae 0x5710e8
sub edx, edi
mov dword [esi + 0x38], edx
mov eax, 0
sbb eax, ebx
mov dword [esi + 0x24], eax
mov dword [esi + 0x40], edi
add edi, 1
mov dword [esi + 0x48], ebx
adc ebx, 0
push ebx
push edi
push eax
push edx
call fcn.00594a90
mov dword [esi + 8], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x34], edx
mov dword [esi + 0x84], eax
mov edx, eax
mov dword [esi + 0xc], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 8]
mov dword [esi + 4], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x38]
sub eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x24]
sbb ecx, edx
or ecx, eax
jne 0x570acf
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x60]
mov edi, dword [esi + 0x40]
mov dword [ecx], edi
mov edi, dword [esi + 0x48]
mov dword [ecx + 4], edi
mov edi, dword [esi + 0x84]
mov dword [ecx + 8], edi
setl byte [esi + 0x28]
mov edi, dword [esi + 8]
mov dword [ecx + 0xc], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x570c0e
cmp ecx, 0x20e9c049
je 0x570c25
cmp ecx, 0x3b23d0b1
jne 0x570bf4
jmp 0x570c50
cmp ecx, 0x9c6e8745
je 0x570c29
cmp ecx, 0xeb760989
jne 0x570bf4
mov ecx, 0x20e9c049
jmp 0x570bf4
mov ecx, eax
jmp 0x570bf4
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x570bf4
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x94]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x98]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x60]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x570ce7
cmp ecx, 0xcfcad29c
je 0x570d2a
cmp ecx, 0x3aca7e6
jne 0x570ccb
mov ecx, eax
jmp 0x570ccb
cmp ecx, 0x7c4a5f2
je 0x570d23
cmp ecx, 0x389c0e25
jne 0x570ccb
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x570ccb
mov ecx, 0x3aca7e6
jmp 0x570ccb
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xb6
mov ecx, dword [esi + 0x94]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xb8
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x94]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x570dd8
cmp eax, 0xc6e82640
je 0x570e46
cmp eax, 0x950d98a
jne 0x570d93
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x570d93
cmp eax, 0x31a61df5
je 0x570df8
cmp eax, 0x4d86efb0
jne 0x570d93
mov ecx, dword [esi + 0x94]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x570d93
mov ecx, dword [esi + 0x94]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x570d93
mov ebx, dword [esi + 0x58]
mov eax, dword [esi + 8]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x84]
mov dword [ebx], eax
mov eax, dword [esi + 0x48]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf6cc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 0x40]
mov dword [ebx + 8], edx
setl dl
mov ebx, 0xeb760989
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x570ec6
cmp ecx, 0x20e9c049
je 0x570edd
cmp ecx, 0x3b23d0b1
jne 0x570eac
jmp 0x570f0d
cmp ecx, 0x9c6e8745
je 0x570ee1
cmp ecx, 0xeb760989
jne 0x570eac
mov ecx, 0x20e9c049
jmp 0x570eac
mov ecx, eax
jmp 0x570eac
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x570eac
mov eax, dword [esi + 0x68]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x58]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x570fa0
cmp ecx, 0xcfcad29c
je 0x570fde
cmp ecx, 0x3aca7e6
jne 0x570f84
mov ecx, eax
jmp 0x570f84
cmp ecx, 0x7c4a5f2
je 0x570fd7
cmp ecx, 0x389c0e25
jne 0x570f84
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x570f84
mov ecx, 0x3aca7e6
jmp 0x570f84
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xb6
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xb7
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x571080
cmp eax, 0xc6e82640
je 0x570acf
cmp eax, 0x950d98a
jne 0x571040
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x571040
cmp eax, 0x31a61df5
je 0x57109d
cmp eax, 0x4d86efb0
jne 0x571040
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x571040
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x571040
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x57141a
mov dword [esi + 0x40], 1
jmp 0x57112f
mov ecx, dword [esi + 0x40]
inc ecx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x40], ecx
cmp ecx, edx
jae 0x57141a
mov ecx, dword [esi + 8]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 4], 0xa
setl cl
mov edx, dword [esi + 0x40]
mov dword [esi + 4], edx
test cl, al
jne 0x57117c
xor cl, al
mov eax, dword [esi + 0x40]
mov dword [esi + 4], eax
jne 0x57117c
jmp 0x59167a
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edx
call fcn.00433980
cmp dword [esi + 4], 0
je 0x5713dc
mov eax, dword [0x5cf6d8]
mov ecx, dword [0x5cf6dc]
lea edx, [eax + 1]
imul edx, eax
and edx, 1
mov dword [esi + 0x24], edx
sete byte [esi + 0x10]
sete al
mov edx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove edx, ebx
mov dword [esi + 0xc], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, 0xbf25ae54
cmovge edx, ecx
setl cl
xor cl, al
mov eax, dword [esi + 0x3c]
mov edi, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
lea eax, [edi + eax*4]
mov dword [esi + 0x38], eax
cmovne edx, ebx
mov dword [esi + 8], edx
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5711f1
cmp eax, 0xffb13445
je 0x571226
cmp eax, 0x20ab24e5
jne 0x5711da
jmp 0x571232
cmp eax, 0xbf25ae54
je 0x57122b
cmp eax, 0xe6642f9a
jne 0x5711da
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov ecx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ecx, edx
test al, al
mov eax, ecx
cmovne eax, edx
test bl, bl
cmove eax, ecx
jmp 0x5711da
mov eax, dword [esi + 8]
jmp 0x5711da
mov eax, 0xffb13445
jmp 0x5711da
mov ecx, dword [esi + 4]
dec ecx
cmp dword [esi + 0x24], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov ebx, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
lea eax, [edi + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x57127e
cmp eax, 0xffb13445
je 0x5712c5
cmp eax, 0x20ab24e5
jne 0x571267
jmp 0x5712d1
cmp eax, 0xbf25ae54
je 0x5712ca
cmp eax, 0xe6642f9a
jne 0x571267
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, cl
xor ch, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test cl, cl
mov edi, edx
mov edx, ebx
mov ebx, 0xbf25ae54
cmove eax, ebx
mov ebx, edx
mov edx, edi
test ch, ch
mov ecx, 0xffb13445
cmovne eax, ecx
jmp 0x571267
mov eax, dword [esi + 8]
jmp 0x571267
mov eax, 0xffb13445
jmp 0x571267
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
cmp edx, dword [eax]
sbb ebx, dword [eax + 4]
jge 0x5713dc
cmp dword [esi + 0x24], 0
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x571313
cmp eax, 0xffb13445
je 0x57134d
cmp eax, 0x20ab24e5
jne 0x5712fc
jmp 0x571359
cmp eax, 0xbf25ae54
je 0x571352
cmp eax, 0xe6642f9a
jne 0x5712fc
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, al
xor ch, cl
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test cl, cl
mov ebx, 0xbf25ae54
cmove eax, ebx
test ch, ch
cmovne eax, edi
jmp 0x5712fc
mov eax, dword [esi + 8]
jmp 0x5712fc
mov eax, 0xffb13445
jmp 0x5712fc
cmp dword [esi + 0x24], 0
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x571394
cmp ecx, 0xffb13445
je 0x5713d0
cmp ecx, 0x20ab24e5
jne 0x571377
jmp 0x571163
cmp ecx, 0xbf25ae54
je 0x5713d5
cmp ecx, 0xe6642f9a
jne 0x571377
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, cl
xor bh, bl
test cl, cl
mov ecx, 0xbf25ae54
mov eax, 0xffb13445
cmovne ecx, eax
test bl, bl
mov edi, 0xbf25ae54
cmove ecx, edi
test bh, bh
cmovne ecx, eax
jmp 0x571377
mov ecx, dword [esi + 8]
jmp 0x571377
mov ecx, 0xffb13445
jmp 0x571377
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
mov dword [esi + 8], ecx
imul eax, ecx
test al, 1
sete dh
mov dword [esi + 4], edi
cmp edi, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x57110d
or dl, al
test dl, 1
je 0x57110d
jmp 0x59168a
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx - 1]
mov dword [esi + 4], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x57146e
cmp edi, 0x88e9608c
je 0x5714ad
cmp edi, 0xdf32ec89
jne 0x57144a
mov ecx, dword [esi + 0x6c]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x57144a
cmp edi, 0x30b7124c
je 0x571506
cmp edi, 0x124998e2
jne 0x57144a
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x57144a
mov ecx, dword [esi + 0x6c]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea edi, [ecx + 1]
mov dword [esi + 4], ecx
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete cl
cmp ebx, 0xa
setl dl
xor dl, cl
mov ecx, 0xdf32ec89
mov edx, 0x30b7124c
cmovne ecx, edx
cmp edi, 0xffffffff
mov edi, ecx
cmove edi, edx
mov dword [esi + 8], ebx
cmp ebx, 0xa
cmovge edi, ecx
mov ecx, dword [esi + 0x18]
jmp 0x57144a
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x571555
cmp ecx, 0x88e9608c
je 0x57158c
cmp ecx, 0xdf32ec89
jne 0x571531
mov ecx, dword [esi + 0x64]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x571531
cmp ecx, 0x30b7124c
je 0x5715d9
cmp ecx, 0x124998e2
jne 0x571531
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x571531
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x571531
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x57160d
or cl, al
jne 0x591654
mov eax, dword [esi + 0x6c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x64]
cmp eax, dword [ecx]
je 0x571a21
mov ecx, dword [esi + 0x6c]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmovne ebx, edi
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
mov ecx, ebx
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov eax, dword [eax]
mov dword [esi + 8], eax
cmovge ecx, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x571699
cmp edx, 0x87fb68d6
je 0x5716d5
cmp edx, 0xfc04dcc5
jne 0x57167a
mov edx, 0x87fb68d6
jmp 0x57167a
cmp edx, 0x2601f5a7
je 0x5716d9
cmp edx, 0x5a893bc4
jne 0x57167a
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x57167a
mov edx, ecx
jmp 0x57167a
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x5718f9
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x57171f
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x5718f9
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne cl
cmp dword [esi + 0x34], 0xa
setge al
mov edx, eax
xor dl, cl
or al, cl
xor al, 1
or al, dl
mov byte [esi + 0x38], al
jne 0x5717f3
mov eax, dword [esi + 0x24]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
test ecx, ecx
sete dl
mov edi, dword [esi + 4]
cmp edi, 0xa
setl ah
xor ah, dl
mov edx, 0x4c6ca682
mov eax, 0x6707b2cf
cmovne edx, eax
test ecx, ecx
sete byte [esi + 0x10]
mov ecx, edx
cmove ecx, eax
cmp edi, 0xa
setl byte [esi + 0x28]
cmovge ecx, edx
mov edx, 0x1b272c9a
jmp 0x571793
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x5717ad
cmp edx, 0x4c6ca682
je 0x5717e3
cmp edx, 0x6707b2cf
jne 0x571793
jmp 0x5717ea
cmp edx, 0xf74fd645
je 0x571791
cmp edx, 0x1b272c9a
jne 0x571793
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov dh, ah
xor dh, dl
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test dl, dl
mov edx, edi
cmovne edx, ebx
test ah, ah
cmove edx, edi
jmp 0x571793
mov edx, 0xf74fd645
jmp 0x571793
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x24]
lea edx, [eax + 1]
imul edx, eax
mov ecx, edx
xor ecx, 0xfffffffe
mov edi, ecx
and edi, edx
sete bh
mov eax, dword [esi + 4]
cmp eax, 0xa
setl bl
xor bl, bh
mov ebx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne ebx, edi
and ecx, edx
sete byte [esi + 0x10]
mov edi, ebx
mov edx, 0x6707b2cf
cmove edi, edx
cmp eax, 0xa
setl byte [esi + 0x28]
cmovge edi, ebx
mov edx, 0x1b272c9a
cmp edx, 0x4c6ca681
jle 0x571859
cmp edx, 0x4c6ca682
je 0x571891
cmp edx, 0x6707b2cf
jne 0x57183f
jmp 0x57189c
cmp edx, 0xf74fd645
je 0x571898
cmp edx, 0x1b272c9a
jne 0x57183f
mov dh, byte [esi + 0x10]
mov byte [esi + 0xc], dh
mov dl, byte [esi + 0x28]
xor dh, dl
mov ebx, 0x4c6ca682
mov eax, 0xf74fd645
cmovne ebx, eax
test dl, dl
mov edx, ebx
cmovne edx, eax
cmp byte [esi + 0xc], 0
cmove edx, ebx
jmp 0x57183f
mov edx, 0xf74fd645
jmp 0x57183f
mov edx, edi
jmp 0x57183f
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x571758
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x57170d
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x57170d
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x34], 0xa
setl cl
test cl, al
jne 0x571920
xor cl, al
je 0x59166a
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x57196a
cmp eax, 0xcd5e6053
je 0x5719bf
cmp eax, 0x18ed46ca
jne 0x571948
mov eax, dword [esi + 0x6c]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x571948
cmp eax, 0x5499d804
je 0x5719e9
cmp eax, 0x685e39a2
jne 0x571948
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x571948
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x571948
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x57160d
xor cl, al
jne 0x57160d
jmp 0x591654
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete byte [esi + 4]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl bh
setge bl
mov edi, dword [esi + 0x80]
cmp bh, byte [esi + 4]
jne 0x570a9b
or bl, dl
mov edi, dword [esi + 0x80]
test bl, 1
je 0x570a9b
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete bh
mov dword [esi + 8], ecx
cmp ecx, 0xa
setge bl
setl cl
or bl, dl
xor cl, bh
test cl, cl
jne 0x571ab9
test bl, 1
jne 0x571a6d
mov edi, dword [esi + 0x80]
jmp 0x570a9b
mov edi, dword [esi + 0x80]
jmp 0x570a9b
mov dword [esi + 0x5c], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
setne dh
mov dword [esi + 8], ecx
cmp ecx, 0xa
setge dl
mov ebx, edx
xor bl, dh
or dl, dh
xor dl, 1
or dl, bl
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov edi, esp
sub esp, 0x10
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
mov dword [esi + 0x54], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov esp, ecx
push eax
mov dword [esi + 0x68], esp
push eax
mov dword [esi + 0x6c], esp
push eax
mov dword [esi + 0x64], esp
test dl, dl
je 0x571af6
mov dword [esi + 0x94], edi
mov dword [esi + 0x60], ebx
lea edx, [ebx + 0x10]
mov dword [esi + 0x98], edx
mov dword [esi + 0x58], ecx
add ecx, 0x10
mov dword [esi + 0x90], ecx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x579c1d
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x88], edi
mov dword [esi + 0x80], eax
shr eax, 1
mov dword [esi + 0xc], eax
mov dword [esi + 0x24], 0
mov edi, dword [esi + 0x24]
mov eax, dword [esi + 0xc]
mov dword [esi + 8], eax
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
mov dword [esi + 4], ecx
imul eax, ecx
test al, 1
sete dh
mov ecx, dword [0x5cf6c4]
mov dword [esi + 0xc], ecx
cmp ecx, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x571bc5
or dl, al
test dl, 1
jne 0x591640
mov edx, dword [esi + 8]
mov eax, edx
imul eax, edi
mov ebx, edi
mulx edi, ecx, edx
add eax, eax
add eax, edi
mov edi, dword [esi + 0x88]
cmp ecx, edi
sbb eax, 0
jae 0x5721a5
sub edi, edx
mov ecx, edi
mov dword [esi + 0x34], edi
mov eax, 0
sbb eax, ebx
mov dword [esi + 0x38], eax
mov edi, edx
add edi, 1
mov dword [esi + 0x48], ebx
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 4], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x40], edx
mov dword [esi + 0x84], eax
mov edx, eax
mov dword [esi + 0x24], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 4]
mov dword [esi + 0xc], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x34]
sub eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x38]
sbb ecx, edx
or ecx, eax
jne 0x571b87
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x10]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x60]
mov edx, dword [esi + 8]
mov dword [ecx], edx
mov edx, dword [esi + 0x48]
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x84]
mov dword [ecx + 8], edx
setl byte [esi + 0x28]
mov edx, dword [esi + 4]
mov dword [ecx + 0xc], edx
cmovge eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x571ccb
cmp ecx, 0x20e9c049
je 0x571ce2
cmp ecx, 0x3b23d0b1
jne 0x571cb1
jmp 0x571d0d
cmp ecx, 0x9c6e8745
je 0x571ce6
cmp ecx, 0xeb760989
jne 0x571cb1
mov ecx, 0x20e9c049
jmp 0x571cb1
mov ecx, eax
jmp 0x571cb1
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x571cb1
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x94]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x98]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x571da6
cmp ecx, 0xcfcad29c
je 0x571de9
cmp ecx, 0x3aca7e6
jne 0x571d8a
mov ecx, eax
jmp 0x571d8a
cmp ecx, 0x7c4a5f2
je 0x571de2
cmp ecx, 0x389c0e25
jne 0x571d8a
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x571d8a
mov ecx, 0x3aca7e6
jmp 0x571d8a
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xcd
mov ecx, dword [esi + 0x94]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xcf
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x94]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x571e96
cmp eax, 0xc6e82640
je 0x571eff
cmp eax, 0x950d98a
jne 0x571e51
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x571e51
cmp eax, 0x31a61df5
je 0x571eb6
cmp eax, 0x4d86efb0
jne 0x571e51
mov ecx, dword [esi + 0x94]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x571e51
mov ecx, dword [esi + 0x94]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x571e51
mov ebx, dword [esi + 0x58]
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
mov edx, dword [0x5cf6cc]
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne ecx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, dword [esi + 0x84]
mov dword [ebx], eax
mov eax, dword [esi + 0x48]
mov dword [ebx + 0xc], eax
mov eax, ecx
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
cmovge eax, ecx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x571f83
cmp ecx, 0x20e9c049
je 0x571f9a
cmp ecx, 0x3b23d0b1
jne 0x571f69
jmp 0x571fca
cmp ecx, 0x9c6e8745
je 0x571f9e
cmp ecx, 0xeb760989
jne 0x571f69
mov ecx, 0x20e9c049
jmp 0x571f69
mov ecx, eax
jmp 0x571f69
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x571f69
mov eax, dword [esi + 0x68]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x58]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x572060
cmp ecx, 0xcfcad29c
je 0x57209e
cmp ecx, 0x3aca7e6
jne 0x572044
mov ecx, eax
jmp 0x572044
cmp ecx, 0x7c4a5f2
je 0x572097
cmp ecx, 0x389c0e25
jne 0x572044
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x572044
mov ecx, 0x3aca7e6
jmp 0x572044
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xcd
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xce
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x572141
cmp eax, 0xc6e82640
je 0x571b87
cmp eax, 0x950d98a
jne 0x572101
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x572101
cmp eax, 0x31a61df5
je 0x57215e
cmp eax, 0x4d86efb0
jne 0x572101
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x572101
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x572101
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x5724c5
mov dword [esi + 0x48], 1
jmp 0x5721ec
mov ecx, dword [esi + 0x48]
inc ecx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x48], ecx
cmp ecx, edx
jae 0x5724c5
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne al
sete dl
cmp dword [esi + 0xc], 0xa
setge cl
setl ah
xor ah, dl
mov edx, dword [esi + 0x48]
mov dword [esi + 4], edx
jne 0x57223e
or cl, al
mov eax, dword [esi + 0x48]
mov dword [esi + 4], eax
je 0x57223e
jmp 0x59167c
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edi
call fcn.00433980
cmp dword [esi + 4], 0
je 0x572488
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
and eax, 1
sete al
cmp ebx, 0xa
setl cl
xor cl, al
mov eax, 0xbf25ae54
mov ecx, 0x20ab24e5
cmovne eax, ecx
and edx, 1
mov dword [esi + 0x24], edx
sete byte [esi + 0x10]
mov edx, eax
cmove edx, ecx
mov dword [esi + 0xc], ebx
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 0x3c]
mov edx, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
lea eax, [edx + eax*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5722b8
cmp eax, 0xffb13445
je 0x5722ed
cmp eax, 0x20ab24e5
jne 0x5722a1
jmp 0x5722f9
cmp eax, 0xbf25ae54
je 0x5722f2
cmp eax, 0xe6642f9a
jne 0x5722a1
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov ecx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ecx, edi
test al, al
mov eax, ecx
cmovne eax, edi
test bl, bl
cmove eax, ecx
jmp 0x5722a1
mov eax, dword [esi + 8]
jmp 0x5722a1
mov eax, 0xffb13445
jmp 0x5722a1
mov ecx, dword [esi + 4]
dec ecx
cmp dword [esi + 0x24], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ebx, dword [eax]
mov dword [esi + 0x40], ebx
mov edi, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
lea eax, [edx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x572348
cmp eax, 0xffb13445
je 0x57237d
cmp eax, 0x20ab24e5
jne 0x572331
jmp 0x572389
cmp eax, 0xbf25ae54
je 0x572382
cmp eax, 0xe6642f9a
jne 0x572331
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne edx, ecx
test al, al
mov eax, edx
cmovne eax, ecx
test bl, bl
cmove eax, edx
jmp 0x572331
mov eax, dword [esi + 8]
jmp 0x572331
mov eax, 0xffb13445
jmp 0x572331
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x40]
cmp ecx, dword [eax]
sbb edi, dword [eax + 4]
jge 0x572488
cmp dword [esi + 0x24], 0
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5723ce
cmp eax, 0xffb13445
je 0x572403
cmp eax, 0x20ab24e5
jne 0x5723b7
jmp 0x57240f
cmp eax, 0xbf25ae54
je 0x572408
cmp eax, 0xe6642f9a
jne 0x5723b7
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edx, ebx
test al, al
mov eax, edx
cmovne eax, ebx
test cl, cl
cmove eax, edx
jmp 0x5723b7
mov eax, dword [esi + 8]
jmp 0x5723b7
mov eax, 0xffb13445
jmp 0x5723b7
cmp dword [esi + 0x24], 0
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov edi, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x572447
cmp eax, 0xffb13445
je 0x57247c
cmp eax, 0x20ab24e5
jne 0x57242d
jmp 0x572225
cmp eax, 0xbf25ae54
je 0x572481
cmp eax, 0xe6642f9a
jne 0x57242d
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edx, ebx
test al, al
mov eax, edx
cmovne eax, ebx
test cl, cl
cmove eax, edx
jmp 0x57242d
mov eax, dword [esi + 8]
jmp 0x57242d
mov eax, 0xffb13445
jmp 0x57242d
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
mov dword [esi + 4], ecx
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete al
mov dword [esi + 0xc], edi
cmp edi, 0xa
setl dl
test dl, al
jne 0x5721ca
xor dl, al
jne 0x5721ca
jmp 0x59168c
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x572519
cmp edi, 0x88e9608c
je 0x572558
cmp edi, 0xdf32ec89
jne 0x5724f5
mov ecx, dword [esi + 0x6c]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x5724f5
cmp edi, 0x30b7124c
je 0x5725b0
cmp edi, 0x124998e2
jne 0x5724f5
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
test bh, bh
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test cl, cl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bl, bl
cmovne edi, edx
jmp 0x5724f5
mov ecx, dword [esi + 0x6c]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
mov dword [esi + 8], edx
lea edi, [ecx + 1]
mov dword [esi + 4], ecx
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov edx, 0x30b7124c
cmovne ebx, edx
test ecx, edi
mov edi, ebx
cmove edi, edx
cmp dword [esi + 8], 0xa
cmovge edi, ebx
mov ecx, dword [esi + 0x18]
jmp 0x5724f5
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x572605
cmp ecx, 0x88e9608c
je 0x572640
cmp ecx, 0xdf32ec89
jne 0x5725de
mov eax, dword [esi + 0x64]
mov ecx, dword [esi + 4]
mov dword [eax], ecx
mov ecx, 0x88e9608c
jmp 0x5725de
cmp ecx, 0x30b7124c
je 0x572694
cmp ecx, 0x124998e2
jne 0x5725de
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov eax, 0x88e9608c
cmovne edi, eax
test cl, cl
mov ecx, edi
cmovne ecx, eax
test dl, dl
cmove ecx, edi
jmp 0x5725de
mov eax, dword [esi + 0x64]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 4]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov eax, 0x30b7124c
cmovne ebx, eax
test edi, ecx
mov ecx, ebx
cmove ecx, eax
cmp edx, 0xa
cmovge ecx, ebx
mov edx, dword [esi + 0x18]
jmp 0x5725de
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
jmp 0x5726c1
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x5726da
xor cl, al
je 0x591656
mov eax, dword [esi + 0x6c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x64]
cmp eax, dword [ecx]
je 0x572ad3
mov ecx, dword [esi + 0x6c]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov edi, dword [eax]
mov dword [esi + 8], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x572767
cmp edx, 0x87fb68d6
je 0x5727a3
cmp edx, 0xfc04dcc5
jne 0x572748
mov edx, 0x87fb68d6
jmp 0x572748
cmp edx, 0x2601f5a7
je 0x5727a7
cmp edx, 0x5a893bc4
jne 0x572748
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x572748
mov edx, ecx
jmp 0x572748
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x5729cf
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x5727ed
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x5729cf
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
setne cl
cmp dword [esi + 0x34], 0xa
setge al
mov edx, eax
xor dl, cl
or al, cl
xor al, 1
or al, dl
mov byte [esi + 0x38], al
jne 0x5728cb
mov eax, dword [esi + 0x24]
lea edx, [eax + 1]
imul edx, eax
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
test ecx, ecx
sete dl
mov ebx, dword [esi + 4]
cmp ebx, 0xa
setl ah
xor ah, dl
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
test ecx, ecx
sete byte [esi + 0x10]
mov ecx, edx
cmove ecx, edi
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge ecx, edx
mov ebx, 0x1b272c9a
jmp 0x572866
mov ebx, ecx
cmp ebx, 0x4c6ca681
jle 0x572880
cmp ebx, 0x4c6ca682
je 0x5728bb
cmp ebx, 0x6707b2cf
jne 0x572866
jmp 0x5728c2
cmp ebx, 0xf74fd645
je 0x572864
cmp ebx, 0x1b272c9a
jne 0x572866
movzx edx, byte [esi + 0x10]
mov ah, byte [esi + 0x28]
mov dh, ah
xor dh, dl
test ah, ah
mov ebx, 0x4c6ca682
mov eax, 0xf74fd645
cmovne ebx, eax
test dl, dl
mov edi, 0x4c6ca682
cmove ebx, edi
test dh, dh
cmovne ebx, eax
jmp 0x572866
mov ebx, 0xf74fd645
jmp 0x572866
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x24]
lea edx, [eax + 1]
imul edx, eax
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete byte [esi + 0x10]
sete ah
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove edx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl bl
mov edi, 0x4c6ca682
cmovge edx, edi
xor bl, ah
mov eax, 0x6707b2cf
cmovne edx, eax
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x57292b
cmp ebx, 0x4c6ca682
je 0x572967
cmp ebx, 0x6707b2cf
jne 0x572911
jmp 0x572972
cmp ebx, 0xf74fd645
je 0x57296e
cmp ebx, 0x1b272c9a
jne 0x572911
mov ah, byte [esi + 0x10]
movzx ebx, byte [esi + 0x28]
mov bh, ah
xor bh, bl
mov edi, 0x4c6ca682
mov dword [esi + 0xc], ecx
mov ecx, 0xf74fd645
cmovne edi, ecx
test bl, bl
mov ebx, edi
cmovne ebx, ecx
mov ecx, dword [esi + 0xc]
test ah, ah
cmove ebx, edi
jmp 0x572911
mov ebx, 0xf74fd645
jmp 0x572911
mov ebx, edx
jmp 0x572911
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x57282b
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x5727db
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x5727db
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
setne al
cmp dword [esi + 0x34], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x5729fb
or cl, al
jne 0x59166e
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x572a46
cmp eax, 0xcd5e6053
je 0x572aa9
cmp eax, 0x18ed46ca
jne 0x572a24
mov eax, dword [esi + 0x6c]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x572a24
cmp eax, 0x5499d804
je 0x5726ab
cmp eax, 0x685e39a2
jne 0x572a24
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x18ed46ca
mov edi, 0x5499d804
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x572a24
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x572a24
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete byte [esi + 4]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setge bl
setl bh
xor bh, byte [esi + 4]
mov edi, dword [esi + 0x80]
jne 0x571b53
or bl, dl
mov edi, dword [esi + 0x80]
test bl, 1
je 0x571b53
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x572b6b
test dl, dl
je 0x572b1f
mov edi, dword [esi + 0x80]
jmp 0x571b53
mov edi, dword [esi + 0x80]
jmp 0x571b53
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete al
cmp dword [esi + 8], 0xa
setl cl
test cl, al
jne 0x572b99
xor cl, al
je 0x5916bc
mov esp, dword [esi + 0x5c]
mov dword [esi + 0x94], esp
mov eax, dword [0x5d21a8]
mov ecx, dword [0x5d21ac]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x46]
cmp ecx, 0xa
setl byte [esi + 0x47]
mov eax, 0xd31607fa
cmp eax, 0x57676504
jg 0x572c10
cmp eax, 0xbf311110
je 0x580cf8
cmp eax, 0xd31607fa
jne 0x572bcb
movzx ecx, byte [esi + 0x46]
movzx eax, byte [esi + 0x47]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x5af2d6e3
mov edi, 0x57676505
cmovne eax, edi
test cl, cl
mov ecx, 0x5af2d6e3
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x572bcb
cmp eax, 0x57676505
je 0x572c4f
cmp eax, 0x5af2d6e3
jne 0x572bcb
mov dword [esi + 0x3c], esp
mov eax, dword [0x5cf5f0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x572c88
xor cl, al
je 0x572da1
jmp 0x572c88
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
mov dword [esi + 0x40], esp
setl ch
setge cl
cmp ch, dl
jne 0x573139
or cl, al
test cl, 1
jne 0x57324e
jmp 0x573139
push eax
mov dword [esi + 0x38], esp
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
mov dword [esi + 0x34], ecx
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 4], edi
mov ecx, edi
call fcn.0040cd80
mov eax, dword [0x5cf4b8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4bc]
sete byte [esi + 0x28]
sete dl
mov eax, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x18]
setl cl
mov ebx, 0x8f0f2ca8
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x13d3b53a
cmp ecx, 0x13d3b539
jg 0x572d16
cmp ecx, 0x8f0f2ca8
je 0x572d52
cmp ecx, 0x11f1fb1a
jne 0x572cfc
jmp 0x572d5d
cmp ecx, 0x1a1c1d98
je 0x572d59
cmp ecx, 0x13d3b53a
jne 0x572cfc
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x8f0f2ca8
mov ebx, 0x1a1c1d98
cmovne ecx, ebx
test dl, dl
mov edi, 0x8f0f2ca8
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x572cfc
mov ecx, 0x1a1c1d98
jmp 0x572cfc
mov ecx, eax
jmp 0x572cfc
mov eax, dword [esi + 4]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov eax, dword [0x5cf5f0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x572e86
xor cl, al
jne 0x572e86
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 8], edi
mov ecx, edi
call fcn.0040cd80
mov edx, dword [0x5cf4b8]
mov ecx, dword [0x5cf4bc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmovne ebx, edi
test edx, eax
sete byte [esi + 0x28]
mov eax, ebx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x18]
cmovge eax, ebx
mov ecx, 0x13d3b53a
jmp 0x572e15
mov ecx, eax
cmp ecx, 0x13d3b539
jg 0x572e2f
cmp ecx, 0x8f0f2ca8
je 0x572e66
cmp ecx, 0x11f1fb1a
jne 0x572e15
jmp 0x572e6d
cmp ecx, 0x1a1c1d98
je 0x572e13
cmp ecx, 0x13d3b53a
jne 0x572e15
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov ch, dl
xor ch, cl
mov ebx, 0x8f0f2ca8
mov edi, 0x1a1c1d98
cmovne ebx, edi
test cl, cl
mov ecx, ebx
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
jmp 0x572e15
mov ecx, 0x1a1c1d98
jmp 0x572e15
mov eax, dword [esi + 8]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
jmp 0x572c88
mov dword [esi + 0x24], 0
cmp dword [esi + 0x24], 0x3e8
je 0x5730ea
mov ecx, dword [esi + 0x34]
movsx eax, byte [ecx + 1]
movsx edx, byte [ecx]
mov dword [esi + 0xc0], 0xc3
push eax
push edx
push dword [esi + 0x38]
call fcn.0041e700
movsx eax, al
mov ecx, dword [esi + 4]
push eax
call fcn.00441240
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x572eed
or cl, al
test cl, 1
jne 0x572f1d
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp dword [0x5cf5f4], 0xa
setl dl
test dl, cl
jne 0x572f27
xor dl, cl
jne 0x572f27
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x572eed
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
cmp byte [ecx + eax - 1], 0x6f
je 0x572f4c
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov ecx, dword [edi + 0x10]
cmp byte [ecx + eax - 1], 0x75
jne 0x5730ad
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov dword [esi + 8], eax
mov ecx, edi
call fcn.00423280
add eax, dword [edi + 0x10]
mov dword [esi + 0xc], eax
mov ecx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
and ecx, 1
sete byte [esi + 0x40]
cmp eax, 0xa
setl bh
setge bl
cmp bh, byte [esi + 0x40]
jne 0x572f99
or bl, dl
test bl, 1
jne 0x5916f2
mov edx, dword [esi + 0xc]
cmp dword [esi + 8], edx
jne 0x572fb6
jmp 0x5730c1
mov edx, dword [esi + 8]
inc edx
mov dword [esi + 8], edx
cmp edx, dword [esi + 0xc]
je 0x5730c1
mov eax, dword [0x5cf5f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf5fc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xc9893d93
mov edi, 0x603280c6
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
setl cl
mov ebx, 0xc9893d93
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0xfc461c64
cmp ecx, 0xfc461c63
jg 0x57301a
cmp ecx, 0xc9893d93
je 0x573056
cmp ecx, 0xdac56cfa
jne 0x572ffe
mov ecx, eax
jmp 0x572ffe
cmp ecx, 0x603280c6
je 0x57305d
cmp ecx, 0xfc461c64
jne 0x572ffe
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xc9893d93
mov edi, 0xdac56cfa
cmovne ecx, edi
test dl, dl
mov ebx, 0xc9893d93
cmove ecx, ebx
test dh, dh
cmovne ecx, edi
jmp 0x572ffe
mov ecx, 0xdac56cfa
jmp 0x572ffe
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x18]
movsx eax, byte [ebx]
push eax
call fcn.005a47b5
add esp, 4
mov ecx, eax
xor cl, 0xf5
and cl, al
mov byte [ebx], cl
mov edx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea ecx, [edx - 1]
imul ecx, edx
and ecx, 1
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x572fa6
xor dh, dl
jne 0x572fa6
jmp 0x59169e
mov edx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
inc dword [esi + 0x24]
test ecx, ecx
sete dl
setne cl
cmp eax, 0xa
setl ah
setge al
cmp dl, ah
jne 0x572e8d
or cl, al
je 0x572e8d
jmp 0x5916f4
mov ecx, dword [esi + 4]
call fcn.00423280
cmp byte [eax + 0xd7], 0x31
jne 0x576991
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf5f4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x5768f5
or cl, al
jne 0x576926
jmp 0x5768f5
push eax
mov dword [esi + 0x38], esp
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
mov dword [esi + 0x34], ecx
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 4], edi
mov ecx, edi
call fcn.0040cd80
mov eax, dword [0x5cf4b8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4bc]
sete byte [esi + 0x28]
sete dl
mov eax, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x18]
setl cl
mov ebx, 0x8f0f2ca8
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x13d3b53a
cmp ecx, 0x13d3b539
jg 0x5731c7
cmp ecx, 0x8f0f2ca8
je 0x5731fe
cmp ecx, 0x11f1fb1a
jne 0x5731ad
jmp 0x573209
cmp ecx, 0x1a1c1d98
je 0x573205
cmp ecx, 0x13d3b53a
jne 0x5731ad
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov ch, dl
xor ch, cl
mov edi, 0x8f0f2ca8
mov ebx, 0x1a1c1d98
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5731ad
mov ecx, 0x1a1c1d98
jmp 0x5731ad
mov ecx, eax
jmp 0x5731ad
mov edi, dword [esi + 4]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
mov byte [edi], 0
setl ch
setge cl
cmp ch, dl
jne 0x573335
or cl, al
test cl, 1
je 0x573335
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 8], edi
mov ecx, edi
call fcn.0040cd80
mov eax, dword [0x5cf4b8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4bc]
sete byte [esi + 0x28]
sete dl
mov eax, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x18]
setl cl
mov ebx, 0x8f0f2ca8
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x13d3b53a
jmp 0x5732bf
mov ecx, eax
cmp ecx, 0x13d3b539
jg 0x5732d9
cmp ecx, 0x8f0f2ca8
je 0x573315
cmp ecx, 0x11f1fb1a
jne 0x5732bf
jmp 0x57331c
cmp ecx, 0x1a1c1d98
je 0x5732bd
cmp ecx, 0x13d3b53a
jne 0x5732bf
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x8f0f2ca8
mov edi, 0x1a1c1d98
cmovne ecx, edi
test dl, dl
mov ebx, 0x8f0f2ca8
cmove ecx, ebx
test dh, dh
cmovne ecx, edi
jmp 0x5732bf
mov ecx, 0x1a1c1d98
jmp 0x5732bf
mov eax, dword [esi + 8]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
jmp 0x573139
mov dword [esi + 0x24], 0
cmp dword [esi + 0x24], 0x3e8
je 0x573599
mov ecx, dword [esi + 0x34]
movsx eax, byte [ecx + 1]
movsx edx, byte [ecx]
mov dword [esi + 0xc0], 0xb9
push eax
push edx
push dword [esi + 0x38]
call fcn.0041e700
movsx eax, al
mov ecx, dword [esi + 4]
push eax
call fcn.00441240
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf5f4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x5733a0
or cl, al
jne 0x5733d2
mov ecx, dword [esi + 4]
call fcn.00423280
mov edx, dword [0x5cf5f0]
lea ecx, [edx + 1]
imul ecx, edx
test cl, 1
sete dh
cmp dword [0x5cf5f4], 0xa
setge dl
setl bl
xor bl, dh
jne 0x5733dc
or dl, cl
test dl, 1
je 0x5733dc
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x5733a0
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
cmp byte [ecx + eax - 1], 0x6f
je 0x573401
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov ecx, dword [edi + 0x10]
cmp byte [ecx + eax - 1], 0x75
jne 0x573562
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov dword [esi + 8], eax
mov ecx, edi
call fcn.00423280
add eax, dword [edi + 0x10]
mov dword [esi + 0xc], eax
mov ecx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete bl
setne dl
cmp eax, 0xa
setl bh
setge dh
cmp bh, bl
jne 0x57344e
or dh, dl
jne 0x5916f6
mov edx, dword [esi + 0xc]
cmp dword [esi + 8], edx
jne 0x57346b
jmp 0x573576
mov edx, dword [esi + 8]
inc edx
mov dword [esi + 8], edx
cmp edx, dword [esi + 0xc]
je 0x573576
mov eax, dword [0x5cf5f8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf5fc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xc9893d93
mov edi, 0x603280c6
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0xc9893d93
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0xfc461c64
cmp ecx, 0xfc461c63
jg 0x5734d0
cmp ecx, 0xc9893d93
je 0x57350c
cmp ecx, 0xdac56cfa
jne 0x5734b4
mov ecx, eax
jmp 0x5734b4
cmp ecx, 0x603280c6
je 0x573513
cmp ecx, 0xfc461c64
jne 0x5734b4
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xc9893d93
mov edi, 0xdac56cfa
cmovne ecx, edi
test dl, dl
mov ebx, 0xc9893d93
cmove ecx, ebx
test dh, dh
cmovne ecx, edi
jmp 0x5734b4
mov ecx, 0xdac56cfa
jmp 0x5734b4
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x18]
movsx eax, byte [ebx]
push eax
call fcn.005a47b5
add esp, 4
and al, 0xa
mov byte [ebx], al
mov ecx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x57345b
xor dh, dl
jne 0x57345b
jmp 0x5916a0
mov edx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea ecx, [edx - 1]
imul ecx, edx
and ecx, 1
inc dword [esi + 0x24]
test ecx, ecx
sete cl
cmp eax, 0xa
setl al
test cl, al
jne 0x57333c
xor cl, al
jne 0x57333c
jmp 0x5916f8
mov ecx, dword [esi + 4]
call fcn.00423280
cmp byte [eax + 0xd7], 0x31
jne 0x573677
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x5735d6
xor cl, al
je 0x57360c
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete ch
setne cl
cmp dword [0x5cf5f4], 0xa
setl dh
setge dl
cmp dh, ch
jne 0x573616
or dl, cl
je 0x573616
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x5735d6
cmp byte [eax + 0x2d0], 0x30
jne 0x573677
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x573677
xor cl, al
jne 0x573677
push 0
push 0
mov edi, dword [sym.imp.KERNEL32.dll_Beep]
call edi
push 0
push 0
call edi
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
jmp 0x57363c
mov ecx, dword [esi + 4]
call fcn.0040ed30
mov esp, dword [esi + 0x40]
mov dword [esi + 0xa0], esp
mov dword [esi + 0x9c], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
setne dh
cmp ecx, 0xa
setge dl
mov ebx, edx
xor bl, dh
or dl, dh
xor dl, 1
or dl, bl
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x6c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x5736ba
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x57471f
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setge dl
setl bl
xor bl, dh
mov ebx, dword [esi + 0x38]
mov dword [esi + 4], ebx
mov ebx, dword [esi + 0x24]
mov dword [esi + 8], ebx
jne 0x573787
or dl, al
test dl, 1
jne 0x59170c
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x573d60
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x98], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x57374c
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 8]
mov dword [ecx], ebx
mov ebx, dword [esi + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x98]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0xc]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x573888
cmp ecx, 0x20e9c049
je 0x57389f
cmp ecx, 0x3b23d0b1
jne 0x57386e
jmp 0x5738cf
cmp ecx, 0x9c6e8745
je 0x5738a3
cmp ecx, 0xeb760989
jne 0x57386e
mov ecx, 0x20e9c049
jmp 0x57386e
mov ecx, eax
jmp 0x57386e
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57386e
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax - 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x4c]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x90]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x68]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x573966
cmp ecx, 0xcfcad29c
je 0x5739a9
cmp ecx, 0x3aca7e6
jne 0x57394a
mov ecx, eax
jmp 0x57394a
cmp ecx, 0x7c4a5f2
je 0x5739a2
cmp ecx, 0x389c0e25
jne 0x57394a
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57394a
mov ecx, 0x3aca7e6
jmp 0x57394a
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xba
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xbc
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x573a4c
cmp eax, 0xc6e82640
je 0x573ab0
cmp eax, 0x950d98a
jne 0x573a0c
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x573a0c
cmp eax, 0x31a61df5
je 0x573a69
cmp eax, 0x4d86efb0
jne 0x573a0c
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x573a0c
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x573a0c
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
mov edx, dword [0x5cf6cc]
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne ecx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, dword [esi + 0x98]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, ecx
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
cmovge eax, ecx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x573b34
cmp ecx, 0x20e9c049
je 0x573b4b
cmp ecx, 0x3b23d0b1
jne 0x573b1a
jmp 0x573b7b
cmp ecx, 0x9c6e8745
je 0x573b4f
cmp ecx, 0xeb760989
jne 0x573b1a
mov ecx, 0x20e9c049
jmp 0x573b1a
mov ecx, eax
jmp 0x573b1a
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x573b1a
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax - 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x6c]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x80]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x64]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x573c12
cmp ecx, 0xcfcad29c
je 0x573c55
cmp ecx, 0x3aca7e6
jne 0x573bf6
mov ecx, eax
jmp 0x573bf6
cmp ecx, 0x7c4a5f2
je 0x573c4e
cmp ecx, 0x389c0e25
jne 0x573bf6
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x573bf6
mov ecx, 0x3aca7e6
jmp 0x573bf6
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xba
mov ecx, dword [esi + 0x6c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xbb
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x6c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x573cfc
cmp eax, 0xc6e82640
je 0x57374c
cmp eax, 0x950d98a
jne 0x573cb7
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x573cb7
cmp eax, 0x31a61df5
je 0x573d19
cmp eax, 0x4d86efb0
jne 0x573cb7
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x573cb7
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x573cb7
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x57408b
mov dword [esi + 0x58], 1
jmp 0x573da7
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x57408b
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
setne al
cmp edi, 0xa
setl ah
setge cl
mov edi, dword [esi + 0x58]
mov dword [esi + 4], edi
cmp ah, dl
jne 0x573df5
or cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 4], eax
je 0x573df5
jmp 0x591766
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edx
call fcn.00433980
cmp dword [esi + 4], 0
je 0x57404e
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax + 1]
imul edi, eax
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete al
cmp ebx, 0xa
setl dl
xor dl, al
mov eax, 0xbf25ae54
mov edx, 0x20ab24e5
cmovne eax, edx
mov dword [esi + 0x24], ecx
test ecx, edi
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
mov dword [esi + 0xc], ebx
cmp ebx, 0xa
cmovge ecx, eax
mov dword [esi + 8], ecx
setl byte [esi + 0x28]
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
lea edx, [eax + eax*2]
mov dword [esi + 0x34], ecx
lea eax, [ecx + edx*4]
mov dword [esi + 0x38], eax
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x573e76
cmp edx, 0xffb13445
je 0x573ead
cmp edx, 0x20ab24e5
jne 0x573e5c
jmp 0x573eb9
cmp edx, 0xbf25ae54
je 0x573eb2
cmp edx, 0xe6642f9a
jne 0x573e5c
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
mov ebx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne ebx, ecx
test dl, dl
mov edx, ebx
cmovne edx, ecx
test al, al
cmove edx, ebx
jmp 0x573e5c
mov edx, dword [esi + 8]
jmp 0x573e5c
mov edx, 0xffb13445
jmp 0x573e5c
mov ecx, dword [esi + 4]
dec ecx
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x48], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x40], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x34]
lea eax, [ecx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x573f0d
cmp eax, 0xffb13445
je 0x573f42
cmp eax, 0x20ab24e5
jne 0x573ef6
jmp 0x573f4e
cmp eax, 0xbf25ae54
je 0x573f47
cmp eax, 0xe6642f9a
jne 0x573ef6
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne edx, ecx
test al, al
mov eax, edx
cmovne eax, ecx
test bl, bl
cmove eax, edx
jmp 0x573ef6
mov eax, dword [esi + 8]
jmp 0x573ef6
mov eax, 0xffb13445
jmp 0x573ef6
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x48]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x40]
sbb ecx, dword [eax + 4]
jge 0x57404e
test dword [esi + 0x24], edi
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x573f95
cmp eax, 0xffb13445
je 0x573fca
cmp eax, 0x20ab24e5
jne 0x573f7e
jmp 0x573fd6
cmp eax, 0xbf25ae54
je 0x573fcf
cmp eax, 0xe6642f9a
jne 0x573f7e
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne ebx, ecx
test al, al
mov eax, ebx
cmovne eax, ecx
test dl, dl
cmove eax, ebx
jmp 0x573f7e
mov eax, dword [esi + 8]
jmp 0x573f7e
mov eax, 0xffb13445
jmp 0x573f7e
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x57400d
cmp eax, 0xffb13445
je 0x574042
cmp eax, 0x20ab24e5
jne 0x573ff3
jmp 0x573ddc
cmp eax, 0xbf25ae54
je 0x574047
cmp eax, 0xe6642f9a
jne 0x573ff3
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov edi, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edi, ebx
test al, al
mov eax, edi
cmovne eax, ebx
test cl, cl
cmove eax, edi
jmp 0x573ff3
mov eax, dword [esi + 8]
jmp 0x573ff3
mov eax, 0xffb13445
jmp 0x573ff3
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete ah
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
jne 0x573d85
or dl, al
je 0x573d85
jmp 0x591768
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x5740dc
cmp edi, 0x88e9608c
je 0x574121
cmp edi, 0xdf32ec89
jne 0x5740b8
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x5740b8
cmp edi, 0x30b7124c
je 0x574178
cmp edi, 0x124998e2
jne 0x5740b8
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, cl
xor bh, bl
test cl, cl
mov edi, 0xdf32ec89
mov ecx, 0x88e9608c
cmovne edi, ecx
test bl, bl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bh, bh
mov ecx, 0x88e9608c
cmovne edi, ecx
jmp 0x5740b8
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
imul ecx, edx
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 8], ebx
cmp ebx, 0xa
mov ebx, 0xdf32ec89
cmovge edi, ebx
setl ch
xor ch, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x5740b8
lea eax, [edx + 1]
imul eax, edx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x5741c3
cmp ecx, 0x88e9608c
je 0x5741fa
cmp ecx, 0xdf32ec89
jne 0x57419f
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x57419f
cmp ecx, 0x30b7124c
je 0x574247
cmp ecx, 0x124998e2
jne 0x57419f
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x57419f
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x57419f
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x574276
xor cl, al
je 0x59176c
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x57468d
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
mov dword [esi + 8], edx
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edx, 0x2601f5a7
cmovne ebx, edx
test edi, ecx
sete byte [esi + 0x28]
mov edi, ebx
cmove edi, edx
cmp dword [esi + 8], 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov ecx, dword [eax]
mov dword [esi + 8], ecx
cmovge edi, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x574304
cmp edx, 0x87fb68d6
je 0x57433b
cmp edx, 0xfc04dcc5
jne 0x5742e5
mov edx, 0x87fb68d6
jmp 0x5742e5
cmp edx, 0x2601f5a7
je 0x57433f
cmp edx, 0x5a893bc4
jne 0x5742e5
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, bl
xor dh, dl
mov ecx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne ecx, eax
test dl, dl
mov edx, ecx
cmovne edx, eax
test bl, bl
cmove edx, ecx
jmp 0x5742e5
mov edx, edi
jmp 0x5742e5
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x57455a
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x574385
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x57455a
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x34], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x574459
mov eax, dword [esi + 0x24]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0xc], ecx
mov edi, dword [esi + 0xc]
test edi, edi
sete al
mov ebx, dword [esi + 4]
cmp ebx, 0xa
setl cl
xor cl, al
mov eax, 0x4c6ca682
mov edx, 0x6707b2cf
cmovne eax, edx
test edi, edi
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge ecx, eax
mov eax, 0x1b272c9a
jmp 0x5743f8
mov eax, ecx
cmp eax, 0x4c6ca681
jle 0x57440f
cmp eax, 0x4c6ca682
je 0x574449
cmp eax, 0x6707b2cf
jne 0x5743f8
jmp 0x574450
cmp eax, 0xf74fd645
je 0x5743f6
cmp eax, 0x1b272c9a
jne 0x5743f8
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne eax, ebx
test dl, dl
mov edi, 0x4c6ca682
cmove eax, edi
test dh, dh
cmovne eax, ebx
jmp 0x5743f8
mov eax, 0xf74fd645
jmp 0x5743f8
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
mov dword [esi + 0xc], ecx
sete byte [esi + 0x10]
sete bl
mov eax, 0x4c6ca682
mov ecx, 0x6707b2cf
cmove eax, ecx
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl bh
mov edx, 0x4c6ca682
cmovge eax, edx
xor bh, bl
cmovne eax, ecx
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x5744b7
cmp ebx, 0x4c6ca682
je 0x5744f2
cmp ebx, 0x6707b2cf
jne 0x57449d
jmp 0x5744fd
cmp ebx, 0xf74fd645
je 0x5744f9
cmp ebx, 0x1b272c9a
jne 0x57449d
movzx ecx, byte [esi + 0x10]
mov dh, byte [esi + 0x28]
mov dl, cl
xor dl, dh
test dh, dh
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test cl, cl
mov ecx, 0x4c6ca682
cmove ebx, ecx
test dl, dl
cmovne ebx, edi
jmp 0x57449d
mov ebx, 0xf74fd645
jmp 0x57449d
mov ebx, eax
jmp 0x57449d
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x5743ba
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x574373
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x574373
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x34], 0xa
setl cl
test cl, al
jne 0x574581
xor cl, al
je 0x59176a
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x5745cc
cmp eax, 0xcd5e6053
je 0x574621
cmp eax, 0x18ed46ca
jne 0x5745aa
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x5745aa
cmp eax, 0x5499d804
je 0x574650
cmp eax, 0x685e39a2
jne 0x5745aa
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x5745aa
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x5745aa
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf6c4], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x574276
or cl, al
je 0x574276
jmp 0x59176c
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
mov edi, dword [esi + 0x5c]
test dh, dl
jne 0x57371e
xor dh, dl
mov edi, dword [esi + 0x5c]
jne 0x57371e
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
setne bl
cmp ecx, 0xa
setl bh
setge dl
or dl, bl
cmp bh, dh
jne 0x574717
test dl, dl
jne 0x5746cd
mov edi, dword [esi + 0x5c]
jmp 0x57371e
mov edi, dword [esi + 0x5c]
jmp 0x57371e
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete ah
cmp ecx, 0xa
setge al
setl cl
xor cl, ah
jne 0x574742
or al, dl
test al, 1
jne 0x59174c
mov esp, dword [esi + 0x9c]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
setne dh
sete bl
cmp ecx, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
xor dl, 1
or dl, bh
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x6c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x574778
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x5757af
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x574844
xor dl, al
je 0x59175c
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x574e0f
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x98], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x57480a
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x10]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov edx, dword [esi + 8]
mov dword [ecx], edx
mov edx, dword [esi + 4]
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x98]
mov dword [ecx + 8], edx
setl byte [esi + 0x28]
mov edx, dword [esi + 0xc]
mov dword [ecx + 0xc], edx
cmovge eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x574948
cmp ecx, 0x20e9c049
je 0x57495f
cmp ecx, 0x3b23d0b1
jne 0x57492e
jmp 0x57498f
cmp ecx, 0x9c6e8745
je 0x574963
cmp ecx, 0xeb760989
jne 0x57492e
mov ecx, 0x20e9c049
jmp 0x57492e
mov ecx, eax
jmp 0x57492e
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57492e
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x574a25
cmp ecx, 0xcfcad29c
je 0x574a68
cmp ecx, 0x3aca7e6
jne 0x574a09
mov ecx, eax
jmp 0x574a09
cmp ecx, 0x7c4a5f2
je 0x574a61
cmp ecx, 0x389c0e25
jne 0x574a09
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x574a09
mov ecx, 0x3aca7e6
jmp 0x574a09
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xbd
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xbf
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x574b10
cmp eax, 0xc6e82640
je 0x574b73
cmp eax, 0x950d98a
jne 0x574acb
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x574acb
cmp eax, 0x31a61df5
je 0x574b2d
cmp eax, 0x4d86efb0
jne 0x574acb
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x574acb
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x574acb
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x98]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf6cc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x574bf2
cmp ecx, 0x20e9c049
je 0x574c09
cmp ecx, 0x3b23d0b1
jne 0x574bd8
jmp 0x574c34
cmp ecx, 0x9c6e8745
je 0x574c0d
cmp ecx, 0xeb760989
jne 0x574bd8
mov ecx, 0x20e9c049
jmp 0x574bd8
mov ecx, eax
jmp 0x574bd8
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x574bd8
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x6c]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x80]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x64]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x574ccb
cmp ecx, 0xcfcad29c
je 0x574d09
cmp ecx, 0x3aca7e6
jne 0x574caf
mov ecx, eax
jmp 0x574caf
cmp ecx, 0x7c4a5f2
je 0x574d02
cmp ecx, 0x389c0e25
jne 0x574caf
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x574caf
mov ecx, 0x3aca7e6
jmp 0x574caf
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xbd
mov ecx, dword [esi + 0x6c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xbe
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x6c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x574dac
cmp eax, 0xc6e82640
je 0x57480a
cmp eax, 0x950d98a
jne 0x574d6c
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x574d6c
cmp eax, 0x31a61df5
je 0x574dc9
cmp eax, 0x4d86efb0
jne 0x574d6c
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x574d6c
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x574d6c
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x575155
mov dword [esi + 0x58], 1
jmp 0x574e56
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x575155
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x58]
mov dword [esi + 8], edx
test cl, al
jne 0x574ea0
xor cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 8], eax
jne 0x574ea0
jmp 0x59175e
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0xc]
call fcn.00433980
cmp dword [esi + 8], 0
je 0x575118
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0xc], ecx
mov dword [esi + 0x24], eax
test eax, ecx
sete byte [esi + 0x10]
mov ebx, 0xbf25ae54
mov ecx, 0x20ab24e5
cmove ebx, ecx
sete al
mov dword [esi + 4], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ebx, edx
setl dl
xor dl, al
mov eax, dword [esi + 0x3c]
mov edi, dword [eax]
mov eax, dword [esi + 8]
lea edx, [eax + eax*2]
mov dword [esi + 0x34], edi
lea eax, [edi + edx*4]
mov dword [esi + 0x38], eax
cmovne ebx, ecx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x574f1f
cmp edx, 0xffb13445
je 0x574f5b
cmp edx, 0x20ab24e5
jne 0x574f05
jmp 0x574f66
cmp edx, 0xbf25ae54
je 0x574f5f
cmp edx, 0xe6642f9a
jne 0x574f05
movzx ecx, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ch, cl
xor ch, dl
test dl, dl
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test cl, cl
mov eax, 0xbf25ae54
cmove edx, eax
test ch, ch
cmovne edx, edi
jmp 0x574f05
mov edx, ebx
jmp 0x574f05
mov edx, 0xffb13445
jmp 0x574f05
mov eax, dword [esi + 8]
dec eax
mov ecx, dword [esi + 0x24]
test dword [esi + 0xc], ecx
mov ecx, dword [esi + 0x38]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov ecx, dword [ecx]
mov edx, dword [ecx]
mov dword [esi + 0x48], edx
mov ecx, dword [ecx + 4]
mov dword [esi + 0x40], ecx
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov dword [esi + 8], eax
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x34]
lea eax, [eax + ecx*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x574fbd
cmp eax, 0xffb13445
je 0x574ff2
cmp eax, 0x20ab24e5
jne 0x574fa6
jmp 0x574ffd
cmp eax, 0xbf25ae54
je 0x574ff6
cmp eax, 0xe6642f9a
jne 0x574fa6
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x574fa6
mov eax, ebx
jmp 0x574fa6
mov eax, 0xffb13445
jmp 0x574fa6
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x48]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x40]
sbb ecx, dword [eax + 4]
jge 0x575118
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x57504a
cmp edx, 0xffb13445
je 0x575086
cmp edx, 0x20ab24e5
jne 0x575030
jmp 0x575091
cmp edx, 0xbf25ae54
je 0x57508a
cmp edx, 0xe6642f9a
jne 0x575030
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ah, cl
xor ah, al
test cl, cl
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov ecx, 0xbf25ae54
cmove edx, ecx
test ah, ah
cmovne edx, edi
jmp 0x575030
mov edx, ebx
jmp 0x575030
mov edx, 0xffb13445
jmp 0x575030
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x5750d1
cmp ecx, 0xffb13445
je 0x57510d
cmp ecx, 0x20ab24e5
jne 0x5750b4
jmp 0x574e85
cmp ecx, 0xbf25ae54
je 0x575111
cmp ecx, 0xe6642f9a
jne 0x5750b4
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ah, cl
xor ah, al
test cl, cl
mov ecx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ecx, edx
test al, al
mov edi, 0xbf25ae54
cmove ecx, edi
test ah, ah
cmovne ecx, edx
jmp 0x5750b4
mov ecx, ebx
jmp 0x5750b4
mov ecx, 0xffb13445
jmp 0x5750b4
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete ah
setne al
cmp edi, 0xa
setl dh
setge dl
cmp dh, ah
jne 0x574e34
or dl, al
je 0x574e34
jmp 0x591760
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x5751a8
cmp edi, 0x88e9608c
je 0x5751e7
cmp edi, 0xdf32ec89
jne 0x575184
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x575184
cmp edi, 0x30b7124c
je 0x57523d
cmp edi, 0x124998e2
jne 0x575184
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x575184
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
mov dword [esi + 4], edi
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov edi, 0xdf32ec89
mov ebx, 0x30b7124c
cmove edi, ebx
sete cl
mov dword [esi + 8], edx
cmp edx, 0xa
mov edx, 0xdf32ec89
cmovge edi, edx
setl dl
xor dl, cl
cmovne edi, ebx
jmp 0x575184
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x57528b
cmp ecx, 0x88e9608c
je 0x5752c2
cmp ecx, 0xdf32ec89
jne 0x575267
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x575267
cmp ecx, 0x30b7124c
je 0x57530f
cmp ecx, 0x124998e2
jne 0x575267
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x575267
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x575267
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x57533f
or cl, al
test cl, 1
jne 0x591762
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x57571c
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov edi, dword [eax]
mov dword [esi + 8], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x5753cc
cmp edx, 0x87fb68d6
je 0x575408
cmp edx, 0xfc04dcc5
jne 0x5753ad
mov edx, 0x87fb68d6
jmp 0x5753ad
cmp edx, 0x2601f5a7
je 0x57540c
cmp edx, 0x5a893bc4
jne 0x5753ad
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, bl
xor bh, dl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x5753ad
mov edx, ecx
jmp 0x5753ad
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x575622
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x575452
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x575622
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x34], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x575525
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
mov dword [esi + 0xc], ecx
cmp dword [esi + 0xc], 0
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
mov eax, 0x1b272c9a
jmp 0x5754c4
mov eax, ecx
cmp eax, 0x4c6ca681
jle 0x5754db
cmp eax, 0x4c6ca682
je 0x575515
cmp eax, 0x6707b2cf
jne 0x5754c4
jmp 0x57551c
cmp eax, 0xf74fd645
je 0x5754c2
cmp eax, 0x1b272c9a
jne 0x5754c4
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne eax, ebx
test dl, dl
mov edi, 0x4c6ca682
cmove eax, edi
test dh, dh
cmovne eax, ebx
jmp 0x5754c4
mov eax, 0xf74fd645
jmp 0x5754c4
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x24]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0xc], ecx
sete byte [esi + 0x10]
sete bl
mov eax, 0x4c6ca682
mov ecx, 0x6707b2cf
cmove eax, ecx
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl bh
mov edx, 0x4c6ca682
cmovge eax, edx
xor bh, bl
cmovne eax, ecx
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x57557f
cmp ebx, 0x4c6ca682
je 0x5755ba
cmp ebx, 0x6707b2cf
jne 0x575565
jmp 0x5755c5
cmp ebx, 0xf74fd645
je 0x5755c1
cmp ebx, 0x1b272c9a
jne 0x575565
movzx ecx, byte [esi + 0x10]
mov dh, byte [esi + 0x28]
mov dl, cl
xor dl, dh
test dh, dh
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test cl, cl
mov ecx, 0x4c6ca682
cmove ebx, ecx
test dl, dl
cmovne ebx, edi
jmp 0x575565
mov ebx, 0xf74fd645
jmp 0x575565
mov ebx, eax
jmp 0x575565
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x57548b
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x575440
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x575440
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [esi + 0x34], 0xa
setge cl
setl ch
xor ch, dl
jne 0x575649
or cl, al
test cl, 1
jne 0x591764
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x575694
cmp eax, 0xcd5e6053
je 0x5756ed
cmp eax, 0x18ed46ca
jne 0x575672
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x575672
cmp eax, 0x5499d804
je 0x57530f
cmp eax, 0x685e39a2
jne 0x575672
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x575672
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x575672
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dl
sete bl
cmp ecx, 0xa
setge dh
setl bh
xor bh, bl
mov edi, dword [esi + 0x5c]
jne 0x5747dc
or dh, dl
mov edi, dword [esi + 0x5c]
je 0x5747dc
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp ecx, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x5757a7
test dl, dl
je 0x575761
mov edi, dword [esi + 0x5c]
jmp 0x5747dc
mov edi, dword [esi + 0x5c]
jmp 0x5747dc
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete ah
cmp ecx, 0xa
setge al
setl cl
xor cl, ah
jne 0x5757d2
or al, dl
test al, 1
jne 0x59174e
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dh
cmp eax, 0xa
setge dl
mov ebx, edx
xor bl, dh
or dl, dh
xor dl, 1
or dl, bl
push eax
sub esp, 8
mov dword [esi + 8], esp
sub esp, 0xc
mov dword [esi + 0x40], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x3c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x575804
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x576887
mov ecx, dword [esi + 8]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x48], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x38], eax
mov dword [esi + 0x34], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete ah
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
mov ebx, dword [esi + 0x34]
mov dword [esi + 0xc], ebx
mov ebx, dword [esi + 0x38]
mov dword [esi + 4], ebx
jne 0x5758d6
or dl, al
jne 0x591752
mov edx, dword [esi + 4]
mov eax, edx
imul eax, dword [esi + 0xc]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x48]
sbb eax, 0
jae 0x575ea9
mov eax, dword [esi + 0x48]
mov edi, dword [esi + 4]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x6c], eax
mov eax, 0
mov ebx, dword [esi + 0xc]
sbb eax, ebx
mov dword [esi + 0x4c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0x24], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x98], eax
mov edx, eax
mov dword [esi + 0x34], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0x38], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x6c]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
sbb ecx, edx
or ecx, eax
jne 0x575896
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x10]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov edx, dword [esi + 4]
mov dword [ecx], edx
mov edx, dword [esi + 0xc]
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x98]
mov dword [ecx + 8], edx
setl byte [esi + 0x28]
mov edx, dword [esi + 0x24]
mov dword [ecx + 0xc], edx
cmovge eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x5759da
cmp ecx, 0x20e9c049
je 0x5759f1
cmp ecx, 0x3b23d0b1
jne 0x5759c0
jmp 0x575a21
cmp ecx, 0x9c6e8745
je 0x5759f5
cmp ecx, 0xeb760989
jne 0x5759c0
mov ecx, 0x20e9c049
jmp 0x5759c0
mov ecx, eax
jmp 0x5759c0
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5759c0
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x40]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x575ab7
cmp ecx, 0xcfcad29c
je 0x575afa
cmp ecx, 0x3aca7e6
jne 0x575a9b
mov ecx, eax
jmp 0x575a9b
cmp ecx, 0x7c4a5f2
je 0x575af3
cmp ecx, 0x389c0e25
jne 0x575a9b
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x575a9b
mov ecx, 0x3aca7e6
jmp 0x575a9b
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xc0
mov ecx, dword [esi + 0x40]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xc2
mov ecx, dword [esi + 8]
push dword [esi + 0x40]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x575b9d
cmp eax, 0xc6e82640
je 0x575c01
cmp eax, 0x950d98a
jne 0x575b5d
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x575b5d
cmp eax, 0x31a61df5
je 0x575bba
cmp eax, 0x4d86efb0
jne 0x575b5d
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x575b5d
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x575b5d
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0x24]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x98]
mov dword [ebx], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf6cc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, dword [esi + 4]
mov dword [ebx + 8], ecx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x575c80
cmp ecx, 0x20e9c049
je 0x575c97
cmp ecx, 0x3b23d0b1
jne 0x575c66
jmp 0x575cc7
cmp ecx, 0x9c6e8745
je 0x575c9b
cmp ecx, 0xeb760989
jne 0x575c66
mov ecx, 0x20e9c049
jmp 0x575c66
mov ecx, eax
jmp 0x575c66
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x575c66
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax - 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x3c]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x80]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x64]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x575d5e
cmp ecx, 0xcfcad29c
je 0x575d9c
cmp ecx, 0x3aca7e6
jne 0x575d42
mov ecx, eax
jmp 0x575d42
cmp ecx, 0x7c4a5f2
je 0x575d95
cmp ecx, 0x389c0e25
jne 0x575d42
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x575d42
mov ecx, 0x3aca7e6
jmp 0x575d42
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xc0
mov ecx, dword [esi + 0x3c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xc1
mov ecx, dword [esi + 8]
push dword [esi + 0x3c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x575e3f
cmp eax, 0xc6e82640
je 0x575896
cmp eax, 0x950d98a
jne 0x575dff
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x575dff
cmp eax, 0x31a61df5
je 0x575e5c
cmp eax, 0x4d86efb0
jne 0x575dff
mov ecx, dword [esi + 0x3c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x575dff
mov ecx, dword [esi + 0x3c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x575dff
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x5761db
mov dword [esi + 0x6c], 1
jmp 0x575ef0
mov ebx, dword [esi + 0x6c]
inc ebx
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x6c], ebx
cmp ebx, edx
jae 0x5761db
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp edi, 0xa
setl ch
setge cl
mov edi, dword [esi + 0x6c]
mov dword [esi + 0xc], edi
cmp ch, dl
jne 0x575f39
or cl, al
mov eax, dword [esi + 0x6c]
mov dword [esi + 0xc], eax
test cl, 1
je 0x575f39
jmp 0x591754
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edi
call fcn.00433980
cmp dword [esi + 0xc], 0
je 0x5761a3
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax - 1]
imul edi, eax
mov eax, edi
and eax, 1
sete al
cmp ebx, 0xa
setl cl
xor cl, al
mov eax, 0xbf25ae54
mov ecx, 0x20ab24e5
cmovne eax, ecx
and edi, 1
sete byte [esi + 0x10]
mov edx, eax
cmove edx, ecx
mov dword [esi + 0x24], ebx
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov dword [esi + 4], edx
mov eax, dword [esi + 8]
mov ecx, dword [eax]
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*2]
mov dword [esi + 0x34], ecx
lea eax, [ecx + eax*4]
mov dword [esi + 0x38], eax
mov ebx, 0xe6642f9a
cmp ebx, 0xffb13444
jle 0x575fb6
cmp ebx, 0xffb13445
je 0x575ff1
cmp ebx, 0x20ab24e5
jne 0x575f9c
jmp 0x575ffd
cmp ebx, 0xbf25ae54
je 0x575ff6
cmp ebx, 0xe6642f9a
jne 0x575f9c
movzx ecx, byte [esi + 0x10]
mov ah, byte [esi + 0x28]
mov al, cl
xor al, ah
test ah, ah
mov ebx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ebx, edx
test cl, cl
mov ecx, 0xbf25ae54
cmove ebx, ecx
test al, al
cmovne ebx, edx
jmp 0x575f9c
mov ebx, dword [esi + 4]
jmp 0x575f9c
mov ebx, 0xffb13445
jmp 0x575f9c
mov ecx, dword [esi + 0xc]
dec ecx
test edi, edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x4c], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x48], eax
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov dword [esi + 0xc], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x34]
lea eax, [ecx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x576050
cmp eax, 0xffb13445
je 0x576085
cmp eax, 0x20ab24e5
jne 0x576039
jmp 0x576091
cmp eax, 0xbf25ae54
je 0x57608a
cmp eax, 0xe6642f9a
jne 0x576039
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov edx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edx, ebx
test al, al
mov eax, edx
cmovne eax, ebx
test cl, cl
cmove eax, edx
jmp 0x576039
mov eax, dword [esi + 4]
jmp 0x576039
mov eax, 0xffb13445
jmp 0x576039
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x4c]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x48]
sbb ecx, dword [eax + 4]
jge 0x5761a3
test edi, edi
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov ebx, 0xe6642f9a
cmp ebx, 0xffb13444
jle 0x5760da
cmp ebx, 0xffb13445
je 0x576116
cmp ebx, 0x20ab24e5
jne 0x5760c0
jmp 0x576122
cmp ebx, 0xbf25ae54
je 0x57611b
cmp ebx, 0xe6642f9a
jne 0x5760c0
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov edx, ecx
xor dl, al
test cl, cl
mov ebx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne ebx, ecx
test al, al
mov eax, 0xbf25ae54
cmove ebx, eax
test dl, dl
cmovne ebx, ecx
jmp 0x5760c0
mov ebx, dword [esi + 4]
jmp 0x5760c0
mov ebx, 0xffb13445
jmp 0x5760c0
test edi, edi
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov edi, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x57615b
cmp ecx, 0xffb13445
je 0x576197
cmp ecx, 0x20ab24e5
jne 0x57613e
jmp 0x575f20
cmp ecx, 0xbf25ae54
je 0x57619c
cmp ecx, 0xe6642f9a
jne 0x57613e
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov edx, ecx
xor dl, al
test cl, cl
mov ecx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne ecx, ebx
test al, al
mov eax, 0xbf25ae54
cmove ecx, eax
test dl, dl
cmovne ecx, ebx
jmp 0x57613e
mov ecx, dword [esi + 4]
jmp 0x57613e
mov ecx, 0xffb13445
jmp 0x57613e
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
cmp edi, 0xa
setge dl
setl bl
xor bl, dh
jne 0x575ece
or dl, al
test dl, 1
je 0x575ece
jmp 0x591756
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x57622c
cmp edi, 0x88e9608c
je 0x576271
cmp edi, 0xdf32ec89
jne 0x576208
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x576208
cmp edi, 0x30b7124c
je 0x5762c9
cmp edi, 0x124998e2
jne 0x576208
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, cl
xor bh, bl
test cl, cl
mov edi, 0xdf32ec89
mov ecx, 0x88e9608c
cmovne edi, ecx
test bl, bl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bh, bh
mov ecx, 0x88e9608c
cmovne edi, ecx
jmp 0x576208
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 4], ebx
cmp ebx, 0xa
mov ebx, 0xdf32ec89
cmovge edi, ebx
setl ch
xor ch, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x576208
lea eax, [edx - 1]
imul eax, edx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x576315
cmp ecx, 0x88e9608c
je 0x576355
cmp ecx, 0xdf32ec89
jne 0x5762f1
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x5762f1
cmp ecx, 0x30b7124c
je 0x5763a8
cmp ecx, 0x124998e2
jne 0x5762f1
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5762f1
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov edi, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne edi, ebx
cmp ecx, 0xffffffff
mov ecx, edi
cmove ecx, ebx
cmp edx, 0xa
cmovge ecx, edi
mov edx, dword [esi + 0x18]
jmp 0x5762f1
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf6c4], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x5763dc
or cl, al
jne 0x59175a
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x5767f3
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea ecx, [edi - 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmovne ebx, edi
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
mov edi, ebx
mov ecx, 0x2601f5a7
cmove edi, ecx
cmp edx, 0xa
setl byte [esi + 0x18]
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov dword [esi + 4], ecx
cmovge edi, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x57646d
cmp edx, 0x87fb68d6
je 0x5764a4
cmp edx, 0xfc04dcc5
jne 0x57644e
mov edx, 0x87fb68d6
jmp 0x57644e
cmp edx, 0x2601f5a7
je 0x5764a8
cmp edx, 0x5a893bc4
jne 0x57644e
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, bl
xor dh, dl
mov ecx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne ecx, eax
test dl, dl
mov edx, ecx
cmovne edx, eax
test bl, bl
cmove edx, ecx
jmp 0x57644e
mov edx, edi
jmp 0x57644e
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x4c], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x48], eax
mov dword [esi + 0x6c], ecx
cmp dword [esi + 4], ecx
je 0x5766b8
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x5764ee
mov eax, dword [esi + 4]
add eax, 8
mov dword [esi + 4], eax
cmp eax, dword [esi + 0x6c]
je 0x5766b8
mov ecx, dword [esi + 0x4c]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x48], 0xa
setl cl
or cl, al
mov byte [esi + 0x34], cl
jne 0x5765bb
mov ecx, dword [esi + 0x38]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
mov dword [esi + 0x24], ecx
cmp dword [esi + 0x24], 0
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
mov eax, 0x1b272c9a
jmp 0x57655f
mov eax, ecx
cmp eax, 0x4c6ca681
jle 0x576576
cmp eax, 0x4c6ca682
je 0x5765ab
cmp eax, 0x6707b2cf
jne 0x57655f
jmp 0x5765b2
cmp eax, 0xf74fd645
je 0x57655d
cmp eax, 0x1b272c9a
jne 0x57655f
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test al, al
mov eax, edi
cmovne eax, ebx
test dl, dl
cmove eax, edi
jmp 0x57655f
mov eax, 0xf74fd645
jmp 0x57655f
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x38]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0x24], ecx
sete byte [esi + 0x10]
sete bl
mov eax, 0x4c6ca682
mov ecx, 0x6707b2cf
cmove eax, ecx
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl bh
mov edx, 0x4c6ca682
cmovge eax, edx
xor bh, bl
cmovne eax, ecx
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x576615
cmp ebx, 0x4c6ca682
je 0x576650
cmp ebx, 0x6707b2cf
jne 0x5765fb
jmp 0x57665b
cmp ebx, 0xf74fd645
je 0x576657
cmp ebx, 0x1b272c9a
jne 0x5765fb
movzx ecx, byte [esi + 0x10]
mov dh, byte [esi + 0x28]
mov dl, cl
xor dl, dh
test dh, dh
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test cl, cl
mov ecx, 0x4c6ca682
cmove ebx, ecx
test dl, dl
cmovne ebx, edi
jmp 0x5765fb
mov ebx, 0xf74fd645
jmp 0x5765fb
mov ebx, eax
jmp 0x5765fb
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x34], 0
je 0x576526
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x5764dc
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x4c], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x5764dc
mov ecx, dword [esi + 0x4c]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne al
sete dl
cmp dword [esi + 0x48], 0xa
setge cl
setl ah
xor ah, dl
jne 0x5766e4
or cl, al
jne 0x591758
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x57672e
cmp eax, 0xcd5e6053
je 0x57678c
cmp eax, 0x18ed46ca
jne 0x57670c
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x57670c
cmp eax, 0x5499d804
je 0x5767bb
cmp eax, 0x685e39a2
jne 0x57670c
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x18ed46ca
mov ebx, 0x5499d804
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x57670c
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x57670c
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x5763dc
xor cl, al
jne 0x5763dc
jmp 0x59175a
mov ecx, dword [esi + 8]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete bl
setne dl
cmp eax, 0xa
setl bh
setge dh
mov edi, dword [esi + 0x5c]
cmp bh, bl
jne 0x575868
or dh, dl
mov edi, dword [esi + 0x5c]
je 0x575868
mov edi, dword [esi + 8]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp eax, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x57687f
test dl, dl
je 0x576838
mov edi, dword [esi + 0x5c]
jmp 0x575868
mov edi, dword [esi + 0x5c]
jmp 0x575868
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x5768aa
xor al, cl
je 0x591750
mov esp, dword [esi + 0xa0]
mov edx, dword [0x5d21a8]
mov ecx, dword [0x5d21ac]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x5af2d6e3
mov edi, 0xbf311110
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x572bcb
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [0x5cf5f4], 0xa
setl dl
test dl, cl
jne 0x576930
xor dl, cl
jne 0x576930
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x5768f5
cmp byte [eax + 0x2d0], 0x30
jne 0x576991
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x576991
xor cl, al
jne 0x576991
push 0
push 0
mov edi, dword [sym.imp.KERNEL32.dll_Beep]
call edi
push 0
push 0
call edi
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
jmp 0x576955
mov ecx, dword [esi + 4]
call fcn.0040ed30
mov esp, dword [esi + 0x3c]
mov dword [esi + 0xa0], esp
mov dword [esi + 0x9c], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov ecx, dword [0x5cf6c4]
sete dh
cmp ecx, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 0x40], esp
sub esp, 0xc
mov dword [esi + 0x48], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x54], edi
mov esp, edi
push eax
mov dword [esi + 0x64], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
push eax
mov dword [esi + 0x6c], esp
push eax
mov dword [esi + 0x88], esp
test dl, dl
je 0x5769cc
mov edx, dword [esi + 0x54]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x577a42
mov ecx, dword [esi + 0x40]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete ah
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
mov ebx, dword [esi + 0x38]
mov dword [esi + 4], ebx
mov ebx, dword [esi + 0x24]
mov dword [esi + 8], ebx
jne 0x576a9e
or dl, al
jne 0x59170a
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x577074
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x60], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x3c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x98], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x60]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x3c]
sbb ecx, edx
or ecx, eax
jne 0x576a5e
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x54]
mov edi, dword [esi + 8]
mov dword [ecx], edi
mov edi, dword [esi + 4]
mov dword [ecx + 4], edi
mov edi, dword [esi + 0x98]
mov dword [ecx + 8], edi
setl byte [esi + 0x28]
mov edi, dword [esi + 0xc]
mov dword [ecx + 0xc], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x576ba4
cmp ecx, 0x20e9c049
je 0x576bbb
cmp ecx, 0x3b23d0b1
jne 0x576b8a
jmp 0x576beb
cmp ecx, 0x9c6e8745
je 0x576bbf
cmp ecx, 0xeb760989
jne 0x576b8a
mov ecx, 0x20e9c049
jmp 0x576b8a
mov ecx, eax
jmp 0x576b8a
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x576b8a
mov eax, dword [esi + 0x64]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x48]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x576c7e
cmp ecx, 0xcfcad29c
je 0x576cc1
cmp ecx, 0x3aca7e6
jne 0x576c62
mov ecx, eax
jmp 0x576c62
cmp ecx, 0x7c4a5f2
je 0x576cba
cmp ecx, 0x389c0e25
jne 0x576c62
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x576c62
mov ecx, 0x3aca7e6
jmp 0x576c62
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xc4
mov ecx, dword [esi + 0x48]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xc6
mov ecx, dword [esi + 0x40]
push dword [esi + 0x48]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x576d69
cmp eax, 0xc6e82640
je 0x576dcc
cmp eax, 0x950d98a
jne 0x576d24
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x576d24
cmp eax, 0x31a61df5
je 0x576d86
cmp eax, 0x4d86efb0
jne 0x576d24
mov ecx, dword [esi + 0x48]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x576d24
mov ecx, dword [esi + 0x48]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x576d24
mov ebx, dword [esi + 0x68]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x98]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf6cc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x576e4b
cmp ecx, 0x20e9c049
je 0x576e62
cmp ecx, 0x3b23d0b1
jne 0x576e31
jmp 0x576e8d
cmp ecx, 0x9c6e8745
je 0x576e66
cmp ecx, 0xeb760989
jne 0x576e31
mov ecx, 0x20e9c049
jmp 0x576e31
mov ecx, eax
jmp 0x576e31
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x576e31
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x576f26
cmp ecx, 0xcfcad29c
je 0x576f69
cmp ecx, 0x3aca7e6
jne 0x576f0a
mov ecx, eax
jmp 0x576f0a
cmp ecx, 0x7c4a5f2
je 0x576f62
cmp ecx, 0x389c0e25
jne 0x576f0a
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x576f0a
mov ecx, 0x3aca7e6
jmp 0x576f0a
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xc4
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xc5
mov ecx, dword [esi + 0x40]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x57700c
cmp eax, 0xc6e82640
je 0x576a5e
cmp eax, 0x950d98a
jne 0x576fcc
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x576fcc
cmp eax, 0x31a61df5
je 0x577029
cmp eax, 0x4d86efb0
jne 0x576fcc
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x576fcc
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x576fcc
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x57739a
mov dword [esi + 0x60], 1
jmp 0x5770bb
mov ebx, dword [esi + 0x60]
inc ebx
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x60], ebx
cmp ebx, edx
jae 0x57739a
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x60]
mov dword [esi + 8], edx
test cl, al
jne 0x577106
xor cl, al
mov eax, dword [esi + 0x60]
mov dword [esi + 8], eax
jne 0x577106
jmp 0x591744
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0xc]
call fcn.00433980
cmp dword [esi + 8], 0
je 0x577362
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0xc], ecx
sete byte [esi + 0x10]
sete al
mov ecx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove ecx, ebx
mov dword [esi + 4], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ecx, edx
setl dl
xor dl, al
mov eax, dword [esi + 0x40]
mov edi, dword [eax]
mov eax, dword [esi + 8]
lea edx, [eax + eax*2]
mov dword [esi + 0x38], edi
lea eax, [edi + edx*4]
mov dword [esi + 0x24], eax
cmovne ecx, ebx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x57717e
cmp edx, 0xffb13445
je 0x5771ba
cmp edx, 0x20ab24e5
jne 0x577164
jmp 0x5771c5
cmp edx, 0xbf25ae54
je 0x5771be
cmp edx, 0xe6642f9a
jne 0x577164
movzx ebx, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov bh, bl
xor bh, dl
test dl, dl
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test bl, bl
mov eax, 0xbf25ae54
cmove edx, eax
test bh, bh
cmovne edx, edi
jmp 0x577164
mov edx, ecx
jmp 0x577164
mov edx, 0xffb13445
jmp 0x577164
mov eax, dword [esi + 8]
dec eax
cmp dword [esi + 0xc], 0
mov edx, dword [esi + 0x24]
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x18]
mov ebx, dword [edx]
mov edx, dword [ebx]
mov dword [esi + 0x3c], edx
mov edx, dword [ebx + 4]
mov dword [esi + 0x34], edx
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov dword [esi + 8], eax
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x38]
lea eax, [eax + edx*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x57721a
cmp eax, 0xffb13445
je 0x577254
cmp eax, 0x20ab24e5
jne 0x577203
jmp 0x57725f
cmp eax, 0xbf25ae54
je 0x577258
cmp eax, 0xe6642f9a
jne 0x577203
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test dl, dl
mov ebx, 0xbf25ae54
cmove eax, ebx
test dh, dh
cmovne eax, edi
jmp 0x577203
mov eax, ecx
jmp 0x577203
mov eax, 0xffb13445
jmp 0x577203
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [esi + 0x3c]
cmp edx, dword [eax]
mov edx, dword [esi + 0x34]
sbb edx, dword [eax + 4]
jge 0x577362
cmp dword [esi + 0xc], 0
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5772a7
cmp eax, 0xffb13445
je 0x5772dc
cmp eax, 0x20ab24e5
jne 0x577290
jmp 0x5772e7
cmp eax, 0xbf25ae54
je 0x5772e0
cmp eax, 0xe6642f9a
jne 0x577290
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ebx, edi
test al, al
mov eax, ebx
cmovne eax, edi
test dl, dl
cmove eax, ebx
jmp 0x577290
mov eax, ecx
jmp 0x577290
mov eax, 0xffb13445
jmp 0x577290
cmp dword [esi + 0xc], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x577322
cmp eax, 0xffb13445
je 0x577357
cmp eax, 0x20ab24e5
jne 0x577308
jmp 0x5770eb
cmp eax, 0xbf25ae54
je 0x57735b
cmp eax, 0xe6642f9a
jne 0x577308
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edi, 0xbf25ae54
mov edx, 0xffb13445
cmovne edi, edx
test al, al
mov eax, edi
cmovne eax, edx
test bl, bl
cmove eax, edi
jmp 0x577308
mov eax, ecx
jmp 0x577308
mov eax, 0xffb13445
jmp 0x577308
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
cmp edi, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x577099
or dl, al
test dl, 1
je 0x577099
jmp 0x591746
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x5773ed
cmp edi, 0x88e9608c
je 0x57742c
cmp edi, 0xdf32ec89
jne 0x5773c9
mov ecx, dword [esi + 0x6c]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x5773c9
cmp edi, 0x30b7124c
je 0x577482
cmp edi, 0x124998e2
jne 0x5773c9
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x5773c9
mov ecx, dword [esi + 0x6c]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
mov dword [esi + 4], edi
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov edi, 0xdf32ec89
mov ebx, 0x30b7124c
cmove edi, ebx
sete cl
mov dword [esi + 8], edx
cmp edx, 0xa
mov edx, 0xdf32ec89
cmovge edi, edx
setl dl
xor dl, cl
cmovne edi, ebx
jmp 0x5773c9
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x40]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x5774d3
cmp ecx, 0x88e9608c
je 0x577513
cmp ecx, 0xdf32ec89
jne 0x5774ac
mov ecx, dword [esi + 0x88]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x5774ac
cmp ecx, 0x30b7124c
je 0x577569
cmp ecx, 0x124998e2
jne 0x5774ac
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5774ac
mov ecx, dword [esi + 0x88]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov edi, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne edi, ebx
cmp ecx, 0xffffffff
mov ecx, edi
cmove ecx, ebx
cmp edx, 0xa
cmovge ecx, edi
mov edx, dword [esi + 0x18]
jmp 0x5774ac
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x57759d
or cl, al
jne 0x59174a
mov eax, dword [esi + 0x6c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x88]
cmp eax, dword [ecx]
je 0x5779b5
mov ecx, dword [esi + 0x6c]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov eax, dword [eax]
mov dword [esi + 8], eax
mov eax, 0xfc04dcc5
cmovge ecx, eax
xor dl, bl
cmovne ecx, edi
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x577629
cmp edx, 0x87fb68d6
je 0x577665
cmp edx, 0xfc04dcc5
jne 0x57760a
mov edx, 0x87fb68d6
jmp 0x57760a
cmp edx, 0x2601f5a7
je 0x577669
cmp edx, 0x5a893bc4
jne 0x57760a
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, bl
xor bh, dl
test dl, dl
mov edx, 0xfc04dcc5
mov edi, 0x87fb68d6
cmovne edx, edi
test bl, bl
mov eax, 0xfc04dcc5
cmove edx, eax
test bh, bh
cmovne edx, edi
jmp 0x57760a
mov edx, ecx
jmp 0x57760a
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
cmp dword [esi + 8], ecx
je 0x57788c
mov eax, dword [0x5cf6f0]
mov dword [esi + 0xc], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x5776af
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x3c]
je 0x57788c
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne cl
sete dl
cmp dword [esi + 0x38], 0xa
setge al
setl ah
xor ah, dl
or al, cl
xor al, 1
or al, ah
mov byte [esi + 0x24], al
jne 0x577788
mov eax, dword [esi + 0xc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
test ecx, ecx
sete al
mov edi, dword [esi + 4]
cmp edi, 0xa
setl dl
xor dl, al
mov eax, 0x4c6ca682
mov edx, 0x6707b2cf
cmovne eax, edx
test ecx, ecx
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
cmp edi, 0xa
setl byte [esi + 0x28]
cmovge ecx, eax
mov edx, 0x1b272c9a
jmp 0x577727
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x577741
cmp edx, 0x4c6ca682
je 0x577778
cmp edx, 0x6707b2cf
jne 0x577727
jmp 0x57777f
cmp edx, 0xf74fd645
je 0x577725
cmp edx, 0x1b272c9a
jne 0x577727
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x577727
mov edx, 0xf74fd645
jmp 0x577727
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0xc]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
sete byte [esi + 0x10]
sete ah
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove edx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl bl
mov edi, 0x4c6ca682
cmovge edx, edi
xor bl, ah
mov eax, 0x6707b2cf
cmovne edx, eax
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x5777e4
cmp ebx, 0x4c6ca682
je 0x577824
cmp ebx, 0x6707b2cf
jne 0x5777ca
jmp 0x57782f
cmp ebx, 0xf74fd645
je 0x57782b
cmp ebx, 0x1b272c9a
jne 0x5777ca
mov ah, byte [esi + 0x10]
movzx ebx, byte [esi + 0x28]
mov al, bl
xor al, ah
test bl, bl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test ah, ah
mov edi, 0x4c6ca682
cmove ebx, edi
test al, al
mov eax, 0xf74fd645
cmovne ebx, eax
jmp 0x5777ca
mov ebx, 0xf74fd645
jmp 0x5777ca
mov ebx, edx
jmp 0x5777ca
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
cmp byte [esi + 0x24], 0
je 0x5776ec
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x57769d
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0xc], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x57769d
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [esi + 0x38], 0xa
setge cl
setl ch
xor ch, dl
jne 0x5778b3
or cl, al
test cl, 1
jne 0x591748
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x5778fd
cmp eax, 0xcd5e6053
je 0x577953
cmp eax, 0x18ed46ca
jne 0x5778db
mov eax, dword [esi + 0x6c]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x5778db
cmp eax, 0x5499d804
je 0x57797d
cmp eax, 0x685e39a2
jne 0x5778db
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x5778db
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x5778db
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x57759d
xor cl, al
jne 0x57759d
jmp 0x59174a
mov ecx, dword [esi + 0x40]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dl
cmp ecx, 0xa
setl dh
mov edi, dword [esi + 0x5c]
test dh, dl
jne 0x576a30
xor dh, dl
mov edi, dword [esi + 0x5c]
jne 0x576a30
mov edi, dword [esi + 0x40]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp ecx, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x577a3a
test dl, dl
je 0x5779f4
mov edi, dword [esi + 0x5c]
jmp 0x576a30
mov edi, dword [esi + 0x5c]
jmp 0x576a30
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete al
cmp ecx, 0xa
setl cl
test cl, al
jne 0x577a64
xor cl, al
je 0x59172a
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp eax, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 0x40], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x6c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x577a8e
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x578b25
mov ecx, dword [esi + 0x40]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete ah
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
mov ebx, dword [esi + 0x38]
mov dword [esi + 4], ebx
mov ebx, dword [esi + 0x24]
mov dword [esi + 8], ebx
jne 0x577b60
or dl, al
jne 0x59173a
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x57812e
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x3c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x98], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x3c]
sbb ecx, edx
or ecx, eax
jne 0x577b20
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 8]
mov dword [ecx], ebx
mov ebx, dword [esi + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x98]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0xc]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x577c62
cmp ecx, 0x20e9c049
je 0x577c79
cmp ecx, 0x3b23d0b1
jne 0x577c48
jmp 0x577ca4
cmp ecx, 0x9c6e8745
je 0x577c7d
cmp ecx, 0xeb760989
jne 0x577c48
mov ecx, 0x20e9c049
jmp 0x577c48
mov ecx, eax
jmp 0x577c48
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x577c48
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x4c]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x90]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x68]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x577d3b
cmp ecx, 0xcfcad29c
je 0x577d79
cmp ecx, 0x3aca7e6
jne 0x577d1f
mov ecx, eax
jmp 0x577d1f
cmp ecx, 0x7c4a5f2
je 0x577d72
cmp ecx, 0x389c0e25
jne 0x577d1f
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x577d1f
mov ecx, 0x3aca7e6
jmp 0x577d1f
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xc7
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xc9
mov ecx, dword [esi + 0x40]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x577e1c
cmp eax, 0xc6e82640
je 0x577e84
cmp eax, 0x950d98a
jne 0x577ddc
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x577ddc
cmp eax, 0x31a61df5
je 0x577e39
cmp eax, 0x4d86efb0
jne 0x577ddc
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x577ddc
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x577ddc
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x98]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf6cc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
setl dl
mov ebx, 0xeb760989
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x577f04
cmp ecx, 0x20e9c049
je 0x577f1b
cmp ecx, 0x3b23d0b1
jne 0x577eea
jmp 0x577f4b
cmp ecx, 0x9c6e8745
je 0x577f1f
cmp ecx, 0xeb760989
jne 0x577eea
mov ecx, 0x20e9c049
jmp 0x577eea
mov ecx, eax
jmp 0x577eea
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x577eea
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x6c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x577fe6
cmp ecx, 0xcfcad29c
je 0x578024
cmp ecx, 0x3aca7e6
jne 0x577fca
mov ecx, eax
jmp 0x577fca
cmp ecx, 0x7c4a5f2
je 0x57801d
cmp ecx, 0x389c0e25
jne 0x577fca
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x577fca
mov ecx, 0x3aca7e6
jmp 0x577fca
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xc7
mov ecx, dword [esi + 0x6c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xc8
mov ecx, dword [esi + 0x40]
push dword [esi + 0x6c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x5780c6
cmp eax, 0xc6e82640
je 0x577b20
cmp eax, 0x950d98a
jne 0x578086
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x578086
cmp eax, 0x31a61df5
je 0x5780e3
cmp eax, 0x4d86efb0
jne 0x578086
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x578086
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x578086
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x578475
mov dword [esi + 0x58], 1
jmp 0x578175
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x578475
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne al
sete dl
cmp edi, 0xa
setge cl
setl ah
xor ah, dl
mov edx, dword [esi + 0x58]
mov dword [esi + 8], edx
jne 0x5781c5
or cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 8], eax
je 0x5781c5
jmp 0x59173c
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0xc]
call fcn.00433980
cmp dword [esi + 8], 0
je 0x57843d
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0xc], ecx
mov dword [esi + 0x24], eax
test eax, ecx
sete byte [esi + 0x10]
mov ebx, 0xbf25ae54
mov ecx, 0x20ab24e5
cmove ebx, ecx
sete al
mov dword [esi + 4], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ebx, edx
setl dl
xor dl, al
mov eax, dword [esi + 0x40]
mov edi, dword [eax]
mov eax, dword [esi + 8]
lea edx, [eax + eax*2]
mov dword [esi + 0x34], edi
lea eax, [edi + edx*4]
mov dword [esi + 0x38], eax
cmovne ebx, ecx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x578244
cmp edx, 0xffb13445
je 0x578280
cmp edx, 0x20ab24e5
jne 0x57822a
jmp 0x57828b
cmp edx, 0xbf25ae54
je 0x578284
cmp edx, 0xe6642f9a
jne 0x57822a
movzx ecx, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
test dl, dl
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test cl, cl
mov eax, 0xbf25ae54
cmove edx, eax
test ch, ch
cmovne edx, edi
jmp 0x57822a
mov edx, ebx
jmp 0x57822a
mov edx, 0xffb13445
jmp 0x57822a
mov eax, dword [esi + 8]
dec eax
mov ecx, dword [esi + 0x24]
test dword [esi + 0xc], ecx
mov ecx, dword [esi + 0x38]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov ecx, dword [ecx]
mov edx, dword [ecx]
mov dword [esi + 0x48], edx
mov ecx, dword [ecx + 4]
mov dword [esi + 0x3c], ecx
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov dword [esi + 8], eax
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x34]
lea eax, [eax + ecx*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5782e2
cmp eax, 0xffb13445
je 0x578317
cmp eax, 0x20ab24e5
jne 0x5782cb
jmp 0x578322
cmp eax, 0xbf25ae54
je 0x57831b
cmp eax, 0xe6642f9a
jne 0x5782cb
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x5782cb
mov eax, ebx
jmp 0x5782cb
mov eax, 0xffb13445
jmp 0x5782cb
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x48]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x3c]
sbb ecx, dword [eax + 4]
jge 0x57843d
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x57836f
cmp edx, 0xffb13445
je 0x5783ab
cmp edx, 0x20ab24e5
jne 0x578355
jmp 0x5783b6
cmp edx, 0xbf25ae54
je 0x5783af
cmp edx, 0xe6642f9a
jne 0x578355
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ah, al
xor ah, cl
test cl, cl
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov ecx, 0xbf25ae54
cmove edx, ecx
test ah, ah
cmovne edx, edi
jmp 0x578355
mov edx, ebx
jmp 0x578355
mov edx, 0xffb13445
jmp 0x578355
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x5783f6
cmp ecx, 0xffb13445
je 0x578432
cmp ecx, 0x20ab24e5
jne 0x5783d9
jmp 0x5781aa
cmp ecx, 0xbf25ae54
je 0x578436
cmp ecx, 0xe6642f9a
jne 0x5783d9
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ah, al
xor ah, cl
test cl, cl
mov ecx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ecx, edx
test al, al
mov edi, 0xbf25ae54
cmove ecx, edi
test ah, ah
cmovne ecx, edx
jmp 0x5783d9
mov ecx, ebx
jmp 0x5783d9
mov ecx, 0xffb13445
jmp 0x5783d9
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
cmp edi, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x578153
or dl, al
test dl, 1
je 0x578153
jmp 0x59173e
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x5784c8
cmp edi, 0x88e9608c
je 0x578508
cmp edi, 0xdf32ec89
jne 0x5784a4
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x5784a4
cmp edi, 0x30b7124c
je 0x578560
cmp edi, 0x124998e2
jne 0x5784a4
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, cl
xor bh, bl
test cl, cl
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test bl, bl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bh, bh
cmovne edi, edx
jmp 0x5784a4
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
mov dword [esi + 8], edx
lea edi, [ecx + 1]
mov dword [esi + 4], ecx
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov edx, 0x30b7124c
cmovne ebx, edx
test ecx, edi
mov edi, ebx
cmove edi, edx
cmp dword [esi + 8], 0xa
cmovge edi, ebx
mov ecx, dword [esi + 0x18]
jmp 0x5784a4
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 0x40]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x5785b5
cmp ecx, 0x88e9608c
je 0x5785f5
cmp ecx, 0xdf32ec89
jne 0x57858e
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 4]
mov dword [eax], ecx
mov ecx, 0x88e9608c
jmp 0x57858e
cmp ecx, 0x30b7124c
je 0x578649
cmp ecx, 0x124998e2
jne 0x57858e
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne ecx, edi
test dl, dl
mov eax, 0xdf32ec89
cmove ecx, eax
test dh, dh
cmovne ecx, edi
jmp 0x57858e
mov eax, dword [esi + 0x60]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 4]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov eax, 0x30b7124c
cmovne ebx, eax
test edi, ecx
mov ecx, ebx
cmove ecx, eax
cmp edx, 0xa
cmovge ecx, ebx
mov edx, dword [esi + 0x18]
jmp 0x57858e
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x578677
xor cl, al
je 0x591742
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x578a8e
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx - 1]
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov eax, dword [eax]
mov dword [esi + 8], eax
mov eax, 0xfc04dcc5
cmovge ecx, eax
xor dl, bl
cmovne ecx, edi
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x578700
cmp edx, 0x87fb68d6
je 0x578737
cmp edx, 0xfc04dcc5
jne 0x5786e1
mov edx, 0x87fb68d6
jmp 0x5786e1
cmp edx, 0x2601f5a7
je 0x57873b
cmp edx, 0x5a893bc4
jne 0x5786e1
movzx eax, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, al
xor dh, dl
mov ebx, 0xfc04dcc5
mov edi, 0x87fb68d6
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x5786e1
mov edx, ecx
jmp 0x5786e1
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
cmp dword [esi + 8], ecx
je 0x57895b
mov eax, dword [0x5cf6f0]
mov dword [esi + 0xc], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x578781
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x3c]
je 0x57895b
mov eax, dword [esi + 0x34]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete dl
cmp dword [esi + 0x38], 0xa
setge al
setl ah
or al, cl
xor ah, dl
xor al, 1
or al, ah
mov byte [esi + 0x24], al
test al, 1
jne 0x578855
mov eax, dword [esi + 0xc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
test ecx, ecx
sete al
mov edi, dword [esi + 4]
cmp edi, 0xa
setl dl
xor dl, al
mov eax, 0x4c6ca682
mov edx, 0x6707b2cf
cmovne eax, edx
test ecx, ecx
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
cmp edi, 0xa
setl byte [esi + 0x28]
cmovge ecx, eax
mov edx, 0x1b272c9a
jmp 0x5787f4
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x57880e
cmp edx, 0x4c6ca682
je 0x578845
cmp edx, 0x6707b2cf
jne 0x5787f4
jmp 0x57884c
cmp edx, 0xf74fd645
je 0x5787f2
cmp edx, 0x1b272c9a
jne 0x5787f4
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x5787f4
mov edx, 0xf74fd645
jmp 0x5787f4
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0xc]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
and edx, 1
sete dl
mov edi, dword [esi + 4]
cmp edi, 0xa
setl ah
xor ah, dl
mov edx, 0x4c6ca682
mov eax, 0x6707b2cf
cmovne edx, eax
and ecx, 1
sete byte [esi + 0x10]
mov ebx, edx
cmove ebx, eax
cmp edi, 0xa
setl byte [esi + 0x28]
cmovge ebx, edx
mov edx, 0x1b272c9a
cmp edx, 0x4c6ca681
jle 0x5788b3
cmp edx, 0x4c6ca682
je 0x5788f3
cmp edx, 0x6707b2cf
jne 0x578899
jmp 0x5788fe
cmp edx, 0xf74fd645
je 0x5788fa
cmp edx, 0x1b272c9a
jne 0x578899
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov al, dl
xor al, ah
test dl, dl
mov edx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne edx, edi
test ah, ah
mov edi, 0x4c6ca682
cmove edx, edi
test al, al
mov eax, 0xf74fd645
cmovne edx, eax
jmp 0x578899
mov edx, 0xf74fd645
jmp 0x578899
mov edx, ebx
jmp 0x578899
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
test byte [esi + 0x24], 1
je 0x5787b9
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x57876f
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0xc], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x57876f
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x38], 0xa
setl cl
test cl, al
jne 0x578982
xor cl, al
je 0x591740
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x5789cd
cmp eax, 0xcd5e6053
je 0x578a22
cmp eax, 0x18ed46ca
jne 0x5789ab
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x5789ab
cmp eax, 0x5499d804
je 0x578a51
cmp eax, 0x685e39a2
jne 0x5789ab
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x5789ab
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x5789ab
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x578677
or cl, al
je 0x578677
jmp 0x591742
mov ecx, dword [esi + 0x40]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete byte [esi + 8]
cmp eax, 0xa
setge bl
setl bh
xor bh, byte [esi + 8]
mov edi, dword [esi + 0x5c]
jne 0x577af2
or bl, dl
mov edi, dword [esi + 0x5c]
test bl, 1
je 0x577af2
mov edi, dword [esi + 0x40]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dh
sete bl
cmp eax, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
test bh, bh
jne 0x578b1d
test dl, dl
jne 0x578ad1
mov edi, dword [esi + 0x5c]
jmp 0x577af2
mov edi, dword [esi + 0x5c]
jmp 0x577af2
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x578b47
xor al, cl
je 0x59172c
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp eax, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 8], esp
sub esp, 0xc
mov dword [esi + 0x40], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x3c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x578b70
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x579bea
mov ecx, dword [esi + 8]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x48], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x38], eax
mov dword [esi + 0x34], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete ah
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
mov ebx, dword [esi + 0x34]
mov dword [esi + 0xc], ebx
mov ebx, dword [esi + 0x38]
mov dword [esi + 4], ebx
jne 0x578c42
or dl, al
jne 0x591730
mov edx, dword [esi + 4]
mov eax, edx
imul eax, dword [esi + 0xc]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x48]
sbb eax, 0
jae 0x579227
mov eax, dword [esi + 0x48]
mov edi, dword [esi + 4]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x6c], eax
mov eax, 0
mov ebx, dword [esi + 0xc]
sbb eax, ebx
mov dword [esi + 0x4c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0x24], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x98], eax
mov edx, eax
mov dword [esi + 0x34], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0x38], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x6c]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
sbb ecx, edx
or ecx, eax
jne 0x578c02
mov eax, dword [0x5cf6c8]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 4]
mov dword [ecx], ebx
mov ebx, dword [esi + 0xc]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x98]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0x24]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x578d44
cmp ecx, 0x20e9c049
je 0x578d5b
cmp ecx, 0x3b23d0b1
jne 0x578d2a
jmp 0x578d86
cmp ecx, 0x9c6e8745
je 0x578d5f
cmp ecx, 0xeb760989
jne 0x578d2a
mov ecx, 0x20e9c049
jmp 0x578d2a
mov ecx, eax
jmp 0x578d2a
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x578d2a
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x40]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x578e1c
cmp ecx, 0xcfcad29c
je 0x578e5f
cmp ecx, 0x3aca7e6
jne 0x578e00
mov ecx, eax
jmp 0x578e00
cmp ecx, 0x7c4a5f2
je 0x578e58
cmp ecx, 0x389c0e25
jne 0x578e00
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x578e00
mov ecx, 0x3aca7e6
jmp 0x578e00
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xca
mov ecx, dword [esi + 0x40]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xcc
mov ecx, dword [esi + 8]
push dword [esi + 0x40]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x578f07
cmp eax, 0xc6e82640
je 0x578f71
cmp eax, 0x950d98a
jne 0x578ec2
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x578ec2
cmp eax, 0x31a61df5
je 0x578f24
cmp eax, 0x4d86efb0
jne 0x578ec2
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x578ec2
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x578ec2
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0x24]
mov dword [ebx + 4], eax
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
mov edx, dword [0x5cf6cc]
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne ecx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, dword [esi + 0x98]
mov dword [ebx], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, ecx
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 4]
mov dword [ebx + 8], edx
cmovge eax, ecx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x578ff5
cmp ecx, 0x20e9c049
je 0x57900c
cmp ecx, 0x3b23d0b1
jne 0x578fdb
jmp 0x57903c
cmp ecx, 0x9c6e8745
je 0x579010
cmp ecx, 0xeb760989
jne 0x578fdb
mov ecx, 0x20e9c049
jmp 0x578fdb
mov ecx, eax
jmp 0x578fdb
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x578fdb
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x3c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x5790d7
cmp ecx, 0xcfcad29c
je 0x57911a
cmp ecx, 0x3aca7e6
jne 0x5790bb
mov ecx, eax
jmp 0x5790bb
cmp ecx, 0x7c4a5f2
je 0x579113
cmp ecx, 0x389c0e25
jne 0x5790bb
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5790bb
mov ecx, 0x3aca7e6
jmp 0x5790bb
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xca
mov ecx, dword [esi + 0x3c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xcb
mov ecx, dword [esi + 8]
push dword [esi + 0x3c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x5791bd
cmp eax, 0xc6e82640
je 0x578c02
cmp eax, 0x950d98a
jne 0x57917d
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x57917d
cmp eax, 0x31a61df5
je 0x5791da
cmp eax, 0x4d86efb0
jne 0x57917d
mov ecx, dword [esi + 0x3c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x57917d
mov ecx, dword [esi + 0x3c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x57917d
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x579552
mov dword [esi + 0x6c], 1
jmp 0x57926e
mov ebx, dword [esi + 0x6c]
inc ebx
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x6c], ebx
cmp ebx, edx
jae 0x579552
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
setne al
cmp edi, 0xa
setl ah
setge cl
mov edi, dword [esi + 0x6c]
mov dword [esi + 4], edi
cmp ah, dl
jne 0x5792be
or cl, al
mov eax, dword [esi + 0x6c]
mov dword [esi + 4], eax
je 0x5792be
jmp 0x591732
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0x24]
call fcn.00433980
cmp dword [esi + 4], 0
je 0x57951a
mov eax, dword [0x5cf6d8]
mov ecx, dword [0x5cf6dc]
lea edx, [eax - 1]
imul edx, eax
and edx, 1
mov dword [esi + 0x24], edx
sete byte [esi + 0x10]
sete al
mov edx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove edx, ebx
mov dword [esi + 0xc], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, 0xbf25ae54
cmovge edx, ecx
setl cl
xor cl, al
mov eax, dword [esi + 8]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
mov dword [esi + 0x34], ecx
lea eax, [ecx + eax*4]
mov dword [esi + 0x38], eax
cmovne edx, ebx
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x579333
cmp eax, 0xffb13445
je 0x579368
cmp eax, 0x20ab24e5
jne 0x57931c
jmp 0x579373
cmp eax, 0xbf25ae54
je 0x57936c
cmp eax, 0xe6642f9a
jne 0x57931c
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov ecx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ecx, edi
test al, al
mov eax, ecx
cmovne eax, edi
test bl, bl
cmove eax, ecx
jmp 0x57931c
mov eax, edx
jmp 0x57931c
mov eax, 0xffb13445
jmp 0x57931c
mov ecx, dword [esi + 4]
dec ecx
cmp dword [esi + 0x24], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax]
mov dword [esi + 0x4c], edi
mov eax, dword [eax + 4]
mov dword [esi + 0x48], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x34]
lea eax, [ecx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5793c8
cmp eax, 0xffb13445
je 0x579402
cmp eax, 0x20ab24e5
jne 0x5793b1
jmp 0x57940d
cmp eax, 0xbf25ae54
je 0x579406
cmp eax, 0xe6642f9a
jne 0x5793b1
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, al
xor ch, cl
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test cl, cl
mov ebx, 0xbf25ae54
cmove eax, ebx
test ch, ch
cmovne eax, edi
jmp 0x5793b1
mov eax, edx
jmp 0x5793b1
mov eax, 0xffb13445
jmp 0x5793b1
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x4c]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x48]
sbb ecx, dword [eax + 4]
jge 0x57951a
cmp dword [esi + 0x24], 0
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x579455
cmp eax, 0xffb13445
je 0x57948f
cmp eax, 0x20ab24e5
jne 0x57943e
jmp 0x57949a
cmp eax, 0xbf25ae54
je 0x579493
cmp eax, 0xe6642f9a
jne 0x57943e
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, cl
xor ch, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test cl, cl
mov ebx, 0xbf25ae54
cmove eax, ebx
test ch, ch
cmovne eax, edi
jmp 0x57943e
mov eax, edx
jmp 0x57943e
mov eax, 0xffb13445
jmp 0x57943e
cmp dword [esi + 0x24], 0
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x24], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x5794d8
cmp ecx, 0xffb13445
je 0x57950f
cmp ecx, 0x20ab24e5
jne 0x5794bb
jmp 0x5792a3
cmp ecx, 0xbf25ae54
je 0x579513
cmp ecx, 0xe6642f9a
jne 0x5794bb
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, bl
xor ch, cl
mov edi, 0xbf25ae54
mov eax, 0xffb13445
cmovne edi, eax
test cl, cl
mov ecx, edi
cmovne ecx, eax
test bl, bl
cmove ecx, edi
jmp 0x5794bb
mov ecx, edx
jmp 0x5794bb
mov ecx, 0xffb13445
jmp 0x5794bb
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
cmp edi, 0xa
setge dl
setl bl
xor bl, dh
jne 0x57924c
or dl, al
test dl, 1
je 0x57924c
jmp 0x591734
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 0xc], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x5795a5
cmp edi, 0x88e9608c
je 0x5795e4
cmp edi, 0xdf32ec89
jne 0x579581
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x579581
cmp edi, 0x30b7124c
je 0x57963a
cmp edi, 0x124998e2
jne 0x579581
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x579581
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi - 1]
mov dword [esi + 0xc], edi
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov edi, 0xdf32ec89
mov ebx, 0x30b7124c
cmove edi, ebx
sete cl
mov dword [esi + 4], edx
cmp edx, 0xa
mov edx, 0xdf32ec89
cmovge edi, edx
setl dl
xor dl, cl
cmovne edi, ebx
jmp 0x579581
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x579689
cmp ecx, 0x88e9608c
je 0x5796c4
cmp ecx, 0xdf32ec89
jne 0x579665
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x579665
cmp ecx, 0x30b7124c
je 0x579717
cmp ecx, 0x124998e2
jne 0x579665
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x579665
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov edi, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne edi, ebx
cmp ecx, 0xffffffff
mov ecx, edi
cmove ecx, ebx
cmp edx, 0xa
cmovge ecx, edi
mov edx, dword [esi + 0x18]
jmp 0x579665
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x579747
or cl, al
test cl, 1
jne 0x591738
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x579b5c
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 0xc], eax
mov edi, dword [eax]
mov dword [esi + 4], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x5797d4
cmp edx, 0x87fb68d6
je 0x579810
cmp edx, 0xfc04dcc5
jne 0x5797b5
mov edx, 0x87fb68d6
jmp 0x5797b5
cmp edx, 0x2601f5a7
je 0x579814
cmp edx, 0x5a893bc4
jne 0x5797b5
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x5797b5
mov edx, ecx
jmp 0x5797b5
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x4c], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x48], eax
mov dword [esi + 0x6c], ecx
cmp dword [esi + 4], ecx
je 0x579a25
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x57985a
mov eax, dword [esi + 4]
add eax, 8
mov dword [esi + 4], eax
cmp eax, dword [esi + 0x6c]
je 0x579a25
mov ecx, dword [esi + 0x4c]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x48], 0xa
setl cl
or cl, al
mov byte [esi + 0x34], cl
jne 0x579928
mov eax, dword [esi + 0x38]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0x24], ecx
mov ecx, dword [esi + 0x24]
test ecx, ecx
sete al
mov edi, dword [esi + 0xc]
cmp edi, 0xa
setl dl
xor dl, al
mov eax, 0x4c6ca682
mov edx, 0x6707b2cf
cmovne eax, edx
test ecx, ecx
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
cmp edi, 0xa
setl byte [esi + 0x28]
cmovge ecx, eax
mov eax, 0x1b272c9a
jmp 0x5798cc
mov eax, ecx
cmp eax, 0x4c6ca681
jle 0x5798e3
cmp eax, 0x4c6ca682
je 0x579918
cmp eax, 0x6707b2cf
jne 0x5798cc
jmp 0x57991f
cmp eax, 0xf74fd645
je 0x5798ca
cmp eax, 0x1b272c9a
jne 0x5798cc
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test al, al
mov eax, edi
cmovne eax, ebx
test dl, dl
cmove eax, edi
jmp 0x5798cc
mov eax, 0xf74fd645
jmp 0x5798cc
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x38]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0x24], ecx
sete byte [esi + 0x10]
sete bl
mov eax, 0x4c6ca682
mov edx, 0x6707b2cf
cmove eax, edx
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl bh
mov edi, 0x4c6ca682
cmovge eax, edi
xor bh, bl
cmovne eax, edx
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x579982
cmp ebx, 0x4c6ca682
je 0x5799bd
cmp ebx, 0x6707b2cf
jne 0x579968
jmp 0x5799c8
cmp ebx, 0xf74fd645
je 0x5799c4
cmp ebx, 0x1b272c9a
jne 0x579968
movzx edx, byte [esi + 0x10]
mov dh, byte [esi + 0x28]
mov ebx, edx
xor bl, dh
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test dh, dh
mov ebx, edi
mov ecx, 0xf74fd645
cmovne ebx, ecx
test dl, dl
cmove ebx, edi
jmp 0x579968
mov ebx, 0xf74fd645
jmp 0x579968
mov ebx, eax
jmp 0x579968
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x34], 0
je 0x57988e
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x579848
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x4c], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x579848
mov ecx, dword [esi + 0x4c]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [esi + 0x48], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x579a4c
or cl, al
test cl, 1
jne 0x591736
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x579a97
cmp eax, 0xcd5e6053
je 0x579af5
cmp eax, 0x18ed46ca
jne 0x579a75
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x579a75
cmp eax, 0x5499d804
je 0x579b24
cmp eax, 0x685e39a2
jne 0x579a75
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x18ed46ca
mov ebx, 0x5499d804
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x579a75
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x579a75
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x579747
xor cl, al
jne 0x579747
jmp 0x591738
mov ecx, dword [esi + 8]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
cmp eax, 0xa
setl dh
mov edi, dword [esi + 0x5c]
test dh, dl
jne 0x578bd4
xor dh, dl
mov edi, dword [esi + 0x5c]
jne 0x578bd4
mov edi, dword [esi + 8]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp eax, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x579be2
test dl, dl
je 0x579b9c
mov edi, dword [esi + 0x5c]
jmp 0x578bd4
mov edi, dword [esi + 0x5c]
jmp 0x578bd4
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x579c0d
xor al, cl
je 0x59172e
mov esp, dword [esi + 0xa0]
mov eax, 0x57676505
jmp 0x572bcb
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete al
cmp dword [esi + 8], 0xa
setl cl
test cl, al
jne 0x579c40
xor cl, al
je 0x5916c2
mov esp, dword [esi + 0x5c]
mov dword [esi + 0x94], esp
mov eax, dword [0x5d21a8]
mov ecx, dword [0x5d21ac]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x46]
cmp ecx, 0xa
setl byte [esi + 0x47]
mov eax, 0xd31607fa
cmp eax, 0x57676504
jg 0x579cb1
cmp eax, 0xbf311110
je 0x580d43
cmp eax, 0xd31607fa
jne 0x579c71
movzx ecx, byte [esi + 0x46]
movzx eax, byte [esi + 0x47]
mov edx, ecx
xor dl, al
mov edx, 0x5af2d6e3
mov edi, 0x57676505
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x579c71
cmp eax, 0x57676505
je 0x579cf1
cmp eax, 0x5af2d6e3
jne 0x579c71
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
mov dword [esi + 0x40], esp
setl ch
setge cl
cmp ch, dl
jne 0x579d2e
or cl, al
test cl, 1
jne 0x579e42
jmp 0x579d2e
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf5f4], 0xa
mov dword [esi + 0x40], esp
setge cl
setl ah
xor ah, dl
jne 0x57a1eb
or cl, al
jne 0x57a304
jmp 0x57a1eb
push eax
mov dword [esi + 0x38], esp
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
mov dword [esi + 0x34], ecx
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 4], edi
mov ecx, edi
call fcn.0040cd80
mov eax, dword [0x5cf4b8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4bc]
sete byte [esi + 0x28]
sete dl
mov eax, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x18]
setl cl
mov ebx, 0x8f0f2ca8
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x13d3b53a
cmp ecx, 0x13d3b539
jg 0x579dbc
cmp ecx, 0x8f0f2ca8
je 0x579df3
cmp ecx, 0x11f1fb1a
jne 0x579da2
jmp 0x579dfe
cmp ecx, 0x1a1c1d98
je 0x579dfa
cmp ecx, 0x13d3b53a
jne 0x579da2
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov ch, dl
xor ch, cl
mov edi, 0x8f0f2ca8
mov ebx, 0x1a1c1d98
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x579da2
mov ecx, 0x1a1c1d98
jmp 0x579da2
mov ecx, eax
jmp 0x579da2
mov eax, dword [esi + 4]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x579f29
xor cl, al
jne 0x579f29
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 8], edi
mov ecx, edi
call fcn.0040cd80
mov edx, dword [0x5cf4b8]
mov ecx, dword [0x5cf4bc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x8f0f2ca8
mov ebx, 0x11f1fb1a
cmovne edx, ebx
cmp eax, 0xffffffff
sete byte [esi + 0x28]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x18]
cmovge eax, edx
mov ecx, 0x13d3b53a
jmp 0x579eb8
mov ecx, eax
cmp ecx, 0x13d3b539
jg 0x579ed2
cmp ecx, 0x8f0f2ca8
je 0x579f09
cmp ecx, 0x11f1fb1a
jne 0x579eb8
jmp 0x579f10
cmp ecx, 0x1a1c1d98
je 0x579eb6
cmp ecx, 0x13d3b53a
jne 0x579eb8
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov ch, dl
xor ch, cl
mov ebx, 0x8f0f2ca8
mov edi, 0x1a1c1d98
cmovne ebx, edi
test cl, cl
mov ecx, ebx
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
jmp 0x579eb8
mov ecx, 0x1a1c1d98
jmp 0x579eb8
mov eax, dword [esi + 8]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
jmp 0x579d2e
mov dword [esi + 0x24], 0
cmp dword [esi + 0x24], 0x3e8
je 0x57a1a0
mov ecx, dword [esi + 0x34]
movsx eax, byte [ecx + 1]
movsx edx, byte [ecx]
mov dword [esi + 0xc0], 0xda
push eax
push edx
push dword [esi + 0x38]
call fcn.0041e700
movsx eax, al
mov ecx, dword [esi + 4]
push eax
call fcn.00441240
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf5f4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x579f94
or cl, al
jne 0x579fc5
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [0x5cf5f4], 0xa
setl dl
test dl, cl
jne 0x579fcf
xor dl, cl
jne 0x579fcf
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x579f94
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
cmp byte [ecx + eax - 1], 0x6f
je 0x579ff4
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov ecx, dword [edi + 0x10]
cmp byte [ecx + eax - 1], 0x75
jne 0x57a162
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov dword [esi + 8], eax
mov ecx, edi
call fcn.00423280
mov ecx, dword [0x5cf5f0]
mov ebx, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
add eax, dword [edi + 0x10]
mov dword [esi + 0xc], eax
xor ecx, 0xfffffffe
and ecx, edx
setne dl
sete al
mov edi, ebx
cmp ebx, 0xa
setge dh
setl bh
xor bh, al
jne 0x57a044
or dh, dl
jne 0x5916fa
mov eax, dword [esi + 0xc]
cmp dword [esi + 8], eax
jne 0x57a061
jmp 0x57a177
mov eax, dword [esi + 8]
inc eax
mov dword [esi + 8], eax
cmp eax, dword [esi + 0xc]
je 0x57a177
mov edx, dword [0x5cf5f8]
mov ecx, dword [0x5cf5fc]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xc9893d93
mov ebx, 0x603280c6
cmovne edx, ebx
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge eax, edx
mov ecx, 0xfc461c64
cmp ecx, 0xfc461c63
jg 0x57a0ca
cmp ecx, 0xc9893d93
je 0x57a101
cmp ecx, 0xdac56cfa
jne 0x57a0ae
mov ecx, eax
jmp 0x57a0ae
cmp ecx, 0x603280c6
je 0x57a108
cmp ecx, 0xfc461c64
jne 0x57a0ae
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov ebx, 0xc9893d93
mov edi, 0xdac56cfa
cmovne ebx, edi
test cl, cl
mov ecx, ebx
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
jmp 0x57a0ae
mov ecx, 0xdac56cfa
jmp 0x57a0ae
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x18]
movsx eax, byte [ebx]
push eax
call fcn.005a47b5
add esp, 4
mov ecx, eax
xor cl, 0xf5
and cl, al
mov byte [ebx], cl
mov ecx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
and ecx, 1
sete bh
mov edi, eax
cmp eax, 0xa
setge bl
setl al
xor al, bh
jne 0x57a051
or bl, dl
test bl, 1
je 0x57a051
jmp 0x5916a8
mov edx, dword [0x5cf5f0]
mov edi, dword [0x5cf5f4]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
inc dword [esi + 0x24]
test ecx, ecx
sete dl
setne cl
cmp edi, 0xa
setl ah
setge al
cmp dl, ah
jne 0x579f30
or cl, al
je 0x579f30
jmp 0x5916fc
mov ecx, dword [esi + 4]
call fcn.00423280
cmp byte [eax + 0xd7], 0x31
jne 0x57da82
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x57d9d3
or cl, al
test cl, 1
jne 0x57da03
jmp 0x57d9d3
push eax
mov dword [esi + 0x38], esp
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
mov dword [esi + 0x34], ecx
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 4], edi
mov ecx, edi
call fcn.0040cd80
mov edx, dword [0x5cf4b8]
mov ecx, dword [0x5cf4bc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x28]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x18]
cmovge eax, edx
mov ecx, 0x13d3b53a
cmp ecx, 0x13d3b539
jg 0x57a27e
cmp ecx, 0x8f0f2ca8
je 0x57a2b5
cmp ecx, 0x11f1fb1a
jne 0x57a264
jmp 0x57a2c0
cmp ecx, 0x1a1c1d98
je 0x57a2bc
cmp ecx, 0x13d3b53a
jne 0x57a264
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov ch, dl
xor ch, cl
mov edi, 0x8f0f2ca8
mov ebx, 0x1a1c1d98
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x57a264
mov ecx, 0x1a1c1d98
jmp 0x57a264
mov ecx, eax
jmp 0x57a264
mov eax, dword [esi + 4]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x57a3e7
xor cl, al
jne 0x57a3e7
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 8], edi
mov ecx, edi
call fcn.0040cd80
mov eax, dword [0x5cf4b8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4bc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
sete cl
mov eax, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov ebx, 0x8f0f2ca8
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x13d3b53a
jmp 0x57a376
mov ecx, eax
cmp ecx, 0x13d3b539
jg 0x57a390
cmp ecx, 0x8f0f2ca8
je 0x57a3c7
cmp ecx, 0x11f1fb1a
jne 0x57a376
jmp 0x57a3ce
cmp ecx, 0x1a1c1d98
je 0x57a374
cmp ecx, 0x13d3b53a
jne 0x57a376
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov ch, dl
xor ch, cl
mov ebx, 0x8f0f2ca8
mov edi, 0x1a1c1d98
cmovne ebx, edi
test cl, cl
mov ecx, ebx
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
jmp 0x57a376
mov ecx, 0x1a1c1d98
jmp 0x57a376
mov eax, dword [esi + 8]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
jmp 0x57a1eb
mov dword [esi + 0x24], 0
cmp dword [esi + 0x24], 0x3e8
je 0x57a651
mov ecx, dword [esi + 0x34]
movsx eax, byte [ecx + 1]
movsx edx, byte [ecx]
mov dword [esi + 0xc0], 0xd0
push eax
push edx
push dword [esi + 0x38]
call fcn.0041e700
movsx eax, al
mov ecx, dword [esi + 4]
push eax
call fcn.00441240
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x57a44d
xor cl, al
je 0x57a483
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
setne cl
sete ch
cmp dword [0x5cf5f4], 0xa
setge dl
setl dh
xor dh, ch
jne 0x57a48d
or dl, cl
je 0x57a48d
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x57a44d
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
cmp byte [ecx + eax - 1], 0x6f
je 0x57a4b2
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov ecx, dword [edi + 0x10]
cmp byte [ecx + eax - 1], 0x75
jne 0x57a613
mov ebx, dword [esi + 4]
mov ecx, ebx
call fcn.00423280
mov dword [esi + 8], eax
mov ecx, ebx
call fcn.00423280
mov ecx, dword [0x5cf5f0]
mov edi, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
add eax, dword [ebx + 0x10]
mov dword [esi + 0xc], eax
and ecx, 1
sete al
cmp edi, 0xa
setge bl
setl bh
xor bh, al
jne 0x57a4fe
or bl, dl
test bl, 1
jne 0x5916fe
mov eax, dword [esi + 0xc]
cmp dword [esi + 8], eax
jne 0x57a51b
jmp 0x57a628
mov edx, dword [esi + 8]
inc edx
mov dword [esi + 8], edx
cmp edx, dword [esi + 0xc]
je 0x57a628
mov eax, dword [0x5cf5f8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf5fc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xc9893d93
mov edi, 0x603280c6
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0xc9893d93
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0xfc461c64
cmp ecx, 0xfc461c63
jg 0x57a580
cmp ecx, 0xc9893d93
je 0x57a5b7
cmp ecx, 0xdac56cfa
jne 0x57a564
mov ecx, eax
jmp 0x57a564
cmp ecx, 0x603280c6
je 0x57a5be
cmp ecx, 0xfc461c64
jne 0x57a564
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov ebx, 0xc9893d93
mov edi, 0xdac56cfa
cmovne ebx, edi
test cl, cl
mov ecx, ebx
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
jmp 0x57a564
mov ecx, 0xdac56cfa
jmp 0x57a564
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x18]
movsx eax, byte [ebx]
push eax
call fcn.005a47b5
add esp, 4
mov ecx, eax
xor cl, 0xf5
and cl, al
mov byte [ebx], cl
mov ecx, dword [0x5cf5f0]
mov edi, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete dl
cmp edi, 0xa
setl dh
test dh, dl
jne 0x57a50b
xor dh, dl
jne 0x57a50b
jmp 0x5916ae
mov edx, dword [0x5cf5f0]
mov edi, dword [0x5cf5f4]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
inc dword [esi + 0x24]
test ecx, ecx
setne cl
sete dl
cmp edi, 0xa
setge al
setl ah
xor ah, dl
jne 0x57a3ee
or cl, al
je 0x57a3ee
jmp 0x591700
mov ecx, dword [esi + 4]
call fcn.00423280
cmp byte [eax + 0xd7], 0x31
jne 0x57a743
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf5f4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x57a693
or cl, al
jne 0x57a6c3
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp dword [0x5cf5f4], 0xa
setl dl
test dl, cl
jne 0x57a6cd
xor dl, cl
jne 0x57a6cd
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x57a693
cmp byte [eax + 0x2d0], 0x30
jne 0x57a743
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x57a743
or cl, al
test cl, 1
je 0x57a743
push 0
push 0
mov edi, dword [sym.imp.KERNEL32.dll_Beep]
call edi
push 0
push 0
call edi
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x57a743
xor cl, al
je 0x57a709
mov ecx, dword [esi + 4]
call fcn.0040ed30
mov esp, dword [esi + 0x40]
mov dword [esi + 0xa0], esp
mov dword [esi + 0x9c], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
setne dh
sete bl
mov ecx, dword [0x5cf6c4]
cmp ecx, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
xor dl, 1
or dl, bh
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x6c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x57a78a
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x57b805
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x57a856
xor dl, al
je 0x591710
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x57ae2d
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x98], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x57a81c
mov eax, dword [0x5cf6c8]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 8]
mov dword [ecx], ebx
mov ebx, dword [esi + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x98]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0xc]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x57a958
cmp ecx, 0x20e9c049
je 0x57a96f
cmp ecx, 0x3b23d0b1
jne 0x57a93e
jmp 0x57a99f
cmp ecx, 0x9c6e8745
je 0x57a973
cmp ecx, 0xeb760989
jne 0x57a93e
mov ecx, 0x20e9c049
jmp 0x57a93e
mov ecx, eax
jmp 0x57a93e
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57a93e
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x57aa3a
cmp ecx, 0xcfcad29c
je 0x57aa7d
cmp ecx, 0x3aca7e6
jne 0x57aa1e
mov ecx, eax
jmp 0x57aa1e
cmp ecx, 0x7c4a5f2
je 0x57aa76
cmp ecx, 0x389c0e25
jne 0x57aa1e
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57aa1e
mov ecx, 0x3aca7e6
jmp 0x57aa1e
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xd1
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xd3
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x57ab25
cmp eax, 0xc6e82640
je 0x57ab88
cmp eax, 0x950d98a
jne 0x57aae0
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x57aae0
cmp eax, 0x31a61df5
je 0x57ab42
cmp eax, 0x4d86efb0
jne 0x57aae0
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x57aae0
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x57aae0
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x98]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf6cc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x57ac07
cmp ecx, 0x20e9c049
je 0x57ac1e
cmp ecx, 0x3b23d0b1
jne 0x57abed
jmp 0x57ac4e
cmp ecx, 0x9c6e8745
je 0x57ac22
cmp ecx, 0xeb760989
jne 0x57abed
mov ecx, 0x20e9c049
jmp 0x57abed
mov ecx, eax
jmp 0x57abed
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57abed
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x6c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x57ace4
cmp ecx, 0xcfcad29c
je 0x57ad22
cmp ecx, 0x3aca7e6
jne 0x57acc8
mov ecx, eax
jmp 0x57acc8
cmp ecx, 0x7c4a5f2
je 0x57ad1b
cmp ecx, 0x389c0e25
jne 0x57acc8
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x57acc8
mov ecx, 0x3aca7e6
jmp 0x57acc8
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xd1
mov ecx, dword [esi + 0x6c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xd2
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x6c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x57adc9
cmp eax, 0xc6e82640
je 0x57a81c
cmp eax, 0x950d98a
jne 0x57ad84
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x57ad84
cmp eax, 0x31a61df5
je 0x57ade6
cmp eax, 0x4d86efb0
jne 0x57ad84
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x57ad84
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x57ad84
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x57b155
mov dword [esi + 0x48], 1
jmp 0x57ae74
mov ebx, dword [esi + 0x48]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x48], ebx
cmp ebx, edx
jae 0x57b155
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x48]
mov dword [esi + 4], edx
test cl, al
jne 0x57aebc
xor cl, al
mov eax, dword [esi + 0x48]
mov dword [esi + 4], eax
jne 0x57aebc
jmp 0x5917aa
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edi
call fcn.00433980
cmp dword [esi + 4], 0
je 0x57b11d
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax - 1]
imul edi, eax
mov eax, edi
and eax, 1
sete al
cmp ebx, 0xa
setl cl
xor cl, al
mov eax, 0xbf25ae54
mov ecx, 0x20ab24e5
cmovne eax, ecx
and edi, 1
sete byte [esi + 0x10]
mov edx, eax
cmove edx, ecx
mov dword [esi + 0xc], ebx
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
mov dword [esi + 0x38], ecx
lea eax, [ecx + eax*4]
mov dword [esi + 0x24], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x57af36
cmp eax, 0xffb13445
je 0x57af6b
cmp eax, 0x20ab24e5
jne 0x57af1f
jmp 0x57af77
cmp eax, 0xbf25ae54
je 0x57af70
cmp eax, 0xe6642f9a
jne 0x57af1f
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov ecx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ecx, edx
test al, al
mov eax, ecx
cmovne eax, edx
test bl, bl
cmove eax, ecx
jmp 0x57af1f
mov eax, dword [esi + 8]
jmp 0x57af1f
mov eax, 0xffb13445
jmp 0x57af1f
mov ecx, dword [esi + 4]
dec ecx
test edi, edi
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x40], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x34], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x38]
lea eax, [ecx + eax*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x57afca
cmp eax, 0xffb13445
je 0x57afff
cmp eax, 0x20ab24e5
jne 0x57afb3
jmp 0x57b00b
cmp eax, 0xbf25ae54
je 0x57b004
cmp eax, 0xe6642f9a
jne 0x57afb3
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov edx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edx, ebx
test al, al
mov eax, edx
cmovne eax, ebx
test cl, cl
cmove eax, edx
jmp 0x57afb3
mov eax, dword [esi + 8]
jmp 0x57afb3
mov eax, 0xffb13445
jmp 0x57afb3
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x40]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x34]
sbb ecx, dword [eax + 4]
jge 0x57b11d
test edi, edi
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov ebx, 0xe6642f9a
cmp ebx, 0xffb13444
jle 0x57b054
cmp ebx, 0xffb13445
je 0x57b090
cmp ebx, 0x20ab24e5
jne 0x57b03a
jmp 0x57b09c
cmp ebx, 0xbf25ae54
je 0x57b095
cmp ebx, 0xe6642f9a
jne 0x57b03a
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test cl, cl
mov ebx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne ebx, ecx
test al, al
mov eax, 0xbf25ae54
cmove ebx, eax
test dl, dl
cmovne ebx, ecx
jmp 0x57b03a
mov ebx, dword [esi + 8]
jmp 0x57b03a
mov ebx, 0xffb13445
jmp 0x57b03a
test edi, edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov edi, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x57b0d5
cmp ecx, 0xffb13445
je 0x57b111
cmp ecx, 0x20ab24e5
jne 0x57b0b8
jmp 0x57aea3
cmp ecx, 0xbf25ae54
je 0x57b116
cmp ecx, 0xe6642f9a
jne 0x57b0b8
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov edx, ecx
xor dl, al
test cl, cl
mov ecx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne ecx, ebx
test al, al
mov eax, 0xbf25ae54
cmove ecx, eax
test dl, dl
cmovne ecx, ebx
jmp 0x57b0b8
mov ecx, dword [esi + 8]
jmp 0x57b0b8
mov ecx, 0xffb13445
jmp 0x57b0b8
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x57ae52
xor dl, al
jne 0x57ae52
jmp 0x5917ac
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x57b1a8
cmp edi, 0x88e9608c
je 0x57b1e7
cmp edi, 0xdf32ec89
jne 0x57b184
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x57b184
cmp edi, 0x30b7124c
je 0x57b23f
cmp edi, 0x124998e2
jne 0x57b184
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
test bh, bh
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test cl, cl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bl, bl
cmovne edi, edx
jmp 0x57b184
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
mov dword [esi + 8], edx
lea edi, [ecx + 1]
mov dword [esi + 4], ecx
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov edx, 0x30b7124c
cmovne ebx, edx
test ecx, edi
mov edi, ebx
cmove edi, edx
cmp dword [esi + 8], 0xa
cmovge edi, ebx
mov ecx, dword [esi + 0x18]
jmp 0x57b184
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x57b293
cmp ecx, 0x88e9608c
je 0x57b2d3
cmp ecx, 0xdf32ec89
jne 0x57b26c
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 4]
mov dword [eax], ecx
mov ecx, 0x88e9608c
jmp 0x57b26c
cmp ecx, 0x30b7124c
je 0x57b327
cmp ecx, 0x124998e2
jne 0x57b26c
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne ecx, edi
test dl, dl
mov eax, 0xdf32ec89
cmove ecx, eax
test dh, dh
cmovne ecx, edi
jmp 0x57b26c
mov eax, dword [esi + 0x60]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 4]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov eax, 0x30b7124c
cmovne ebx, eax
test edi, ecx
mov ecx, ebx
cmove ecx, eax
cmp edx, 0xa
cmovge ecx, ebx
mov edx, dword [esi + 0x18]
jmp 0x57b26c
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x57b35b
or cl, al
jne 0x5917b0
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x57b772
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
mov dword [esi + 8], edx
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edx, 0x2601f5a7
cmovne ebx, edx
test edi, ecx
sete byte [esi + 0x28]
mov ecx, ebx
cmove ecx, edx
cmp dword [esi + 8], 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov eax, dword [eax]
mov dword [esi + 8], eax
cmovge ecx, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x57b3e9
cmp edx, 0x87fb68d6
je 0x57b425
cmp edx, 0xfc04dcc5
jne 0x57b3ca
mov edx, 0x87fb68d6
jmp 0x57b3ca
cmp edx, 0x2601f5a7
je 0x57b429
cmp edx, 0x5a893bc4
jne 0x57b3ca
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, bl
xor bh, dl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x57b3ca
mov edx, ecx
jmp 0x57b3ca
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x57b63d
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x57b46f
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x57b63d
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x34], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x57b53c
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
mov dword [esi + 0xc], ecx
cmp dword [esi + 0xc], 0
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
mov eax, 0x1b272c9a
jmp 0x57b4e0
mov eax, ecx
cmp eax, 0x4c6ca681
jle 0x57b4f7
cmp eax, 0x4c6ca682
je 0x57b52c
cmp eax, 0x6707b2cf
jne 0x57b4e0
jmp 0x57b533
cmp eax, 0xf74fd645
je 0x57b4de
cmp eax, 0x1b272c9a
jne 0x57b4e0
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test al, al
mov eax, edi
cmovne eax, ebx
test dl, dl
cmove eax, edi
jmp 0x57b4e0
mov eax, 0xf74fd645
jmp 0x57b4e0
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
mov dword [esi + 0xc], ecx
sete byte [esi + 0x10]
sete bl
mov eax, 0x4c6ca682
mov edx, 0x6707b2cf
cmove eax, edx
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl bh
mov edi, 0x4c6ca682
cmovge eax, edi
xor bh, bl
cmovne eax, edx
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x57b59a
cmp ebx, 0x4c6ca682
je 0x57b5d5
cmp ebx, 0x6707b2cf
jne 0x57b580
jmp 0x57b5e0
cmp ebx, 0xf74fd645
je 0x57b5dc
cmp ebx, 0x1b272c9a
jne 0x57b580
movzx edx, byte [esi + 0x10]
mov dh, byte [esi + 0x28]
mov ebx, edx
xor bl, dh
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test dh, dh
mov ebx, edi
mov ecx, 0xf74fd645
cmovne ebx, ecx
test dl, dl
cmove ebx, edi
jmp 0x57b580
mov ebx, 0xf74fd645
jmp 0x57b580
mov ebx, eax
jmp 0x57b580
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x57b4a7
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x57b45d
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x57b45d
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne al
sete dl
cmp dword [esi + 0x34], 0xa
setge cl
setl ah
xor ah, dl
jne 0x57b669
or cl, al
jne 0x5917ae
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x57b6b4
cmp eax, 0xcd5e6053
je 0x57b70a
cmp eax, 0x18ed46ca
jne 0x57b692
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x57b692
cmp eax, 0x5499d804
je 0x57b739
cmp eax, 0x685e39a2
jne 0x57b692
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x57b692
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x57b692
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x57b35b
or cl, al
test cl, 1
je 0x57b35b
jmp 0x5917b0
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete bl
setne dl
cmp ecx, 0xa
setl bh
setge dh
mov edi, dword [esi + 0x5c]
cmp bh, bl
jne 0x57a7ee
or dh, dl
mov edi, dword [esi + 0x5c]
je 0x57a7ee
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp ecx, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x57b7fd
test dl, dl
je 0x57b7b7
mov edi, dword [esi + 0x5c]
jmp 0x57a7ee
mov edi, dword [esi + 0x5c]
jmp 0x57a7ee
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete dl
setne al
cmp ecx, 0xa
setl ah
setge cl
cmp ah, dl
jne 0x57b82d
or cl, al
jne 0x591790
mov esp, dword [esi + 0x9c]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
sete dh
cmp ecx, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 0x40], esp
sub esp, 0xc
mov dword [esi + 0x48], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x54], edi
mov esp, edi
push eax
mov dword [esi + 0x64], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
push eax
mov dword [esi + 0x6c], esp
push eax
mov dword [esi + 0x88], esp
test dl, dl
je 0x57b856
mov edx, dword [esi + 0x54]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x57c890
mov ecx, dword [esi + 0x40]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete ah
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
mov ebx, dword [esi + 0x38]
mov dword [esi + 4], ebx
mov ebx, dword [esi + 0x24]
mov dword [esi + 8], ebx
jne 0x57b928
or dl, al
jne 0x5917a0
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x57bf03
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x60], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x3c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x98], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x60]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x3c]
sbb ecx, edx
or ecx, eax
jne 0x57b8e8
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x54]
mov edi, dword [esi + 8]
mov dword [ecx], edi
mov edi, dword [esi + 4]
mov dword [ecx + 4], edi
mov edi, dword [esi + 0x98]
mov dword [ecx + 8], edi
setl byte [esi + 0x28]
mov edi, dword [esi + 0xc]
mov dword [ecx + 0xc], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x57ba2e
cmp ecx, 0x20e9c049
je 0x57ba45
cmp ecx, 0x3b23d0b1
jne 0x57ba14
jmp 0x57ba75
cmp ecx, 0x9c6e8745
je 0x57ba49
cmp ecx, 0xeb760989
jne 0x57ba14
mov ecx, 0x20e9c049
jmp 0x57ba14
mov ecx, eax
jmp 0x57ba14
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57ba14
mov eax, dword [esi + 0x64]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x48]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x57bb08
cmp ecx, 0xcfcad29c
je 0x57bb4b
cmp ecx, 0x3aca7e6
jne 0x57baec
mov ecx, eax
jmp 0x57baec
cmp ecx, 0x7c4a5f2
je 0x57bb44
cmp ecx, 0x389c0e25
jne 0x57baec
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57baec
mov ecx, 0x3aca7e6
jmp 0x57baec
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xd4
mov ecx, dword [esi + 0x48]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xd6
mov ecx, dword [esi + 0x40]
push dword [esi + 0x48]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x57bbed
cmp eax, 0xc6e82640
je 0x57bc55
cmp eax, 0x950d98a
jne 0x57bbad
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x57bbad
cmp eax, 0x31a61df5
je 0x57bc0a
cmp eax, 0x4d86efb0
jne 0x57bbad
mov ecx, dword [esi + 0x48]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x57bbad
mov ecx, dword [esi + 0x48]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x57bbad
mov ebx, dword [esi + 0x68]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x98]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax - 1]
imul ecx, eax
mov edx, dword [0x5cf6cc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
setl dl
mov ebx, 0xeb760989
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x57bcd5
cmp ecx, 0x20e9c049
je 0x57bcec
cmp ecx, 0x3b23d0b1
jne 0x57bcbb
jmp 0x57bd1c
cmp ecx, 0x9c6e8745
je 0x57bcf0
cmp ecx, 0xeb760989
jne 0x57bcbb
mov ecx, 0x20e9c049
jmp 0x57bcbb
mov ecx, eax
jmp 0x57bcbb
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57bcbb
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x57bdb5
cmp ecx, 0xcfcad29c
je 0x57bdf3
cmp ecx, 0x3aca7e6
jne 0x57bd99
mov ecx, eax
jmp 0x57bd99
cmp ecx, 0x7c4a5f2
je 0x57bdec
cmp ecx, 0x389c0e25
jne 0x57bd99
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x57bd99
mov ecx, 0x3aca7e6
jmp 0x57bd99
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xd4
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xd5
mov ecx, dword [esi + 0x40]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x57be9b
cmp eax, 0xc6e82640
je 0x57b8e8
cmp eax, 0x950d98a
jne 0x57be56
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x57be56
cmp eax, 0x31a61df5
je 0x57beb8
cmp eax, 0x4d86efb0
jne 0x57be56
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x57be56
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x57be56
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x57c21f
mov dword [esi + 0x60], 1
jmp 0x57bf4a
mov ebx, dword [esi + 0x60]
inc ebx
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x60], ebx
cmp ebx, edx
jae 0x57c21f
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x60]
mov dword [esi + 8], edx
test cl, al
jne 0x57bf95
xor cl, al
mov eax, dword [esi + 0x60]
mov dword [esi + 8], eax
jne 0x57bf95
jmp 0x5917a2
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0xc]
call fcn.00433980
cmp dword [esi + 8], 0
je 0x57c1e7
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0xc], ecx
sete byte [esi + 0x10]
sete al
mov ecx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove ecx, ebx
mov dword [esi + 4], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ecx, edx
setl dl
xor dl, al
mov eax, dword [esi + 0x40]
mov edi, dword [eax]
mov eax, dword [esi + 8]
lea edx, [eax + eax*2]
mov dword [esi + 0x38], edi
lea eax, [edi + edx*4]
mov dword [esi + 0x24], eax
cmovne ecx, ebx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x57c00d
cmp edx, 0xffb13445
je 0x57c044
cmp edx, 0x20ab24e5
jne 0x57bff3
jmp 0x57c04f
cmp edx, 0xbf25ae54
je 0x57c048
cmp edx, 0xe6642f9a
jne 0x57bff3
movzx ebx, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov dh, bl
xor dh, dl
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test dl, dl
mov edx, eax
cmovne edx, edi
test bl, bl
cmove edx, eax
jmp 0x57bff3
mov edx, ecx
jmp 0x57bff3
mov edx, 0xffb13445
jmp 0x57bff3
mov edx, dword [esi + 8]
dec edx
cmp dword [esi + 0xc], 0
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax]
mov dword [esi + 0x3c], edi
mov eax, dword [eax + 4]
mov dword [esi + 0x34], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov dword [esi + 8], edx
lea eax, [edx + edx*2]
mov edx, dword [esi + 0x38]
lea eax, [edx + eax*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x57c0a4
cmp eax, 0xffb13445
je 0x57c0d9
cmp eax, 0x20ab24e5
jne 0x57c08d
jmp 0x57c0e4
cmp eax, 0xbf25ae54
je 0x57c0dd
cmp eax, 0xe6642f9a
jne 0x57c08d
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ebx, edi
test al, al
mov eax, ebx
cmovne eax, edi
test dl, dl
cmove eax, ebx
jmp 0x57c08d
mov eax, ecx
jmp 0x57c08d
mov eax, 0xffb13445
jmp 0x57c08d
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [esi + 0x3c]
cmp edx, dword [eax]
mov edx, dword [esi + 0x34]
sbb edx, dword [eax + 4]
jge 0x57c1e7
cmp dword [esi + 0xc], 0
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x57c12c
cmp eax, 0xffb13445
je 0x57c161
cmp eax, 0x20ab24e5
jne 0x57c115
jmp 0x57c16c
cmp eax, 0xbf25ae54
je 0x57c165
cmp eax, 0xe6642f9a
jne 0x57c115
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ebx, edi
test al, al
mov eax, ebx
cmovne eax, edi
test dl, dl
cmove eax, ebx
jmp 0x57c115
mov eax, ecx
jmp 0x57c115
mov eax, 0xffb13445
jmp 0x57c115
cmp dword [esi + 0xc], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x57c1a7
cmp eax, 0xffb13445
je 0x57c1dc
cmp eax, 0x20ab24e5
jne 0x57c18d
jmp 0x57bf7a
cmp eax, 0xbf25ae54
je 0x57c1e0
cmp eax, 0xe6642f9a
jne 0x57c18d
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edi, 0xbf25ae54
mov edx, 0xffb13445
cmovne edi, edx
test al, al
mov eax, edi
cmovne eax, edx
test bl, bl
cmove eax, edi
jmp 0x57c18d
mov eax, ecx
jmp 0x57c18d
mov eax, 0xffb13445
jmp 0x57c18d
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x57bf28
xor dl, al
jne 0x57bf28
jmp 0x5917a4
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x57c272
cmp edi, 0x88e9608c
je 0x57c2b1
cmp edi, 0xdf32ec89
jne 0x57c24e
mov ecx, dword [esi + 0x6c]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x57c24e
cmp edi, 0x30b7124c
je 0x57c30a
cmp edi, 0x124998e2
jne 0x57c24e
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
test bh, bh
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test cl, cl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bl, bl
cmovne edi, edx
jmp 0x57c24e
mov ecx, dword [esi + 0x6c]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea edi, [ecx + 1]
mov dword [esi + 4], ecx
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete cl
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne ecx, ebx
cmp edi, 0xffffffff
mov edi, ecx
cmove edi, ebx
mov dword [esi + 8], edx
cmp edx, 0xa
cmovge edi, ecx
mov ecx, dword [esi + 0x18]
jmp 0x57c24e
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x40]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x57c35b
cmp ecx, 0x88e9608c
je 0x57c392
cmp ecx, 0xdf32ec89
jne 0x57c334
mov ecx, dword [esi + 0x88]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x57c334
cmp ecx, 0x30b7124c
je 0x57c3e2
cmp ecx, 0x124998e2
jne 0x57c334
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x57c334
mov ecx, dword [esi + 0x88]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x57c334
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x57c410
xor cl, al
je 0x5917a6
mov eax, dword [esi + 0x6c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x88]
cmp eax, dword [ecx]
je 0x57c7fd
mov ecx, dword [esi + 0x6c]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov edi, dword [eax]
mov dword [esi + 8], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x57c4a1
cmp edx, 0x87fb68d6
je 0x57c4dd
cmp edx, 0xfc04dcc5
jne 0x57c482
mov edx, 0x87fb68d6
jmp 0x57c482
cmp edx, 0x2601f5a7
je 0x57c4e1
cmp edx, 0x5a893bc4
jne 0x57c482
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x57c482
mov edx, ecx
jmp 0x57c482
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
cmp dword [esi + 8], ecx
je 0x57c6fa
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x57c527
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x3c]
je 0x57c6fa
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne cl
cmp dword [esi + 0x38], 0xa
setge al
mov edx, eax
xor dl, cl
or al, cl
xor al, 1
or al, dl
jne 0x57c5fd
mov ecx, dword [esi + 0x24]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
mov dword [esi + 0xc], ecx
cmp dword [esi + 0xc], 0
sete byte [esi + 0x10]
sete dl
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl ah
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor ah, dl
cmovne ecx, edi
mov edx, 0x1b272c9a
jmp 0x57c59d
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x57c5b7
cmp edx, 0x4c6ca682
je 0x57c5ed
cmp edx, 0x6707b2cf
jne 0x57c59d
jmp 0x57c5f4
cmp edx, 0xf74fd645
je 0x57c59b
cmp edx, 0x1b272c9a
jne 0x57c59d
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov dh, ah
xor dh, dl
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test dl, dl
mov edx, edi
cmovne edx, ebx
test ah, ah
cmove edx, edi
jmp 0x57c59d
mov edx, 0xf74fd645
jmp 0x57c59d
mov ecx, dword [esi + 8]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x24]
lea ebx, [edx + 1]
imul ebx, edx
mov edx, ebx
and edx, 1
sete dl
mov ecx, dword [esi + 4]
cmp ecx, 0xa
setl ah
xor ah, dl
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
and ebx, 1
mov dword [esi + 0xc], ebx
sete byte [esi + 0x10]
mov ebx, edx
cmove ebx, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge ebx, edx
mov edx, 0x1b272c9a
cmp edx, 0x4c6ca681
jle 0x57c65e
cmp edx, 0x4c6ca682
je 0x57c694
cmp edx, 0x6707b2cf
jne 0x57c644
jmp 0x57c69f
cmp edx, 0xf74fd645
je 0x57c69b
cmp edx, 0x1b272c9a
jne 0x57c644
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov dh, ah
xor dh, dl
mov edi, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne edi, ecx
test dl, dl
mov edx, edi
cmovne edx, ecx
test ah, ah
cmove edx, edi
jmp 0x57c644
mov edx, 0xf74fd645
jmp 0x57c644
mov edx, ebx
jmp 0x57c644
mov edx, dword [esi + 8]
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x18]
test al, al
je 0x57c564
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x57c515
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x57c515
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne al
sete dl
cmp dword [esi + 0x38], 0xa
setge cl
setl ah
xor ah, dl
jne 0x57c726
or cl, al
jne 0x5917a8
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x57c770
cmp eax, 0xcd5e6053
je 0x57c7ce
cmp eax, 0x18ed46ca
jne 0x57c74e
mov eax, dword [esi + 0x6c]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x57c74e
cmp eax, 0x5499d804
je 0x57c3e2
cmp eax, 0x685e39a2
jne 0x57c74e
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x18ed46ca
mov ebx, 0x5499d804
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x57c74e
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x57c74e
mov ecx, dword [esi + 0x40]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dl
cmp ecx, 0xa
setl dh
mov edi, dword [esi + 0x5c]
test dh, dl
jne 0x57b8ba
xor dh, dl
mov edi, dword [esi + 0x5c]
jne 0x57b8ba
mov edi, dword [esi + 0x40]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dh
sete bl
cmp ecx, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
test bh, bh
jne 0x57c888
test dl, dl
jne 0x57c83c
mov edi, dword [esi + 0x5c]
jmp 0x57b8ba
mov edi, dword [esi + 0x5c]
jmp 0x57b8ba
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
setne al
sete dl
cmp ecx, 0xa
setge cl
setl ah
xor ah, dl
jne 0x57c8b8
or cl, al
jne 0x591792
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp eax, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 8], esp
sub esp, 0xc
mov dword [esi + 0x40], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x3c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x57c8e2
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x57d960
mov ecx, dword [esi + 8]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x48], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x38], eax
mov dword [esi + 0x34], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
sete ah
setne al
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setl dh
setge dl
cmp dh, ah
jne 0x57c9b4
or dl, al
jne 0x591796
mov edx, dword [esi + 4]
mov eax, edx
imul eax, dword [esi + 0xc]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x48]
sbb eax, 0
jae 0x57cf93
mov eax, dword [esi + 0x48]
mov edi, dword [esi + 4]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x6c], eax
mov eax, 0
mov ebx, dword [esi + 0xc]
sbb eax, ebx
mov dword [esi + 0x4c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0x24], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x98], eax
mov edx, eax
mov dword [esi + 0x34], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0x38], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x6c]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
sbb ecx, edx
or ecx, eax
jne 0x57c974
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x10]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov edx, dword [esi + 4]
mov dword [ecx], edx
mov edx, dword [esi + 0xc]
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x98]
mov dword [ecx + 8], edx
setl byte [esi + 0x28]
mov edx, dword [esi + 0x24]
mov dword [ecx + 0xc], edx
cmovge eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x57cab8
cmp ecx, 0x20e9c049
je 0x57cacf
cmp ecx, 0x3b23d0b1
jne 0x57ca9e
jmp 0x57cafa
cmp ecx, 0x9c6e8745
je 0x57cad3
cmp ecx, 0xeb760989
jne 0x57ca9e
mov ecx, 0x20e9c049
jmp 0x57ca9e
mov ecx, eax
jmp 0x57ca9e
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x57ca9e
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x40]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x57cb95
cmp ecx, 0xcfcad29c
je 0x57cbd8
cmp ecx, 0x3aca7e6
jne 0x57cb79
mov ecx, eax
jmp 0x57cb79
cmp ecx, 0x7c4a5f2
je 0x57cbd1
cmp ecx, 0x389c0e25
jne 0x57cb79
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57cb79
mov ecx, 0x3aca7e6
jmp 0x57cb79
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xd7
mov ecx, dword [esi + 0x40]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xd9
mov ecx, dword [esi + 8]
push dword [esi + 0x40]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x57cc7b
cmp eax, 0xc6e82640
je 0x57cce5
cmp eax, 0x950d98a
jne 0x57cc3b
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x57cc3b
cmp eax, 0x31a61df5
je 0x57cc98
cmp eax, 0x4d86efb0
jne 0x57cc3b
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x57cc3b
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x57cc3b
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0x24]
mov dword [ebx + 4], eax
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
mov edx, dword [0x5cf6cc]
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne ecx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, dword [esi + 0x98]
mov dword [ebx], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, ecx
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 4]
mov dword [ebx + 8], edx
cmovge eax, ecx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x57cd69
cmp ecx, 0x20e9c049
je 0x57cd80
cmp ecx, 0x3b23d0b1
jne 0x57cd4f
jmp 0x57cdb0
cmp ecx, 0x9c6e8745
je 0x57cd84
cmp ecx, 0xeb760989
jne 0x57cd4f
mov ecx, 0x20e9c049
jmp 0x57cd4f
mov ecx, eax
jmp 0x57cd4f
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57cd4f
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x3c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x57ce4b
cmp ecx, 0xcfcad29c
je 0x57ce8e
cmp ecx, 0x3aca7e6
jne 0x57ce2f
mov ecx, eax
jmp 0x57ce2f
cmp ecx, 0x7c4a5f2
je 0x57ce87
cmp ecx, 0x389c0e25
jne 0x57ce2f
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57ce2f
mov ecx, 0x3aca7e6
jmp 0x57ce2f
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xd7
mov ecx, dword [esi + 0x3c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xd8
mov ecx, dword [esi + 8]
push dword [esi + 0x3c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x57cf30
cmp eax, 0xc6e82640
je 0x57c974
cmp eax, 0x950d98a
jne 0x57cef0
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x57cef0
cmp eax, 0x31a61df5
je 0x57cf4d
cmp eax, 0x4d86efb0
jne 0x57cef0
mov ecx, dword [esi + 0x3c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x57cef0
mov ecx, dword [esi + 0x3c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x57cef0
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x57d2c6
mov dword [esi + 0x58], 1
jmp 0x57cfda
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x57d2c6
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp edi, 0xa
setge cl
setl ch
xor ch, dl
mov edx, dword [esi + 0x58]
mov dword [esi + 4], edx
jne 0x57d025
or cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 4], eax
test cl, 1
je 0x57d025
jmp 0x591798
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0x24]
call fcn.00433980
cmp dword [esi + 4], 0
je 0x57d28e
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0x24], ecx
mov dword [esi + 0x38], eax
test eax, ecx
sete byte [esi + 0x10]
mov ecx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove ecx, ebx
sete al
mov dword [esi + 0xc], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ecx, edx
setl dl
xor dl, al
mov eax, dword [esi + 8]
mov edx, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
mov dword [esi + 0x48], edx
lea eax, [edx + eax*4]
mov dword [esi + 0x34], eax
cmovne ecx, ebx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x57d0a4
cmp edx, 0xffb13445
je 0x57d0e0
cmp edx, 0x20ab24e5
jne 0x57d08a
jmp 0x57d0eb
cmp edx, 0xbf25ae54
je 0x57d0e4
cmp edx, 0xe6642f9a
jne 0x57d08a
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
test dl, dl
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov ebx, 0xbf25ae54
cmove edx, ebx
test ah, ah
cmovne edx, edi
jmp 0x57d08a
mov edx, ecx
jmp 0x57d08a
mov edx, 0xffb13445
jmp 0x57d08a
mov edx, dword [esi + 4]
dec edx
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax]
mov dword [esi + 0x6c], edi
mov eax, dword [eax + 4]
mov dword [esi + 0x4c], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], edx
lea eax, [edx + edx*2]
mov edx, dword [esi + 0x48]
lea eax, [edx + eax*4]
mov dword [esi + 0x48], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x57d142
cmp eax, 0xffb13445
je 0x57d17c
cmp eax, 0x20ab24e5
jne 0x57d12b
jmp 0x57d187
cmp eax, 0xbf25ae54
je 0x57d180
cmp eax, 0xe6642f9a
jne 0x57d12b
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, bl
xor bh, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test bl, bl
mov edx, 0xbf25ae54
cmove eax, edx
test bh, bh
cmovne eax, edi
jmp 0x57d12b
mov eax, ecx
jmp 0x57d12b
mov eax, 0xffb13445
jmp 0x57d12b
mov eax, dword [esi + 0x48]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [esi + 0x6c]
cmp edx, dword [eax]
mov edx, dword [esi + 0x4c]
sbb edx, dword [eax + 4]
jge 0x57d28e
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x57d1d1
cmp eax, 0xffb13445
je 0x57d206
cmp eax, 0x20ab24e5
jne 0x57d1ba
jmp 0x57d211
cmp eax, 0xbf25ae54
je 0x57d20a
cmp eax, 0xe6642f9a
jne 0x57d1ba
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ebx, edi
test al, al
mov eax, ebx
cmovne eax, edi
test dl, dl
cmove eax, ebx
jmp 0x57d1ba
mov eax, ecx
jmp 0x57d1ba
mov eax, 0xffb13445
jmp 0x57d1ba
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x48]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x24], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x57d24e
cmp eax, 0xffb13445
je 0x57d283
cmp eax, 0x20ab24e5
jne 0x57d234
jmp 0x57d00a
cmp eax, 0xbf25ae54
je 0x57d287
cmp eax, 0xe6642f9a
jne 0x57d234
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edi, 0xbf25ae54
mov edx, 0xffb13445
cmovne edi, edx
test al, al
mov eax, edi
cmovne eax, edx
test bl, bl
cmove eax, edi
jmp 0x57d234
mov eax, ecx
jmp 0x57d234
mov eax, 0xffb13445
jmp 0x57d234
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
cmp edi, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x57cfb8
or dl, al
test dl, 1
je 0x57cfb8
jmp 0x59179a
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 0xc], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x57d31a
cmp edi, 0x88e9608c
je 0x57d359
cmp edi, 0xdf32ec89
jne 0x57d2f6
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x57d2f6
cmp edi, 0x30b7124c
je 0x57d3af
cmp edi, 0x124998e2
jne 0x57d2f6
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x57d2f6
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
mov dword [esi + 0xc], edi
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov edi, 0xdf32ec89
mov ebx, 0x30b7124c
cmove edi, ebx
sete cl
mov dword [esi + 4], edx
cmp edx, 0xa
mov edx, 0xdf32ec89
cmovge edi, edx
setl dl
xor dl, cl
cmovne edi, ebx
jmp 0x57d2f6
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
mov dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x57d404
cmp ecx, 0x88e9608c
je 0x57d444
cmp ecx, 0xdf32ec89
jne 0x57d3dd
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0xc]
mov dword [eax], ecx
mov ecx, 0x88e9608c
jmp 0x57d3dd
cmp ecx, 0x30b7124c
je 0x57d498
cmp ecx, 0x124998e2
jne 0x57d3dd
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne ecx, edi
test dl, dl
mov eax, 0xdf32ec89
cmove ecx, eax
test dh, dh
cmovne ecx, edi
jmp 0x57d3dd
mov eax, dword [esi + 0x60]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0xc]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov eax, 0x30b7124c
cmovne ebx, eax
test edi, ecx
mov ecx, ebx
cmove ecx, eax
cmp edx, 0xa
cmovge ecx, ebx
mov edx, dword [esi + 0x18]
jmp 0x57d3dd
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
jmp 0x57d4c5
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x57d4de
xor cl, al
je 0x59179c
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x57d8cd
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea ecx, [edi - 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmovne ebx, edi
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
mov edi, ebx
mov ecx, 0x2601f5a7
cmove edi, ecx
cmp edx, 0xa
setl byte [esi + 0x18]
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov dword [esi + 4], ecx
cmovge edi, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x57d56f
cmp edx, 0x87fb68d6
je 0x57d5a6
cmp edx, 0xfc04dcc5
jne 0x57d550
mov edx, 0x87fb68d6
jmp 0x57d550
cmp edx, 0x2601f5a7
je 0x57d5aa
cmp edx, 0x5a893bc4
jne 0x57d550
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, bl
xor dh, dl
mov ecx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne ecx, eax
test dl, dl
mov edx, ecx
cmovne edx, eax
test bl, bl
cmove edx, ecx
jmp 0x57d550
mov edx, edi
jmp 0x57d550
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x4c], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x48], eax
mov dword [esi + 0x6c], ecx
cmp dword [esi + 4], ecx
je 0x57d7ca
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x57d5f0
mov eax, dword [esi + 4]
add eax, 8
mov dword [esi + 4], eax
cmp eax, dword [esi + 0x6c]
je 0x57d7ca
mov eax, dword [esi + 0x4c]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete dl
cmp dword [esi + 0x48], 0xa
setge al
setl ah
or al, cl
xor ah, dl
xor al, 1
or al, ah
mov byte [esi + 0x34], al
test al, 1
jne 0x57d6cd
mov eax, dword [esi + 0x38]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
and eax, edx
mov dword [esi + 0x24], eax
cmp dword [esi + 0x24], 0
sete byte [esi + 0x10]
sete dl
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl ah
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor ah, dl
cmovne ecx, edi
mov ebx, 0x1b272c9a
jmp 0x57d668
mov ebx, ecx
cmp ebx, 0x4c6ca681
jle 0x57d682
cmp ebx, 0x4c6ca682
je 0x57d6bd
cmp ebx, 0x6707b2cf
jne 0x57d668
jmp 0x57d6c4
cmp ebx, 0xf74fd645
je 0x57d666
cmp ebx, 0x1b272c9a
jne 0x57d668
movzx edx, byte [esi + 0x10]
mov ah, byte [esi + 0x28]
mov dh, dl
xor dh, ah
test ah, ah
mov ebx, 0x4c6ca682
mov eax, 0xf74fd645
cmovne ebx, eax
test dl, dl
mov edi, 0x4c6ca682
cmove ebx, edi
test dh, dh
cmovne ebx, eax
jmp 0x57d668
mov ebx, 0xf74fd645
jmp 0x57d668
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x38]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0x24], ecx
sete byte [esi + 0x10]
sete ah
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove edx, edi
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl bl
mov edi, 0x4c6ca682
cmovge edx, edi
xor bl, ah
mov eax, 0x6707b2cf
cmovne edx, eax
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x57d72c
cmp ebx, 0x4c6ca682
je 0x57d762
cmp ebx, 0x6707b2cf
jne 0x57d712
jmp 0x57d76d
cmp ebx, 0xf74fd645
je 0x57d769
cmp ebx, 0x1b272c9a
jne 0x57d712
mov ah, byte [esi + 0x10]
movzx ebx, byte [esi + 0x28]
mov bh, ah
xor bh, bl
mov edi, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne edi, ecx
test bl, bl
mov ebx, edi
cmovne ebx, ecx
test ah, ah
cmove ebx, edi
jmp 0x57d712
mov ebx, 0xf74fd645
jmp 0x57d712
mov ebx, edx
jmp 0x57d712
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
test byte [esi + 0x34], 1
je 0x57d62f
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x57d5de
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x4c], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x57d5de
mov ecx, dword [esi + 0x4c]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
setne al
cmp dword [esi + 0x48], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x57d7f6
or cl, al
jne 0x59179e
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x57d840
cmp eax, 0xcd5e6053
je 0x57d89e
cmp eax, 0x18ed46ca
jne 0x57d81e
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x57d81e
cmp eax, 0x5499d804
je 0x57d4af
cmp eax, 0x685e39a2
jne 0x57d81e
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x18ed46ca
mov ebx, 0x5499d804
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x57d81e
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x57d81e
mov ecx, dword [esi + 8]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete bl
setne dl
cmp eax, 0xa
setl bh
setge dh
mov edi, dword [esi + 0x5c]
cmp bh, bl
jne 0x57c946
or dh, dl
mov edi, dword [esi + 0x5c]
je 0x57c946
mov edi, dword [esi + 8]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp eax, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x57d958
test dl, dl
je 0x57d912
mov edi, dword [esi + 0x5c]
jmp 0x57c946
mov edi, dword [esi + 0x5c]
jmp 0x57c946
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
setne cl
sete dl
cmp eax, 0xa
setge al
setl ah
xor ah, dl
jne 0x57d988
or al, cl
jne 0x591794
mov esp, dword [esi + 0xa0]
mov edx, dword [0x5d21a8]
mov ecx, dword [0x5d21ac]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x5af2d6e3
mov edi, 0xbf311110
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x579c71
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp dword [0x5cf5f4], 0xa
setl dl
test dl, cl
jne 0x57da0d
xor dl, cl
jne 0x57da0d
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x57d9d3
cmp byte [eax + 0x2d0], 0x30
jne 0x57da82
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x57da82
xor cl, al
jne 0x57da82
push 0
push 0
mov edi, dword [sym.imp.KERNEL32.dll_Beep]
call edi
push 0
push 0
call edi
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x57da82
or cl, al
test cl, 1
jne 0x57da47
mov ecx, dword [esi + 4]
call fcn.0040ed30
mov esp, dword [esi + 0x40]
mov dword [esi + 0xa0], esp
mov dword [esi + 0x9c], esp
mov eax, dword [0x5cf6c0]
lea ebx, [eax + 1]
imul ebx, eax
test bl, 1
sete dh
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setge dl
setl cl
or dl, bl
xor cl, dh
xor dl, 1
or dl, cl
push eax
sub esp, 8
mov dword [esi + 0x40], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x68], ecx
mov esp, ecx
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x6c], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x64], ecx
mov esp, ecx
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, 1
je 0x57dac2
mov ecx, dword [esi + 0x68]
add ecx, 0x10
mov dword [esi + 0x90], ecx
mov ecx, dword [esi + 0x64]
add ecx, 0x10
mov dword [esi + 0x80], ecx
mov ebx, 0xa
cmp ebx, 0x1f4
jae 0x57eb36
mov ecx, dword [esi + 0x40]
call fcn.004322e0
lea eax, [ebx + 1]
imul ebx, eax
shr ebx, 1
mov dword [esi + 0x34], ebx
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
mov ecx, dword [0x5cf6c0]
lea eax, [ecx - 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x57db90
xor dl, al
je 0x59170e
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x57e164
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x3c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x98], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x3c]
sbb ecx, edx
or ecx, eax
jne 0x57db55
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x10]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov edx, dword [esi + 8]
mov dword [ecx], edx
mov edx, dword [esi + 4]
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x98]
mov dword [ecx + 8], edx
setl byte [esi + 0x28]
mov edx, dword [esi + 0xc]
mov dword [ecx + 0xc], edx
cmovge eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x57dc94
cmp ecx, 0x20e9c049
je 0x57dcab
cmp ecx, 0x3b23d0b1
jne 0x57dc7a
jmp 0x57dcdb
cmp ecx, 0x9c6e8745
je 0x57dcaf
cmp ecx, 0xeb760989
jne 0x57dc7a
mov ecx, 0x20e9c049
jmp 0x57dc7a
mov ecx, eax
jmp 0x57dc7a
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57dc7a
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x57dd76
cmp ecx, 0xcfcad29c
je 0x57ddb4
cmp ecx, 0x3aca7e6
jne 0x57dd5a
mov ecx, eax
jmp 0x57dd5a
cmp ecx, 0x7c4a5f2
je 0x57ddad
cmp ecx, 0x389c0e25
jne 0x57dd5a
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x57dd5a
mov ecx, 0x3aca7e6
jmp 0x57dd5a
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xdb
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xdd
mov ecx, dword [esi + 0x40]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x57de57
cmp eax, 0xc6e82640
je 0x57debf
cmp eax, 0x950d98a
jne 0x57de17
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x57de17
cmp eax, 0x31a61df5
je 0x57de74
cmp eax, 0x4d86efb0
jne 0x57de17
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x57de17
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x57de17
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
mov edx, dword [0x5cf6cc]
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne ecx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, dword [esi + 0x98]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, ecx
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
cmovge eax, ecx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x57df43
cmp ecx, 0x20e9c049
je 0x57df5a
cmp ecx, 0x3b23d0b1
jne 0x57df29
jmp 0x57df8a
cmp ecx, 0x9c6e8745
je 0x57df5e
cmp ecx, 0xeb760989
jne 0x57df29
mov ecx, 0x20e9c049
jmp 0x57df29
mov ecx, eax
jmp 0x57df29
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57df29
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x6c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x57e020
cmp ecx, 0xcfcad29c
je 0x57e05e
cmp ecx, 0x3aca7e6
jne 0x57e004
mov ecx, eax
jmp 0x57e004
cmp ecx, 0x7c4a5f2
je 0x57e057
cmp ecx, 0x389c0e25
jne 0x57e004
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x57e004
mov ecx, 0x3aca7e6
jmp 0x57e004
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xdb
mov ecx, dword [esi + 0x6c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xdc
mov ecx, dword [esi + 0x40]
push dword [esi + 0x6c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x57e101
cmp eax, 0xc6e82640
je 0x57db55
cmp eax, 0x950d98a
jne 0x57e0c1
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x57e0c1
cmp eax, 0x31a61df5
je 0x57e11e
cmp eax, 0x4d86efb0
jne 0x57e0c1
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x57e0c1
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x57e0c1
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x57e48d
mov dword [esi + 0x58], 1
jmp 0x57e1ab
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x57e48d
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x58]
mov dword [esi + 4], edx
test cl, al
jne 0x57e1f3
xor cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 4], eax
jne 0x57e1f3
jmp 0x591788
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edx
call fcn.00433980
cmp dword [esi + 4], 0
je 0x57e456
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax + 1]
imul edi, eax
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete al
cmp ebx, 0xa
setl dl
xor dl, al
mov eax, 0xbf25ae54
mov edx, 0x20ab24e5
cmovne eax, edx
mov dword [esi + 0x24], ecx
test ecx, edi
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
mov dword [esi + 0xc], ebx
cmp ebx, 0xa
cmovge ecx, eax
mov dword [esi + 8], ecx
setl byte [esi + 0x28]
mov eax, dword [esi + 0x40]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
lea edx, [eax + eax*2]
mov dword [esi + 0x34], ecx
lea eax, [ecx + edx*4]
mov dword [esi + 0x38], eax
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x57e274
cmp edx, 0xffb13445
je 0x57e2ab
cmp edx, 0x20ab24e5
jne 0x57e25a
jmp 0x57e2b7
cmp edx, 0xbf25ae54
je 0x57e2b0
cmp edx, 0xe6642f9a
jne 0x57e25a
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
mov ebx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne ebx, ecx
test dl, dl
mov edx, ebx
cmovne edx, ecx
test al, al
cmove edx, ebx
jmp 0x57e25a
mov edx, dword [esi + 8]
jmp 0x57e25a
mov edx, 0xffb13445
jmp 0x57e25a
mov ecx, dword [esi + 4]
dec ecx
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x48], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x3c], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x34]
lea eax, [ecx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x57e30b
cmp eax, 0xffb13445
je 0x57e340
cmp eax, 0x20ab24e5
jne 0x57e2f4
jmp 0x57e34c
cmp eax, 0xbf25ae54
je 0x57e345
cmp eax, 0xe6642f9a
jne 0x57e2f4
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne edx, ecx
test al, al
mov eax, edx
cmovne eax, ecx
test bl, bl
cmove eax, edx
jmp 0x57e2f4
mov eax, dword [esi + 8]
jmp 0x57e2f4
mov eax, 0xffb13445
jmp 0x57e2f4
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x48]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x3c]
sbb ecx, dword [eax + 4]
jge 0x57e456
test dword [esi + 0x24], edi
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x57e393
cmp eax, 0xffb13445
je 0x57e3c8
cmp eax, 0x20ab24e5
jne 0x57e37c
jmp 0x57e3d4
cmp eax, 0xbf25ae54
je 0x57e3cd
cmp eax, 0xe6642f9a
jne 0x57e37c
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne ebx, ecx
test al, al
mov eax, ebx
cmovne eax, ecx
test dl, dl
cmove eax, ebx
jmp 0x57e37c
mov eax, dword [esi + 8]
jmp 0x57e37c
mov eax, 0xffb13445
jmp 0x57e37c
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x57e40e
cmp ecx, 0xffb13445
je 0x57e44a
cmp ecx, 0x20ab24e5
jne 0x57e3f1
jmp 0x57e1da
cmp ecx, 0xbf25ae54
je 0x57e44f
cmp ecx, 0xe6642f9a
jne 0x57e3f1
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ah, al
xor ah, cl
test cl, cl
mov ecx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne ecx, ebx
test al, al
mov edi, 0xbf25ae54
cmove ecx, edi
test ah, ah
cmovne ecx, ebx
jmp 0x57e3f1
mov ecx, dword [esi + 8]
jmp 0x57e3f1
mov ecx, 0xffb13445
jmp 0x57e3f1
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x57e189
xor dl, al
jne 0x57e189
jmp 0x59178a
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x57e4e0
cmp edi, 0x88e9608c
je 0x57e520
cmp edi, 0xdf32ec89
jne 0x57e4bc
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x57e4bc
cmp edi, 0x30b7124c
je 0x57e579
cmp edi, 0x124998e2
jne 0x57e4bc
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, cl
xor bh, bl
test cl, cl
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test bl, bl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bh, bh
cmovne edi, edx
jmp 0x57e4bc
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea edi, [ecx + 1]
mov dword [esi + 4], ecx
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete cl
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne ecx, ebx
cmp edi, 0xffffffff
mov edi, ecx
cmove edi, ebx
mov dword [esi + 8], edx
cmp edx, 0xa
cmovge edi, ecx
mov ecx, dword [esi + 0x18]
jmp 0x57e4bc
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 0x40]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x57e5ce
cmp ecx, 0x88e9608c
je 0x57e60e
cmp ecx, 0xdf32ec89
jne 0x57e5a7
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 4]
mov dword [eax], ecx
mov ecx, 0x88e9608c
jmp 0x57e5a7
cmp ecx, 0x30b7124c
je 0x57e662
cmp ecx, 0x124998e2
jne 0x57e5a7
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne ecx, edi
test dl, dl
mov eax, 0xdf32ec89
cmove ecx, eax
test dh, dh
cmovne ecx, edi
jmp 0x57e5a7
mov eax, dword [esi + 0x60]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 4]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov eax, 0x30b7124c
cmovne ebx, eax
test edi, ecx
mov ecx, ebx
cmove ecx, eax
cmp edx, 0xa
cmovge ecx, ebx
mov edx, dword [esi + 0x18]
jmp 0x57e5a7
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf6c4], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x57e696
or cl, al
jne 0x59178e
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x57eaa3
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov eax, dword [eax]
mov dword [esi + 8], eax
mov eax, 0xfc04dcc5
cmovge ecx, eax
xor dl, bl
cmovne ecx, edi
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x57e71f
cmp edx, 0x87fb68d6
je 0x57e756
cmp edx, 0xfc04dcc5
jne 0x57e700
mov edx, 0x87fb68d6
jmp 0x57e700
cmp edx, 0x2601f5a7
je 0x57e75a
cmp edx, 0x5a893bc4
jne 0x57e700
movzx eax, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, al
xor dh, dl
mov ebx, 0xfc04dcc5
mov edi, 0x87fb68d6
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x57e700
mov edx, ecx
jmp 0x57e700
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
cmp dword [esi + 8], ecx
je 0x57e97c
mov eax, dword [0x5cf6f0]
mov dword [esi + 0xc], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x57e7a0
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x3c]
je 0x57e97c
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne cl
sete dl
cmp dword [esi + 0x38], 0xa
setge al
setl ah
xor ah, dl
or al, cl
xor al, 1
or al, ah
mov byte [esi + 0x24], al
jne 0x57e875
mov eax, dword [esi + 0xc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
test ecx, ecx
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov ebx, 0x6707b2cf
cmove ecx, ebx
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl dl
mov edi, 0x4c6ca682
cmovge ecx, edi
xor dl, al
cmovne ecx, ebx
mov edx, 0x1b272c9a
jmp 0x57e814
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x57e82e
cmp edx, 0x4c6ca682
je 0x57e865
cmp edx, 0x6707b2cf
jne 0x57e814
jmp 0x57e86c
cmp edx, 0xf74fd645
je 0x57e812
cmp edx, 0x1b272c9a
jne 0x57e814
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x57e814
mov edx, 0xf74fd645
jmp 0x57e814
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0xc]
lea ecx, [eax - 1]
imul ecx, eax
mov edx, ecx
and edx, 1
sete dl
mov edi, dword [esi + 4]
cmp edi, 0xa
setl ah
xor ah, dl
mov edx, 0x4c6ca682
mov eax, 0x6707b2cf
cmovne edx, eax
and ecx, 1
sete byte [esi + 0x10]
mov ebx, edx
cmove ebx, eax
cmp edi, 0xa
setl byte [esi + 0x28]
cmovge ebx, edx
mov edx, 0x1b272c9a
cmp edx, 0x4c6ca681
jle 0x57e8d3
cmp edx, 0x4c6ca682
je 0x57e914
cmp edx, 0x6707b2cf
jne 0x57e8b9
jmp 0x57e91f
cmp edx, 0xf74fd645
je 0x57e91b
cmp edx, 0x1b272c9a
jne 0x57e8b9
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
test dl, dl
mov edx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne edx, edi
test al, al
mov edi, 0x4c6ca682
cmove edx, edi
test ah, ah
mov eax, 0xf74fd645
cmovne edx, eax
jmp 0x57e8b9
mov edx, 0xf74fd645
jmp 0x57e8b9
mov edx, ebx
jmp 0x57e8b9
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
cmp byte [esi + 0x24], 0
je 0x57e7dd
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x57e78e
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0xc], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x57e78e
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x38], 0xa
setl cl
test cl, al
jne 0x57e9a2
xor cl, al
je 0x59178c
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x57e9ed
cmp eax, 0xcd5e6053
je 0x57ea42
cmp eax, 0x18ed46ca
jne 0x57e9cb
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x57e9cb
cmp eax, 0x5499d804
je 0x57ea6c
cmp eax, 0x685e39a2
jne 0x57e9cb
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x57e9cb
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x57e9cb
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x57e696
xor cl, al
jne 0x57e696
jmp 0x59178e
mov ecx, dword [esi + 0x40]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
setne dl
sete cl
cmp edi, 0xa
setge dh
setl ch
xor ch, cl
mov ebx, dword [esi + 0x5c]
jne 0x57db27
or dh, dl
mov ebx, dword [esi + 0x5c]
je 0x57db27
mov edi, dword [esi + 0x40]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
sete cl
cmp edi, 0xa
setl ch
mov dl, ch
xor dl, cl
test ch, cl
jne 0x57eb2e
test dl, dl
je 0x57eae8
mov ebx, dword [esi + 0x5c]
jmp 0x57db27
mov ebx, dword [esi + 0x5c]
jmp 0x57db27
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete cl
cmp edi, 0xa
setge al
setl ah
xor ah, cl
jne 0x57eb59
or al, dl
test al, 1
jne 0x59176e
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp eax, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x6c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x57eb83
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x57fbff
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x57ec4f
xor dl, al
je 0x59177e
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x57f22c
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x98], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x57ec15
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 8]
mov dword [ecx], ebx
mov ebx, dword [esi + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x98]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0xc]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x57ed50
cmp ecx, 0x20e9c049
je 0x57ed67
cmp ecx, 0x3b23d0b1
jne 0x57ed36
jmp 0x57ed97
cmp ecx, 0x9c6e8745
je 0x57ed6b
cmp ecx, 0xeb760989
jne 0x57ed36
mov ecx, 0x20e9c049
jmp 0x57ed36
mov ecx, eax
jmp 0x57ed36
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57ed36
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x57ee30
cmp ecx, 0xcfcad29c
je 0x57ee73
cmp ecx, 0x3aca7e6
jne 0x57ee14
mov ecx, eax
jmp 0x57ee14
cmp ecx, 0x7c4a5f2
je 0x57ee6c
cmp ecx, 0x389c0e25
jne 0x57ee14
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57ee14
mov ecx, 0x3aca7e6
jmp 0x57ee14
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xde
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xe0
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x57ef1b
cmp eax, 0xc6e82640
je 0x57ef85
cmp eax, 0x950d98a
jne 0x57eed6
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x57eed6
cmp eax, 0x31a61df5
je 0x57ef38
cmp eax, 0x4d86efb0
jne 0x57eed6
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x57eed6
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x57eed6
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x98]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf6cc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x57f004
cmp ecx, 0x20e9c049
je 0x57f01b
cmp ecx, 0x3b23d0b1
jne 0x57efea
jmp 0x57f046
cmp ecx, 0x9c6e8745
je 0x57f01f
cmp ecx, 0xeb760989
jne 0x57efea
mov ecx, 0x20e9c049
jmp 0x57efea
mov ecx, eax
jmp 0x57efea
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x57efea
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x6c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x57f0df
cmp ecx, 0xcfcad29c
je 0x57f122
cmp ecx, 0x3aca7e6
jne 0x57f0c3
mov ecx, eax
jmp 0x57f0c3
cmp ecx, 0x7c4a5f2
je 0x57f11b
cmp ecx, 0x389c0e25
jne 0x57f0c3
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57f0c3
mov ecx, 0x3aca7e6
jmp 0x57f0c3
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xde
mov ecx, dword [esi + 0x6c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xdf
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x6c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x57f1c4
cmp eax, 0xc6e82640
je 0x57ec15
cmp eax, 0x950d98a
jne 0x57f184
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x57f184
cmp eax, 0x31a61df5
je 0x57f1e1
cmp eax, 0x4d86efb0
jne 0x57f184
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x57f184
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x57f184
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x57f569
mov dword [esi + 0x58], 1
jmp 0x57f273
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x57f569
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x58]
mov dword [esi + 8], edx
test cl, al
jne 0x57f2be
xor cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 8], eax
jne 0x57f2be
jmp 0x591780
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0xc]
call fcn.00433980
cmp dword [esi + 8], 0
je 0x57f52c
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0xc], ecx
mov dword [esi + 0x24], eax
test eax, ecx
sete byte [esi + 0x10]
mov ecx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove ecx, ebx
sete al
mov dword [esi + 4], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ecx, edx
setl dl
xor dl, al
mov eax, dword [esi + 0x3c]
mov edx, dword [eax]
mov eax, dword [esi + 8]
lea eax, [eax + eax*2]
mov dword [esi + 0x34], edx
lea eax, [edx + eax*4]
mov dword [esi + 0x38], eax
cmovne ecx, ebx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x57f33d
cmp edx, 0xffb13445
je 0x57f379
cmp edx, 0x20ab24e5
jne 0x57f323
jmp 0x57f384
cmp edx, 0xbf25ae54
je 0x57f37d
cmp edx, 0xe6642f9a
jne 0x57f323
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
test dl, dl
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov ebx, 0xbf25ae54
cmove edx, ebx
test ah, ah
cmovne edx, edi
jmp 0x57f323
mov edx, ecx
jmp 0x57f323
mov edx, 0xffb13445
jmp 0x57f323
mov edx, dword [esi + 8]
dec edx
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax]
mov dword [esi + 0x48], edi
mov eax, dword [eax + 4]
mov dword [esi + 0x40], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov dword [esi + 8], edx
lea eax, [edx + edx*2]
mov edx, dword [esi + 0x34]
lea eax, [edx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x57f3db
cmp eax, 0xffb13445
je 0x57f415
cmp eax, 0x20ab24e5
jne 0x57f3c4
jmp 0x57f420
cmp eax, 0xbf25ae54
je 0x57f419
cmp eax, 0xe6642f9a
jne 0x57f3c4
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, al
xor bh, bl
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test bl, bl
mov edx, 0xbf25ae54
cmove eax, edx
test bh, bh
cmovne eax, edi
jmp 0x57f3c4
mov eax, ecx
jmp 0x57f3c4
mov eax, 0xffb13445
jmp 0x57f3c4
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [esi + 0x48]
cmp edx, dword [eax]
mov edx, dword [esi + 0x40]
sbb edx, dword [eax + 4]
jge 0x57f52c
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x57f46a
cmp eax, 0xffb13445
je 0x57f4a4
cmp eax, 0x20ab24e5
jne 0x57f453
jmp 0x57f4af
cmp eax, 0xbf25ae54
je 0x57f4a8
cmp eax, 0xe6642f9a
jne 0x57f453
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test dl, dl
mov ebx, 0xbf25ae54
cmove eax, ebx
test dh, dh
cmovne eax, edi
jmp 0x57f453
mov eax, ecx
jmp 0x57f453
mov eax, 0xffb13445
jmp 0x57f453
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x57f4ec
cmp eax, 0xffb13445
je 0x57f521
cmp eax, 0x20ab24e5
jne 0x57f4d2
jmp 0x57f2a3
cmp eax, 0xbf25ae54
je 0x57f525
cmp eax, 0xe6642f9a
jne 0x57f4d2
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edi, 0xbf25ae54
mov edx, 0xffb13445
cmovne edi, edx
test al, al
mov eax, edi
cmovne eax, edx
test bl, bl
cmove eax, edi
jmp 0x57f4d2
mov eax, ecx
jmp 0x57f4d2
mov eax, 0xffb13445
jmp 0x57f4d2
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete ah
setne al
cmp edi, 0xa
setl dh
setge dl
cmp dh, ah
jne 0x57f251
or dl, al
je 0x57f251
jmp 0x591782
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x57f5bc
cmp edi, 0x88e9608c
je 0x57f5fb
cmp edi, 0xdf32ec89
jne 0x57f598
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x57f598
cmp edi, 0x30b7124c
je 0x57f656
cmp edi, 0x124998e2
jne 0x57f598
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
test bh, bh
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test cl, cl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bl, bl
cmovne edi, edx
jmp 0x57f598
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
mov dword [esi + 4], edx
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 8], ebx
cmp ebx, 0xa
mov ebx, 0xdf32ec89
cmovge edi, ebx
setl ch
xor ch, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x57f598
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x57f6ab
cmp ecx, 0x88e9608c
je 0x57f6e6
cmp ecx, 0xdf32ec89
jne 0x57f684
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 4]
mov dword [eax], ecx
mov ecx, 0x88e9608c
jmp 0x57f684
cmp ecx, 0x30b7124c
je 0x57f73a
cmp ecx, 0x124998e2
jne 0x57f684
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov eax, 0x88e9608c
cmovne edi, eax
test cl, cl
mov ecx, edi
cmovne ecx, eax
test dl, dl
cmove ecx, edi
jmp 0x57f684
mov eax, dword [esi + 0x60]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 4]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov eax, 0x30b7124c
cmovne ebx, eax
test edi, ecx
mov ecx, ebx
cmove ecx, eax
cmp edx, 0xa
cmovge ecx, ebx
mov edx, dword [esi + 0x18]
jmp 0x57f684
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
jmp 0x57f767
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x57f780
xor cl, al
je 0x591784
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x57fb71
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmovne ebx, edi
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
mov edi, ebx
mov ecx, 0x2601f5a7
cmove edi, ecx
cmp edx, 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov ecx, dword [eax]
mov dword [esi + 8], ecx
cmovge edi, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x57f811
cmp edx, 0x87fb68d6
je 0x57f84d
cmp edx, 0xfc04dcc5
jne 0x57f7f2
mov edx, 0x87fb68d6
jmp 0x57f7f2
cmp edx, 0x2601f5a7
je 0x57f851
cmp edx, 0x5a893bc4
jne 0x57f7f2
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, bl
xor bh, dl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov ecx, 0xfc04dcc5
cmove edx, ecx
test bh, bh
cmovne edx, eax
jmp 0x57f7f2
mov edx, edi
jmp 0x57f7f2
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x57fa73
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x57f897
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x57fa73
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x34], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x57f970
mov eax, dword [esi + 0x24]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0xc], ecx
mov ebx, dword [esi + 0xc]
test ebx, ebx
sete al
mov ecx, dword [esi + 4]
cmp ecx, 0xa
setl dl
xor dl, al
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
test ebx, ebx
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge eax, edx
mov ecx, 0x1b272c9a
jmp 0x57f90a
mov ecx, eax
cmp ecx, 0x4c6ca681
jle 0x57f924
cmp ecx, 0x4c6ca682
je 0x57f960
cmp ecx, 0x6707b2cf
jne 0x57f90a
jmp 0x57f967
cmp ecx, 0xf74fd645
je 0x57f908
cmp ecx, 0x1b272c9a
jne 0x57f90a
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne ecx, ebx
test dl, dl
mov edi, 0x4c6ca682
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57f90a
mov ecx, 0xf74fd645
jmp 0x57f90a
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ebx, eax
xor ebx, 0xfffffffe
mov edx, ebx
and edx, eax
sete dl
mov ecx, dword [esi + 4]
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
and ebx, eax
mov dword [esi + 0xc], ebx
sete byte [esi + 0x10]
mov ebx, edx
cmove ebx, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge ebx, edx
mov eax, 0x1b272c9a
cmp eax, 0x4c6ca681
jle 0x57f9d1
cmp eax, 0x4c6ca682
je 0x57fa0b
cmp eax, 0x6707b2cf
jne 0x57f9ba
jmp 0x57fa16
cmp eax, 0xf74fd645
je 0x57fa12
cmp eax, 0x1b272c9a
jne 0x57f9ba
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, al
xor dh, dl
test al, al
mov eax, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne eax, ecx
test dl, dl
mov edi, 0x4c6ca682
cmove eax, edi
test dh, dh
cmovne eax, ecx
jmp 0x57f9ba
mov eax, 0xf74fd645
jmp 0x57f9ba
mov eax, ebx
jmp 0x57f9ba
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x57f8cc
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x57f885
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x57f885
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne al
sete dl
cmp dword [esi + 0x34], 0xa
setge cl
setl ah
xor ah, dl
jne 0x57fa9f
or cl, al
jne 0x591786
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x57fae9
cmp eax, 0xcd5e6053
je 0x57fb47
cmp eax, 0x18ed46ca
jne 0x57fac7
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x57fac7
cmp eax, 0x5499d804
je 0x57f752
cmp eax, 0x685e39a2
jne 0x57fac7
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x18ed46ca
mov ebx, 0x5499d804
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x57fac7
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x57fac7
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
cmp eax, 0xa
setl dh
mov edi, dword [esi + 0x5c]
test dh, dl
jne 0x57ebe7
xor dh, dl
mov edi, dword [esi + 0x5c]
jne 0x57ebe7
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp eax, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x57fbf7
test dl, dl
je 0x57fbb1
mov edi, dword [esi + 0x5c]
jmp 0x57ebe7
mov edi, dword [esi + 0x5c]
jmp 0x57ebe7
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
setne cl
sete dl
cmp eax, 0xa
setge al
setl ah
xor ah, dl
jne 0x57fc27
or al, cl
jne 0x591770
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea ebx, [ecx + 1]
imul ebx, ecx
test bl, 1
sete dh
cmp edi, 0xa
setge dl
setl al
or dl, bl
xor al, dh
xor dl, 1
or dl, al
push eax
sub esp, 8
mov dword [esi + 8], esp
sub esp, 0xc
mov dword [esi + 0x34], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x54], eax
mov esp, eax
push eax
mov dword [esi + 0x64], esp
sub esp, 0xc
mov dword [esi + 0x40], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x68], eax
mov esp, eax
push eax
mov dword [esi + 0x84], esp
push eax
mov dword [esi + 0x6c], esp
push eax
mov dword [esi + 0x88], esp
test dl, 1
je 0x57fc57
mov eax, dword [esi + 0x54]
add eax, 0x10
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x68]
add eax, 0x10
mov dword [esi + 0x80], eax
mov ebx, 0xa
cmp ebx, 0x1f4
jae 0x580cc5
mov ecx, dword [esi + 8]
call fcn.004322e0
lea eax, [ebx + 1]
imul ebx, eax
shr ebx, 1
mov dword [esi + 0x48], ebx
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete ah
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
mov ebx, dword [esi + 0x3c]
mov dword [esi + 0xc], ebx
mov ebx, dword [esi + 0x38]
mov dword [esi + 4], ebx
jne 0x57fd2a
or dl, al
jne 0x591774
mov edx, dword [esi + 4]
mov eax, edx
imul eax, dword [esi + 0xc]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x48]
sbb eax, 0
jae 0x5802f9
mov eax, dword [esi + 0x48]
mov edi, dword [esi + 4]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x60], eax
mov eax, 0
mov ebx, dword [esi + 0xc]
sbb eax, ebx
mov dword [esi + 0x4c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0x24], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x98], eax
mov edx, eax
mov dword [esi + 0x3c], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0x38], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x60]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
sbb ecx, edx
or ecx, eax
jne 0x57fcea
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x10]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x54]
mov edx, dword [esi + 4]
mov dword [ecx], edx
mov edx, dword [esi + 0xc]
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x98]
mov dword [ecx + 8], edx
setl byte [esi + 0x28]
mov edx, dword [esi + 0x24]
mov dword [ecx + 0xc], edx
cmovge eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x57fe2e
cmp ecx, 0x20e9c049
je 0x57fe45
cmp ecx, 0x3b23d0b1
jne 0x57fe14
jmp 0x57fe70
cmp ecx, 0x9c6e8745
je 0x57fe49
cmp ecx, 0xeb760989
jne 0x57fe14
mov ecx, 0x20e9c049
jmp 0x57fe14
mov ecx, eax
jmp 0x57fe14
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x57fe14
mov eax, dword [esi + 0x64]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x34]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x57ff08
cmp ecx, 0xcfcad29c
je 0x57ff4b
cmp ecx, 0x3aca7e6
jne 0x57feec
mov ecx, eax
jmp 0x57feec
cmp ecx, 0x7c4a5f2
je 0x57ff44
cmp ecx, 0x389c0e25
jne 0x57feec
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x57feec
mov ecx, 0x3aca7e6
jmp 0x57feec
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xe1
mov ecx, dword [esi + 0x34]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xe3
mov ecx, dword [esi + 8]
push dword [esi + 0x34]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x57fff3
cmp eax, 0xc6e82640
je 0x580057
cmp eax, 0x950d98a
jne 0x57ffae
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x57ffae
cmp eax, 0x31a61df5
je 0x580010
cmp eax, 0x4d86efb0
jne 0x57ffae
mov ecx, dword [esi + 0x34]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x57ffae
mov ecx, dword [esi + 0x34]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x57ffae
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
mov edi, dword [0x5cf6cc]
cmp edi, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edx, ebx
test ecx, eax
mov ecx, dword [esi + 0x68]
mov eax, dword [esi + 0x24]
mov dword [ecx + 4], eax
sete byte [esi + 0x10]
mov eax, dword [esi + 0x98]
mov dword [ecx], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0xc], eax
mov eax, edx
cmove eax, ebx
cmp edi, 0xa
setl byte [esi + 0x28]
mov edi, dword [esi + 4]
mov dword [ecx + 8], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x5800d9
cmp ecx, 0x20e9c049
je 0x5800f0
cmp ecx, 0x3b23d0b1
jne 0x5800bf
jmp 0x58011b
cmp ecx, 0x9c6e8745
je 0x5800f4
cmp ecx, 0xeb760989
jne 0x5800bf
mov ecx, 0x20e9c049
jmp 0x5800bf
mov ecx, eax
jmp 0x5800bf
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5800bf
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x40]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x5801b1
cmp ecx, 0xcfcad29c
je 0x5801ef
cmp ecx, 0x3aca7e6
jne 0x580195
mov ecx, eax
jmp 0x580195
cmp ecx, 0x7c4a5f2
je 0x5801e8
cmp ecx, 0x389c0e25
jne 0x580195
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x580195
mov ecx, 0x3aca7e6
jmp 0x580195
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xe1
mov ecx, dword [esi + 0x40]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xe2
mov ecx, dword [esi + 8]
push dword [esi + 0x40]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x580296
cmp eax, 0xc6e82640
je 0x57fcea
cmp eax, 0x950d98a
jne 0x580251
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x580251
cmp eax, 0x31a61df5
je 0x5802b3
cmp eax, 0x4d86efb0
jne 0x580251
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x580251
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x580251
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x580621
mov dword [esi + 0x60], 1
jmp 0x580340
mov ebx, dword [esi + 0x60]
inc ebx
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x60], ebx
cmp ebx, edx
jae 0x580621
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp edi, 0xa
setl ch
setge cl
mov edi, dword [esi + 0x60]
mov dword [esi + 0xc], edi
cmp ch, dl
jne 0x580389
or cl, al
mov eax, dword [esi + 0x60]
mov dword [esi + 0xc], eax
test cl, 1
je 0x580389
jmp 0x591776
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edi
call fcn.00433980
cmp dword [esi + 0xc], 0
je 0x5805ea
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax + 1]
imul edi, eax
mov eax, edi
and eax, 1
sete al
cmp ebx, 0xa
setl cl
xor cl, al
mov eax, 0xbf25ae54
mov ecx, 0x20ab24e5
cmovne eax, ecx
and edi, 1
sete byte [esi + 0x10]
mov edx, eax
cmove edx, ecx
mov dword [esi + 0x24], ebx
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov dword [esi + 4], edx
mov eax, dword [esi + 8]
mov ecx, dword [eax]
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*2]
mov dword [esi + 0x3c], ecx
lea eax, [ecx + eax*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x580403
cmp eax, 0xffb13445
je 0x580438
cmp eax, 0x20ab24e5
jne 0x5803ec
jmp 0x580444
cmp eax, 0xbf25ae54
je 0x58043d
cmp eax, 0xe6642f9a
jne 0x5803ec
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov ecx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ecx, edx
test al, al
mov eax, ecx
cmovne eax, edx
test bl, bl
cmove eax, ecx
jmp 0x5803ec
mov eax, dword [esi + 4]
jmp 0x5803ec
mov eax, 0xffb13445
jmp 0x5803ec
mov ecx, dword [esi + 0xc]
dec ecx
test edi, edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x4c], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x48], eax
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov dword [esi + 0xc], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x3c]
lea eax, [ecx + eax*4]
mov dword [esi + 0x3c], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x580497
cmp eax, 0xffb13445
je 0x5804cc
cmp eax, 0x20ab24e5
jne 0x580480
jmp 0x5804d8
cmp eax, 0xbf25ae54
je 0x5804d1
cmp eax, 0xe6642f9a
jne 0x580480
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov edx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edx, ebx
test al, al
mov eax, edx
cmovne eax, ebx
test cl, cl
cmove eax, edx
jmp 0x580480
mov eax, dword [esi + 4]
jmp 0x580480
mov eax, 0xffb13445
jmp 0x580480
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x4c]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x48]
sbb ecx, dword [eax + 4]
jge 0x5805ea
test edi, edi
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov ebx, 0xe6642f9a
cmp ebx, 0xffb13444
jle 0x580521
cmp ebx, 0xffb13445
je 0x58055d
cmp ebx, 0x20ab24e5
jne 0x580507
jmp 0x580569
cmp ebx, 0xbf25ae54
je 0x580562
cmp ebx, 0xe6642f9a
jne 0x580507
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test cl, cl
mov ebx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne ebx, ecx
test al, al
mov eax, 0xbf25ae54
cmove ebx, eax
test dl, dl
cmovne ebx, ecx
jmp 0x580507
mov ebx, dword [esi + 4]
jmp 0x580507
mov ebx, 0xffb13445
jmp 0x580507
test edi, edi
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x18], eax
mov edi, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x5805a2
cmp ecx, 0xffb13445
je 0x5805de
cmp ecx, 0x20ab24e5
jne 0x580585
jmp 0x580370
cmp ecx, 0xbf25ae54
je 0x5805e3
cmp ecx, 0xe6642f9a
jne 0x580585
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test cl, cl
mov ecx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne ecx, ebx
test al, al
mov eax, 0xbf25ae54
cmove ecx, eax
test dl, dl
cmovne ecx, ebx
jmp 0x580585
mov ecx, dword [esi + 4]
jmp 0x580585
mov ecx, 0xffb13445
jmp 0x580585
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x58031e
xor dl, al
jne 0x58031e
jmp 0x591778
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 0xc], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x580675
cmp edi, 0x88e9608c
je 0x5806b4
cmp edi, 0xdf32ec89
jne 0x580651
mov ecx, dword [esi + 0x6c]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x580651
cmp edi, 0x30b7124c
je 0x58070c
cmp edi, 0x124998e2
jne 0x580651
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x580651
mov ecx, dword [esi + 0x6c]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
mov dword [esi + 4], ebx
lea edi, [ecx + 1]
mov dword [esi + 0xc], ecx
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete dl
cmp ebx, 0xa
setl dh
xor dh, dl
mov edx, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne edx, ebx
test ecx, edi
mov edi, edx
cmove edi, ebx
cmp dword [esi + 4], 0xa
cmovge edi, edx
mov ecx, dword [esi + 0x18]
jmp 0x580651
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x58075d
cmp ecx, 0x88e9608c
je 0x58079d
cmp ecx, 0xdf32ec89
jne 0x580736
mov ecx, dword [esi + 0x88]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x580736
cmp ecx, 0x30b7124c
je 0x5807ed
cmp ecx, 0x124998e2
jne 0x580736
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x580736
mov ecx, dword [esi + 0x88]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x580736
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x58081c
xor cl, al
je 0x59177c
mov eax, dword [esi + 0x6c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x88]
cmp eax, dword [ecx]
je 0x580c32
mov ecx, dword [esi + 0x6c]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 0xc], eax
mov edi, dword [eax]
mov dword [esi + 4], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x5808ad
cmp edx, 0x87fb68d6
je 0x5808e9
cmp edx, 0xfc04dcc5
jne 0x58088e
mov edx, 0x87fb68d6
jmp 0x58088e
cmp edx, 0x2601f5a7
je 0x5808ed
cmp edx, 0x5a893bc4
jne 0x58088e
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x58088e
mov edx, ecx
jmp 0x58088e
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x4c], ecx
cmp dword [esi + 4], ecx
je 0x580b08
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x580933
mov eax, dword [esi + 4]
add eax, 8
mov dword [esi + 4], eax
cmp eax, dword [esi + 0x4c]
je 0x580b08
mov ecx, dword [esi + 0x48]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne cl
sete dl
cmp dword [esi + 0x3c], 0xa
setge al
setl ah
xor ah, dl
or al, cl
xor al, 1
or al, ah
jne 0x580a0d
mov ecx, dword [esi + 0x38]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
mov dword [esi + 0x24], ecx
cmp dword [esi + 0x24], 0
sete byte [esi + 0x10]
sete dl
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl ah
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor ah, dl
cmovne ecx, edi
mov edx, 0x1b272c9a
jmp 0x5809ad
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x5809c7
cmp edx, 0x4c6ca682
je 0x5809fd
cmp edx, 0x6707b2cf
jne 0x5809ad
jmp 0x580a04
cmp edx, 0xf74fd645
je 0x5809ab
cmp edx, 0x1b272c9a
jne 0x5809ad
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov dh, ah
xor dh, dl
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test dl, dl
mov edx, edi
cmovne edx, ebx
test ah, ah
cmove edx, edi
jmp 0x5809ad
mov edx, 0xf74fd645
jmp 0x5809ad
mov ecx, dword [esi + 4]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x38]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
mov dword [esi + 0x24], ecx
sete byte [esi + 0x10]
sete ah
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove edx, edi
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl bl
mov edi, 0x4c6ca682
cmovge edx, edi
xor bl, ah
mov edi, 0x6707b2cf
cmovne edx, edi
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x580a6c
cmp ebx, 0x4c6ca682
je 0x580aa2
cmp ebx, 0x6707b2cf
jne 0x580a52
jmp 0x580aad
cmp ebx, 0xf74fd645
je 0x580aa9
cmp ebx, 0x1b272c9a
jne 0x580a52
mov ah, byte [esi + 0x10]
movzx ebx, byte [esi + 0x28]
mov bh, ah
xor bh, bl
mov edi, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne edi, ecx
test bl, bl
mov ebx, edi
cmovne ebx, ecx
test ah, ah
cmove ebx, edi
jmp 0x580a52
mov ebx, 0xf74fd645
jmp 0x580a52
mov ebx, edx
jmp 0x580a52
mov edx, dword [esi + 4]
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x18]
test al, al
je 0x580974
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x580921
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x3c], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x580921
mov ecx, dword [esi + 0x48]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x3c], 0xa
setl cl
test cl, al
jne 0x580b2f
xor cl, al
je 0x59177a
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x580b7a
cmp eax, 0xcd5e6053
je 0x580bcf
cmp eax, 0x18ed46ca
jne 0x580b58
mov eax, dword [esi + 0x6c]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x580b58
cmp eax, 0x5499d804
je 0x580bf9
cmp eax, 0x685e39a2
jne 0x580b58
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x580b58
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x580b58
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x58081c
or cl, al
test cl, 1
je 0x58081c
jmp 0x59177c
mov ecx, dword [esi + 8]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete dl
cmp edi, 0xa
setl dh
mov ebx, dword [esi + 0x5c]
test dh, dl
jne 0x57fcbc
xor dh, dl
mov ebx, dword [esi + 0x5c]
jne 0x57fcbc
mov edi, dword [esi + 8]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete al
setne ah
cmp edi, 0xa
setl dh
setge dl
or dl, ah
cmp dh, al
jne 0x580cbd
test dl, dl
jne 0x580c72
mov ebx, dword [esi + 0x5c]
jmp 0x57fcbc
mov ebx, dword [esi + 0x5c]
jmp 0x57fcbc
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete cl
cmp edi, 0xa
setl ah
setge al
cmp ah, cl
jne 0x580ce8
or al, dl
test al, 1
jne 0x591772
mov esp, dword [esi + 0xa0]
mov eax, 0x57676505
jmp 0x579c71
mov esp, dword [esi + 0x94]
mov edx, dword [0x5d21a0]
mov ecx, dword [0x5d21a4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xf60420d1
mov edi, 0x8c5f966a
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x5709ae
mov eax, 0x5ae21c5b
mov esp, dword [esi + 0x94]
jmp 0x5709ae
cmp ecx, 0x12345678
jne 0x580d65
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
lea ecx, [esi + 0x28]
call fcn.0041e540
lea ecx, [esi + 0x18]
call fcn.0041e540
mov eax, dword [0x5d21a0]
mov ecx, dword [0x5d21a4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0xa7]
cmp ecx, 0xa
setl byte [esi + 0x7c]
mov eax, 0x8f871a7e
cmp eax, 0xf60420d0
jg 0x580de9
cmp eax, 0x8c5f966a
je 0x591161
cmp eax, 0x8f871a7e
jne 0x580da1
movzx ecx, byte [esi + 0xa7]
movzx eax, byte [esi + 0x7c]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0xf60420d1
mov edi, 0x5ae21c5b
cmovne eax, edi
test cl, cl
mov ecx, 0xf60420d1
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x580da1
cmp eax, 0xf60420d1
je 0x581edc
cmp eax, 0x5ae21c5b
jne 0x580da1
mov dword [esi + 0x5c], esp
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
setne dh
mov dword [esi + 8], eax
cmp eax, 0xa
setge dl
mov ebx, edx
xor bl, dh
or dl, dh
xor dl, 1
or dl, bl
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov eax, esp
sub esp, 0x10
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
mov dword [esi + 0x54], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
mov dword [esi + 0x68], esp
push eax
mov dword [esi + 0x6c], esp
push eax
mov dword [esi + 0x64], esp
test dl, dl
je 0x580e2e
mov dword [esi + 0x94], eax
mov dword [esi + 0x60], ebx
lea eax, [ebx + 0x10]
mov dword [esi + 0x8c], eax
mov dword [esi + 0x58], edi
lea eax, [edi + 0x10]
mov dword [esi + 0x90], eax
mov edi, 0xa
cmp edi, 0x1f4
jae 0x589fcf
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x88], edi
mov dword [esi + 0x80], eax
shr eax, 1
mov dword [esi + 4], eax
mov dword [esi + 0xc], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
mov dword [esi + 8], ecx
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 4]
sete ah
setne al
mov ecx, dword [0x5cf6c4]
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl bh
setge bl
cmp bh, ah
jne 0x580eff
or bl, al
jne 0x591648
mov eax, edx
imul eax, edi
mov ebx, edi
mov edi, edx
mulx edx, ecx, edx
add eax, eax
add eax, edx
mov edx, dword [esi + 0x88]
cmp ecx, edx
sbb eax, 0
jae 0x5814e5
sub edx, edi
mov dword [esi + 0x38], edx
mov eax, 0
sbb eax, ebx
mov dword [esi + 0x24], eax
mov dword [esi + 0x40], edi
add edi, 1
mov dword [esi + 0x48], ebx
adc ebx, 0
push ebx
push edi
push eax
push edx
call fcn.00594a90
mov dword [esi + 8], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x34], edx
mov dword [esi + 0x84], eax
mov edx, eax
mov dword [esi + 0xc], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 8]
mov dword [esi + 4], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x38]
sub eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x24]
sbb ecx, edx
or ecx, eax
jne 0x580ebf
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x10]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x60]
mov edx, dword [esi + 0x40]
mov dword [ecx], edx
mov edx, dword [esi + 0x48]
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x84]
mov dword [ecx + 8], edx
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ecx + 0xc], edx
cmovge eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x581003
cmp ecx, 0x20e9c049
je 0x58101a
cmp ecx, 0x3b23d0b1
jne 0x580fe9
jmp 0x581045
cmp ecx, 0x9c6e8745
je 0x58101e
cmp ecx, 0xeb760989
jne 0x580fe9
mov ecx, 0x20e9c049
jmp 0x580fe9
mov ecx, eax
jmp 0x580fe9
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x580fe9
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax - 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x94]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x8c]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x60]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x5810dc
cmp ecx, 0xcfcad29c
je 0x58111a
cmp ecx, 0x3aca7e6
jne 0x5810c0
mov ecx, eax
jmp 0x5810c0
cmp ecx, 0x7c4a5f2
je 0x581113
cmp ecx, 0x389c0e25
jne 0x5810c0
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5810c0
mov ecx, 0x3aca7e6
jmp 0x5810c0
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x7d
mov ecx, dword [esi + 0x94]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x7f
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x94]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x5811c8
cmp eax, 0xc6e82640
je 0x581236
cmp eax, 0x950d98a
jne 0x581183
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x581183
cmp eax, 0x31a61df5
je 0x5811e8
cmp eax, 0x4d86efb0
jne 0x581183
mov ecx, dword [esi + 0x94]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x581183
mov ecx, dword [esi + 0x94]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x581183
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
mov edi, dword [0x5cf6cc]
cmp edi, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edx, ebx
test ecx, eax
mov ecx, dword [esi + 0x58]
mov eax, dword [esi + 8]
mov dword [ecx + 4], eax
sete byte [esi + 0x10]
mov eax, dword [esi + 0x84]
mov dword [ecx], eax
mov eax, dword [esi + 0x48]
mov dword [ecx + 0xc], eax
mov eax, edx
cmove eax, ebx
cmp edi, 0xa
setl byte [esi + 0x28]
mov edi, dword [esi + 0x40]
mov dword [ecx + 8], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x5812b8
cmp ecx, 0x20e9c049
je 0x5812cf
cmp ecx, 0x3b23d0b1
jne 0x58129e
jmp 0x5812ff
cmp ecx, 0x9c6e8745
je 0x5812d3
cmp ecx, 0xeb760989
jne 0x58129e
mov ecx, 0x20e9c049
jmp 0x58129e
mov ecx, eax
jmp 0x58129e
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x58129e
mov eax, dword [esi + 0x68]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax - 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x4c]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x90]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x58]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x581393
cmp ecx, 0xcfcad29c
je 0x5813d6
cmp ecx, 0x3aca7e6
jne 0x581377
mov ecx, eax
jmp 0x581377
cmp ecx, 0x7c4a5f2
je 0x5813cf
cmp ecx, 0x389c0e25
jne 0x581377
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x581377
mov ecx, 0x3aca7e6
jmp 0x581377
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x7d
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x7e
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x58147d
cmp eax, 0xc6e82640
je 0x580ebf
cmp eax, 0x950d98a
jne 0x581438
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x581438
cmp eax, 0x31a61df5
je 0x58149a
cmp eax, 0x4d86efb0
jne 0x581438
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x581438
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x581438
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x581832
mov dword [esi + 0x48], 1
jmp 0x58152c
mov ecx, dword [esi + 0x48]
inc ecx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x48], ecx
cmp ecx, edx
jae 0x581832
mov ecx, dword [esi + 8]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
setne al
cmp dword [esi + 4], 0xa
setl ah
setge cl
mov edi, dword [esi + 0x48]
mov dword [esi + 4], edi
cmp ah, dl
jne 0x58157e
or cl, al
mov eax, dword [esi + 0x48]
mov dword [esi + 4], eax
je 0x58157e
jmp 0x591688
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edx
call fcn.00433980
cmp dword [esi + 4], 0
je 0x5817f4
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0x24], ecx
mov dword [esi + 0x38], eax
test eax, ecx
sete byte [esi + 0x10]
mov ecx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove ecx, ebx
sete al
mov dword [esi + 0xc], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ecx, edx
setl dl
xor dl, al
mov eax, dword [esi + 0x3c]
mov edi, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
lea eax, [edi + eax*4]
mov dword [esi + 0x34], eax
cmovne ecx, ebx
mov dword [esi + 8], ecx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x5815fd
cmp edx, 0xffb13445
je 0x581639
cmp edx, 0x20ab24e5
jne 0x5815e3
jmp 0x581645
cmp edx, 0xbf25ae54
je 0x58163e
cmp edx, 0xe6642f9a
jne 0x5815e3
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, dl
xor ah, al
test dl, dl
mov edx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne edx, ecx
test al, al
mov ebx, 0xbf25ae54
cmove edx, ebx
test ah, ah
cmovne edx, ecx
jmp 0x5815e3
mov edx, dword [esi + 8]
jmp 0x5815e3
mov edx, 0xffb13445
jmp 0x5815e3
mov edx, dword [esi + 4]
dec edx
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [eax]
mov ebx, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], edx
lea eax, [edx + edx*2]
lea eax, [edi + eax*4]
mov dword [esi + 0x40], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x581693
cmp eax, 0xffb13445
je 0x5816da
cmp eax, 0x20ab24e5
jne 0x58167c
jmp 0x5816e6
cmp eax, 0xbf25ae54
je 0x5816df
cmp eax, 0xe6642f9a
jne 0x58167c
mov edi, ecx
mov ecx, ebx
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, bl
xor bh, al
test al, al
mov eax, 0xbf25ae54
mov edx, 0xffb13445
cmovne eax, edx
test bl, bl
mov edx, 0xbf25ae54
cmove eax, edx
test bh, bh
mov ebx, ecx
mov ecx, edi
mov edx, 0xffb13445
cmovne eax, edx
jmp 0x58167c
mov eax, dword [esi + 8]
jmp 0x58167c
mov eax, 0xffb13445
jmp 0x58167c
mov eax, dword [esi + 0x40]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
cmp ecx, dword [eax]
sbb ebx, dword [eax + 4]
jge 0x5817f4
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x58172a
cmp eax, 0xffb13445
je 0x581764
cmp eax, 0x20ab24e5
jne 0x581713
jmp 0x581770
cmp eax, 0xbf25ae54
je 0x581769
cmp eax, 0xe6642f9a
jne 0x581713
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test dl, dl
mov ebx, 0xbf25ae54
cmove eax, ebx
test dh, dh
cmovne eax, edi
jmp 0x581713
mov eax, dword [esi + 8]
jmp 0x581713
mov eax, 0xffb13445
jmp 0x581713
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x40]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5817aa
cmp eax, 0xffb13445
je 0x5817e8
cmp eax, 0x20ab24e5
jne 0x581790
jmp 0x581565
cmp eax, 0xbf25ae54
je 0x5817ed
cmp eax, 0xe6642f9a
jne 0x581790
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, bl
xor bh, al
test al, al
mov eax, 0xbf25ae54
mov ecx, edx
mov edx, 0xffb13445
cmovne eax, edx
test bl, bl
mov edi, 0xbf25ae54
cmove eax, edi
test bh, bh
cmovne eax, edx
mov edx, ecx
jmp 0x581790
mov eax, dword [esi + 8]
jmp 0x581790
mov eax, 0xffb13445
jmp 0x581790
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
mov dword [esi + 8], ecx
imul eax, ecx
test al, 1
sete dh
mov dword [esi + 4], edi
cmp edi, 0xa
setge dl
setl bl
xor bl, dh
jne 0x58150a
or dl, al
test dl, 1
je 0x58150a
jmp 0x591698
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x581886
cmp edi, 0x88e9608c
je 0x5818c5
cmp edi, 0xdf32ec89
jne 0x581862
mov ecx, dword [esi + 0x6c]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x581862
cmp edi, 0x30b7124c
je 0x581920
cmp edi, 0x124998e2
jne 0x581862
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
test bh, bh
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test cl, cl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bl, bl
cmovne edi, edx
jmp 0x581862
mov ecx, dword [esi + 0x6c]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
mov dword [esi + 4], edx
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 8], ebx
cmp ebx, 0xa
mov ebx, 0xdf32ec89
cmovge edi, ebx
setl ch
xor ch, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x581862
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x58196f
cmp ecx, 0x88e9608c
je 0x5819af
cmp ecx, 0xdf32ec89
jne 0x58194b
mov ecx, dword [esi + 0x64]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x58194b
cmp ecx, 0x30b7124c
je 0x5819fd
cmp ecx, 0x124998e2
jne 0x58194b
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x58194b
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x58194b
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x581a2d
or cl, al
test cl, 1
jne 0x591652
mov eax, dword [esi + 0x6c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x64]
cmp eax, dword [ecx]
je 0x581e39
mov ecx, dword [esi + 0x6c]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov edi, dword [eax]
mov dword [esi + 8], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x581abb
cmp edx, 0x87fb68d6
je 0x581af2
cmp edx, 0xfc04dcc5
jne 0x581a9c
mov edx, 0x87fb68d6
jmp 0x581a9c
cmp edx, 0x2601f5a7
je 0x581af6
cmp edx, 0x5a893bc4
jne 0x581a9c
movzx eax, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, al
xor dh, dl
mov ebx, 0xfc04dcc5
mov edi, 0x87fb68d6
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x581a9c
mov edx, ecx
jmp 0x581a9c
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x581d17
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x581b3c
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x581d17
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x34], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x581c19
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
mov dword [esi + 0xc], ecx
mov ebx, dword [esi + 0xc]
test ebx, ebx
sete al
mov ecx, dword [esi + 4]
cmp ecx, 0xa
setl dl
xor dl, al
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
test ebx, ebx
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge eax, edx
mov ecx, 0x1b272c9a
jmp 0x581bb3
mov ecx, eax
cmp ecx, 0x4c6ca681
jle 0x581bcd
cmp ecx, 0x4c6ca682
je 0x581c09
cmp ecx, 0x6707b2cf
jne 0x581bb3
jmp 0x581c10
cmp ecx, 0xf74fd645
je 0x581bb1
cmp ecx, 0x1b272c9a
jne 0x581bb3
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne ecx, ebx
test dl, dl
mov edi, 0x4c6ca682
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x581bb3
mov ecx, 0xf74fd645
jmp 0x581bb3
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ebx, eax
xor ebx, 0xfffffffe
mov edx, ebx
and edx, eax
sete dl
mov ecx, dword [esi + 4]
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
and ebx, eax
mov dword [esi + 0xc], ebx
sete byte [esi + 0x10]
mov ebx, edx
cmove ebx, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge ebx, edx
mov eax, 0x1b272c9a
cmp eax, 0x4c6ca681
jle 0x581c7a
cmp eax, 0x4c6ca682
je 0x581caf
cmp eax, 0x6707b2cf
jne 0x581c63
jmp 0x581cba
cmp eax, 0xf74fd645
je 0x581cb6
cmp eax, 0x1b272c9a
jne 0x581c63
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov edi, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne edi, ecx
test al, al
mov eax, edi
cmovne eax, ecx
test dl, dl
cmove eax, edi
jmp 0x581c63
mov eax, 0xf74fd645
jmp 0x581c63
mov eax, ebx
jmp 0x581c63
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x581b75
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x581b2a
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x581b2a
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x34], 0xa
setl cl
test cl, al
jne 0x581d3d
xor cl, al
je 0x591670
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x581d87
cmp eax, 0xcd5e6053
je 0x581de1
cmp eax, 0x18ed46ca
jne 0x581d65
mov eax, dword [esi + 0x6c]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x581d65
cmp eax, 0x5499d804
je 0x581e0b
cmp eax, 0x685e39a2
jne 0x581d65
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x18ed46ca
mov ebx, 0x5499d804
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x581d65
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x581d65
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ch
xor ch, dl
je 0x581a22
jmp 0x581a2d
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete byte [esi + 4]
mov dword [esi + 8], eax
cmp eax, 0xa
setge bl
setl bh
xor bh, byte [esi + 4]
mov edi, dword [esi + 0x80]
jne 0x580e8b
or bl, dl
mov edi, dword [esi + 0x80]
test bl, 1
je 0x580e8b
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete bh
mov dword [esi + 8], eax
cmp eax, 0xa
setge bl
setl al
or bl, dl
xor al, bh
test al, al
jne 0x581ed1
test bl, 1
jne 0x581e85
mov edi, dword [esi + 0x80]
jmp 0x580e8b
mov edi, dword [esi + 0x80]
jmp 0x580e8b
mov dword [esi + 0x5c], esp
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea ebx, [ecx + 1]
imul ebx, ecx
test bl, 1
sete dh
mov dword [esi + 8], eax
cmp eax, 0xa
setge dl
setl al
or dl, bl
xor al, dh
xor dl, 1
or dl, al
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov eax, esp
sub esp, 0x10
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
mov dword [esi + 0x54], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
mov dword [esi + 0x68], esp
push eax
mov dword [esi + 0x6c], esp
push eax
mov dword [esi + 0x64], esp
test dl, 1
je 0x581f0b
mov dword [esi + 0x94], eax
mov dword [esi + 0x60], ebx
lea eax, [ebx + 0x10]
mov dword [esi + 0x8c], eax
mov dword [esi + 0x58], edi
lea eax, [edi + 0x10]
mov dword [esi + 0x90], eax
mov edi, 0xa
cmp edi, 0x1f4
jae 0x582f7a
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x88], edi
mov dword [esi + 0x80], eax
shr eax, 1
mov dword [esi + 4], eax
mov dword [esi + 0xc], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
mov dword [esi + 8], ecx
imul eax, ecx
test al, 1
sete dh
mov ecx, dword [0x5cf6c4]
mov dword [esi + 0x24], ecx
cmp ecx, 0xa
setge bh
setl bl
xor bl, dh
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 4]
jne 0x581fd8
or bh, al
test bh, 1
jne 0x591646
mov eax, edx
imul eax, edi
mov ebx, edi
mov edi, edx
mulx edx, ecx, edx
add eax, eax
add eax, edx
mov edx, dword [esi + 0x88]
cmp ecx, edx
sbb eax, 0
jae 0x5825af
sub edx, edi
mov dword [esi + 0x38], edx
mov eax, 0
sbb eax, ebx
mov dword [esi + 0x24], eax
mov dword [esi + 0x40], edi
add edi, 1
mov dword [esi + 0x48], ebx
adc ebx, 0
push ebx
push edi
push eax
push edx
call fcn.00594a90
mov dword [esi + 8], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x34], edx
mov dword [esi + 0x84], eax
mov edx, eax
mov dword [esi + 0xc], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 8]
mov dword [esi + 4], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x38]
sub eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x24]
sbb ecx, edx
or ecx, eax
jne 0x581f9d
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x10]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x60]
mov edx, dword [esi + 0x40]
mov dword [ecx], edx
mov edx, dword [esi + 0x48]
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x84]
mov dword [ecx + 8], edx
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ecx + 0xc], edx
cmovge eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x5820dc
cmp ecx, 0x20e9c049
je 0x5820f3
cmp ecx, 0x3b23d0b1
jne 0x5820c2
jmp 0x582123
cmp ecx, 0x9c6e8745
je 0x5820f7
cmp ecx, 0xeb760989
jne 0x5820c2
mov ecx, 0x20e9c049
jmp 0x5820c2
mov ecx, eax
jmp 0x5820c2
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5820c2
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x94]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x8c]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x60]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x5821ba
cmp ecx, 0xcfcad29c
je 0x5821f8
cmp ecx, 0x3aca7e6
jne 0x58219e
mov ecx, eax
jmp 0x58219e
cmp ecx, 0x7c4a5f2
je 0x5821f1
cmp ecx, 0x389c0e25
jne 0x58219e
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x58219e
mov ecx, 0x3aca7e6
jmp 0x58219e
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x94
mov ecx, dword [esi + 0x94]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x96
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x94]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x5822a0
cmp eax, 0xc6e82640
je 0x582309
cmp eax, 0x950d98a
jne 0x582260
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x582260
cmp eax, 0x31a61df5
je 0x5822c0
cmp eax, 0x4d86efb0
jne 0x582260
mov ecx, dword [esi + 0x94]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x582260
mov ecx, dword [esi + 0x94]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x582260
mov ebx, dword [esi + 0x58]
mov eax, dword [esi + 8]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x84]
mov dword [ebx], eax
mov eax, dword [esi + 0x48]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf6cc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, dword [esi + 0x40]
mov dword [ebx + 8], ecx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x582388
cmp ecx, 0x20e9c049
je 0x58239f
cmp ecx, 0x3b23d0b1
jne 0x58236e
jmp 0x5823ca
cmp ecx, 0x9c6e8745
je 0x5823a3
cmp ecx, 0xeb760989
jne 0x58236e
mov ecx, 0x20e9c049
jmp 0x58236e
mov ecx, eax
jmp 0x58236e
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x58236e
mov eax, dword [esi + 0x68]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x58]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x582460
cmp ecx, 0xcfcad29c
je 0x5824a3
cmp ecx, 0x3aca7e6
jne 0x582444
mov ecx, eax
jmp 0x582444
cmp ecx, 0x7c4a5f2
je 0x58249c
cmp ecx, 0x389c0e25
jne 0x582444
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x582444
mov ecx, 0x3aca7e6
jmp 0x582444
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x94
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x95
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x58254b
cmp eax, 0xc6e82640
je 0x581f9d
cmp eax, 0x950d98a
jne 0x582506
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x582506
cmp eax, 0x31a61df5
je 0x582568
cmp eax, 0x4d86efb0
jne 0x582506
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x582506
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x582506
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x5828df
mov dword [esi + 0x48], 1
jmp 0x5825f6
mov ecx, dword [esi + 0x48]
inc ecx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x48], ecx
cmp ecx, edx
jae 0x5828df
mov ecx, dword [esi + 8]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x24], 0xa
setl cl
mov edx, dword [esi + 0x48]
mov dword [esi + 4], edx
test cl, al
jne 0x582643
xor cl, al
mov eax, dword [esi + 0x48]
mov dword [esi + 4], eax
jne 0x582643
jmp 0x591686
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edi
call fcn.00433980
cmp dword [esi + 4], 0
je 0x5828a1
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
and eax, 1
sete al
cmp ebx, 0xa
setl cl
xor cl, al
mov eax, 0xbf25ae54
mov ecx, 0x20ab24e5
cmovne eax, ecx
and edx, 1
mov dword [esi + 0x24], edx
sete byte [esi + 0x10]
mov edx, eax
cmove edx, ecx
mov dword [esi + 0xc], ebx
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 0x3c]
mov edx, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
lea eax, [edx + eax*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5826bd
cmp eax, 0xffb13445
je 0x5826f2
cmp eax, 0x20ab24e5
jne 0x5826a6
jmp 0x5826fe
cmp eax, 0xbf25ae54
je 0x5826f7
cmp eax, 0xe6642f9a
jne 0x5826a6
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov ecx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ecx, edi
test al, al
mov eax, ecx
cmovne eax, edi
test bl, bl
cmove eax, ecx
jmp 0x5826a6
mov eax, dword [esi + 8]
jmp 0x5826a6
mov eax, 0xffb13445
jmp 0x5826a6
mov ecx, dword [esi + 4]
dec ecx
cmp dword [esi + 0x24], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax]
mov dword [esi + 0x40], edi
mov edi, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
lea eax, [edx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x58274d
cmp eax, 0xffb13445
je 0x582782
cmp eax, 0x20ab24e5
jne 0x582736
jmp 0x58278e
cmp eax, 0xbf25ae54
je 0x582787
cmp eax, 0xe6642f9a
jne 0x582736
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne edx, ecx
test al, al
mov eax, edx
cmovne eax, ecx
test bl, bl
cmove eax, edx
jmp 0x582736
mov eax, dword [esi + 8]
jmp 0x582736
mov eax, 0xffb13445
jmp 0x582736
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x40]
cmp ecx, dword [eax]
sbb edi, dword [eax + 4]
jge 0x5828a1
cmp dword [esi + 0x24], 0
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov ebx, 0xe6642f9a
cmp ebx, 0xffb13444
jle 0x5827d6
cmp ebx, 0xffb13445
je 0x582812
cmp ebx, 0x20ab24e5
jne 0x5827bc
jmp 0x58281e
cmp ebx, 0xbf25ae54
je 0x582817
cmp ebx, 0xe6642f9a
jne 0x5827bc
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov edx, ecx
xor dl, al
test cl, cl
mov ebx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne ebx, ecx
test al, al
mov eax, 0xbf25ae54
cmove ebx, eax
test dl, dl
cmovne ebx, ecx
jmp 0x5827bc
mov ebx, dword [esi + 8]
jmp 0x5827bc
mov ebx, 0xffb13445
jmp 0x5827bc
cmp dword [esi + 0x24], 0
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov edi, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x582859
cmp ecx, 0xffb13445
je 0x582895
cmp ecx, 0x20ab24e5
jne 0x58283c
jmp 0x58262a
cmp ecx, 0xbf25ae54
je 0x58289a
cmp ecx, 0xe6642f9a
jne 0x58283c
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test cl, cl
mov ecx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne ecx, ebx
test al, al
mov eax, 0xbf25ae54
cmove ecx, eax
test dl, dl
cmovne ecx, ebx
jmp 0x58283c
mov ecx, dword [esi + 8]
jmp 0x58283c
mov ecx, 0xffb13445
jmp 0x58283c
mov ecx, dword [0x5cf6c0]
mov edx, dword [0x5cf6c4]
lea eax, [ecx - 1]
mov dword [esi + 8], ecx
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
mov dword [esi + 0x24], edx
cmp edx, 0xa
setl dl
test dl, al
jne 0x5825d4
xor dl, al
jne 0x5825d4
jmp 0x591692
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx - 1]
mov dword [esi + 4], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x582933
cmp edi, 0x88e9608c
je 0x582972
cmp edi, 0xdf32ec89
jne 0x58290f
mov ecx, dword [esi + 0x6c]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x58290f
cmp edi, 0x30b7124c
je 0x5829c8
cmp edi, 0x124998e2
jne 0x58290f
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x58290f
mov ecx, dword [esi + 0x6c]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
mov dword [esi + 4], edi
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov edi, 0xdf32ec89
mov ebx, 0x30b7124c
cmove edi, ebx
sete cl
mov dword [esi + 8], edx
cmp edx, 0xa
mov edx, 0xdf32ec89
cmovge edi, edx
setl dl
xor dl, cl
cmovne edi, ebx
jmp 0x58290f
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x582a1c
cmp ecx, 0x88e9608c
je 0x582a5c
cmp ecx, 0xdf32ec89
jne 0x5829f5
mov eax, dword [esi + 0x64]
mov ecx, dword [esi + 4]
mov dword [eax], ecx
mov ecx, 0x88e9608c
jmp 0x5829f5
cmp ecx, 0x30b7124c
je 0x582ab0
cmp ecx, 0x124998e2
jne 0x5829f5
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne ecx, edi
test dl, dl
mov eax, 0xdf32ec89
cmove ecx, eax
test dh, dh
cmovne ecx, edi
jmp 0x5829f5
mov eax, dword [esi + 0x64]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 4]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov eax, 0x30b7124c
cmovne ebx, eax
test edi, ecx
mov ecx, ebx
cmove ecx, eax
cmp edx, 0xa
cmovge ecx, ebx
mov edx, dword [esi + 0x18]
jmp 0x5829f5
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x582adf
xor cl, al
je 0x59165c
mov eax, dword [esi + 0x6c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x64]
cmp eax, dword [ecx]
je 0x582ecf
mov ecx, dword [esi + 0x6c]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov edi, dword [eax]
mov dword [esi + 8], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x582b6d
cmp edx, 0x87fb68d6
je 0x582ba9
cmp edx, 0xfc04dcc5
jne 0x582b4e
mov edx, 0x87fb68d6
jmp 0x582b4e
cmp edx, 0x2601f5a7
je 0x582bad
cmp edx, 0x5a893bc4
jne 0x582b4e
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x582b4e
mov edx, ecx
jmp 0x582b4e
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x582dcd
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x582bf3
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x582dcd
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
setne cl
cmp dword [esi + 0x34], 0xa
setge al
mov edx, eax
xor dl, cl
or al, cl
xor al, 1
or al, dl
mov byte [esi + 0x38], al
jne 0x582cc9
mov eax, dword [esi + 0x24]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
test ecx, ecx
sete byte [esi + 0x10]
sete dl
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl ah
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor ah, dl
cmovne ecx, edi
mov ebx, 0x1b272c9a
jmp 0x582c64
mov ebx, ecx
cmp ebx, 0x4c6ca681
jle 0x582c7e
cmp ebx, 0x4c6ca682
je 0x582cb9
cmp ebx, 0x6707b2cf
jne 0x582c64
jmp 0x582cc0
cmp ebx, 0xf74fd645
je 0x582c62
cmp ebx, 0x1b272c9a
jne 0x582c64
movzx edx, byte [esi + 0x10]
mov ah, byte [esi + 0x28]
mov dh, ah
xor dh, dl
test ah, ah
mov ebx, 0x4c6ca682
mov eax, 0xf74fd645
cmovne ebx, eax
test dl, dl
mov edi, 0x4c6ca682
cmove ebx, edi
test dh, dh
cmovne ebx, eax
jmp 0x582c64
mov ebx, 0xf74fd645
jmp 0x582c64
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x24]
lea edx, [eax + 1]
imul edx, eax
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete byte [esi + 0x10]
sete ah
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove edx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl bl
mov edi, 0x4c6ca682
cmovge edx, edi
xor bl, ah
mov eax, 0x6707b2cf
cmovne edx, eax
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x582d29
cmp ebx, 0x4c6ca682
je 0x582d65
cmp ebx, 0x6707b2cf
jne 0x582d0f
jmp 0x582d70
cmp ebx, 0xf74fd645
je 0x582d6c
cmp ebx, 0x1b272c9a
jne 0x582d0f
mov ah, byte [esi + 0x10]
movzx ebx, byte [esi + 0x28]
mov bh, ah
xor bh, bl
mov edi, 0x4c6ca682
mov dword [esi + 0xc], ecx
mov ecx, 0xf74fd645
cmovne edi, ecx
test bl, bl
mov ebx, edi
cmovne ebx, ecx
mov ecx, dword [esi + 0xc]
test ah, ah
cmove ebx, edi
jmp 0x582d0f
mov ebx, 0xf74fd645
jmp 0x582d0f
mov ebx, edx
jmp 0x582d0f
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x582c2d
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x582be1
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x582be1
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x34], 0xa
setl cl
test cl, al
jne 0x582df3
xor cl, al
je 0x591662
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x582e3d
cmp eax, 0xcd5e6053
je 0x582ea0
cmp eax, 0x18ed46ca
jne 0x582e1b
mov eax, dword [esi + 0x6c]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x582e1b
cmp eax, 0x5499d804
je 0x582ab0
cmp eax, 0x685e39a2
jne 0x582e1b
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x18ed46ca
mov edi, 0x5499d804
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x582e1b
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x582e1b
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete al
setne dl
mov dword [esi + 8], edi
cmp edi, 0xa
setl ah
setge dh
mov edi, dword [esi + 0x80]
cmp ah, al
jne 0x581f69
or dh, dl
mov edi, dword [esi + 0x80]
je 0x581f69
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete al
setne ah
mov dword [esi + 8], edi
cmp edi, 0xa
setl dh
setge dl
or dl, ah
cmp dh, al
jne 0x582f6f
test dl, dl
jne 0x582f1e
mov edi, dword [esi + 0x80]
jmp 0x581f69
mov edi, dword [esi + 0x80]
jmp 0x581f69
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete cl
cmp dword [esi + 8], 0xa
setge al
setl ah
xor ah, cl
jne 0x582f9e
or al, dl
test al, 1
jne 0x5916c4
mov esp, dword [esi + 0x5c]
mov dword [esi + 0x94], esp
mov eax, dword [0x5d21a8]
mov ecx, dword [0x5d21ac]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x46]
cmp ecx, 0xa
setl byte [esi + 0x47]
mov eax, 0xd31607fa
cmp eax, 0x57676504
jg 0x583010
cmp eax, 0xbf311110
je 0x5910fc
cmp eax, 0xd31607fa
jne 0x582fd0
movzx ecx, byte [esi + 0x46]
movzx eax, byte [esi + 0x47]
mov edx, ecx
xor dl, al
mov edx, 0x5af2d6e3
mov edi, 0x57676505
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x582fd0
cmp eax, 0x57676505
je 0x583050
cmp eax, 0x5af2d6e3
jne 0x582fd0
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
mov dword [esi + 0x40], esp
setl ch
setge cl
cmp ch, dl
jne 0x583088
or cl, al
test cl, 1
jne 0x5831a7
jmp 0x583088
mov dword [esi + 0x40], esp
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x583542
xor cl, al
je 0x58365c
jmp 0x583542
push eax
mov dword [esi + 0x38], esp
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
mov dword [esi + 0x34], ecx
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 4], edi
mov ecx, edi
call fcn.0040cd80
mov eax, dword [0x5cf4b8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4bc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
sete cl
mov eax, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov ebx, 0x8f0f2ca8
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x13d3b53a
cmp ecx, 0x13d3b539
jg 0x583117
cmp ecx, 0x8f0f2ca8
je 0x583153
cmp ecx, 0x11f1fb1a
jne 0x5830fd
jmp 0x58315e
cmp ecx, 0x1a1c1d98
je 0x58315a
cmp ecx, 0x13d3b53a
jne 0x5830fd
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x8f0f2ca8
mov ebx, 0x1a1c1d98
cmovne ecx, ebx
test dl, dl
mov edi, 0x8f0f2ca8
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5830fd
mov ecx, 0x1a1c1d98
jmp 0x5830fd
mov ecx, eax
jmp 0x5830fd
mov edi, dword [esi + 4]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf5f4], 0xa
mov byte [edi], 0
setge cl
setl ah
xor ah, dl
jne 0x583291
or cl, al
je 0x583291
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 8], edi
mov ecx, edi
call fcn.0040cd80
mov edx, dword [0x5cf4b8]
mov ecx, dword [0x5cf4bc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmovne ebx, edi
test edx, eax
sete byte [esi + 0x28]
mov eax, ebx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x18]
cmovge eax, ebx
mov ecx, 0x13d3b53a
jmp 0x58321b
mov ecx, eax
cmp ecx, 0x13d3b539
jg 0x583235
cmp ecx, 0x8f0f2ca8
je 0x583271
cmp ecx, 0x11f1fb1a
jne 0x58321b
jmp 0x583278
cmp ecx, 0x1a1c1d98
je 0x583219
cmp ecx, 0x13d3b53a
jne 0x58321b
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x8f0f2ca8
mov edi, 0x1a1c1d98
cmovne ecx, edi
test dl, dl
mov ebx, 0x8f0f2ca8
cmove ecx, ebx
test dh, dh
cmovne ecx, edi
jmp 0x58321b
mov ecx, 0x1a1c1d98
jmp 0x58321b
mov eax, dword [esi + 8]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
jmp 0x583088
mov dword [esi + 0x24], 0
cmp dword [esi + 0x24], 0x3e8
je 0x5834f9
mov ecx, dword [esi + 0x34]
movsx eax, byte [ecx + 1]
movsx edx, byte [ecx]
mov dword [esi + 0xc0], 0xa1
push eax
push edx
push dword [esi + 0x38]
call fcn.0041e700
movsx eax, al
mov ecx, dword [esi + 4]
push eax
call fcn.00441240
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x5832f6
xor cl, al
je 0x58332c
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete ch
setne cl
cmp dword [0x5cf5f4], 0xa
setl dh
setge dl
cmp dh, ch
jne 0x583336
or dl, cl
je 0x583336
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x5832f6
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
cmp byte [ecx + eax - 1], 0x6f
je 0x58335b
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov ecx, dword [edi + 0x10]
cmp byte [ecx + eax - 1], 0x75
jne 0x5834bc
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov dword [esi + 8], eax
mov ecx, edi
call fcn.00423280
add eax, dword [edi + 0x10]
mov dword [esi + 0xc], eax
mov ecx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x5833a2
xor dh, dl
je 0x5916ca
mov edx, dword [esi + 0xc]
cmp dword [esi + 8], edx
jne 0x5833bf
jmp 0x5834d0
mov edx, dword [esi + 8]
inc edx
mov dword [esi + 8], edx
cmp edx, dword [esi + 0xc]
je 0x5834d0
mov eax, dword [0x5cf5f8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf5fc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xc9893d93
mov edi, 0x603280c6
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0xc9893d93
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0xfc461c64
cmp ecx, 0xfc461c63
jg 0x583424
cmp ecx, 0xc9893d93
je 0x583460
cmp ecx, 0xdac56cfa
jne 0x583408
mov ecx, eax
jmp 0x583408
cmp ecx, 0x603280c6
je 0x583467
cmp ecx, 0xfc461c64
jne 0x583408
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xc9893d93
mov edi, 0xdac56cfa
cmovne ecx, edi
test dl, dl
mov ebx, 0xc9893d93
cmove ecx, ebx
test dh, dh
cmovne ecx, edi
jmp 0x583408
mov ecx, 0xdac56cfa
jmp 0x583408
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x18]
movsx eax, byte [ebx]
push eax
call fcn.005a47b5
add esp, 4
and al, 0xa
mov byte [ebx], al
mov ecx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
setne dl
sete bl
cmp eax, 0xa
setge dh
setl bh
xor bh, bl
jne 0x5833af
or dh, dl
je 0x5833af
jmp 0x5916ac
mov edx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
inc dword [esi + 0x24]
test ecx, ecx
sete dl
setne cl
cmp eax, 0xa
setl ah
setge al
cmp dl, ah
jne 0x583298
or cl, al
je 0x583298
jmp 0x5916cc
mov ecx, dword [esi + 4]
call fcn.00423280
cmp byte [eax + 0xd7], 0x31
jne 0x586d87
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x586cfd
xor cl, al
je 0x586d2d
jmp 0x586cfd
push eax
mov dword [esi + 0x38], esp
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
mov dword [esi + 0x34], ecx
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 4], edi
mov ecx, edi
call fcn.0040cd80
mov eax, dword [0x5cf4b8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4bc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
sete cl
mov eax, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov ebx, 0x8f0f2ca8
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x13d3b53a
cmp ecx, 0x13d3b539
jg 0x5835d1
cmp ecx, 0x8f0f2ca8
je 0x583608
cmp ecx, 0x11f1fb1a
jne 0x5835b7
jmp 0x583613
cmp ecx, 0x1a1c1d98
je 0x58360f
cmp ecx, 0x13d3b53a
jne 0x5835b7
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov ch, dl
xor ch, cl
mov edi, 0x8f0f2ca8
mov ebx, 0x1a1c1d98
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5835b7
mov ecx, 0x1a1c1d98
jmp 0x5835b7
mov ecx, eax
jmp 0x5835b7
mov edi, dword [esi + 4]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf5f4], 0xa
mov byte [edi], 0
setl ah
setge cl
cmp ah, dl
jne 0x583743
or cl, al
je 0x583743
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 8], edi
mov ecx, edi
call fcn.0040cd80
mov edx, dword [0x5cf4b8]
mov ecx, dword [0x5cf4bc]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x8f0f2ca8
mov ebx, 0x11f1fb1a
cmovne edx, ebx
cmp eax, 0xffffffff
sete byte [esi + 0x28]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x18]
cmovge eax, edx
mov ecx, 0x13d3b53a
jmp 0x5836d2
mov ecx, eax
cmp ecx, 0x13d3b539
jg 0x5836ec
cmp ecx, 0x8f0f2ca8
je 0x583723
cmp ecx, 0x11f1fb1a
jne 0x5836d2
jmp 0x58372a
cmp ecx, 0x1a1c1d98
je 0x5836d0
cmp ecx, 0x13d3b53a
jne 0x5836d2
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov ch, dl
xor ch, cl
mov ebx, 0x8f0f2ca8
mov edi, 0x1a1c1d98
cmovne ebx, edi
test cl, cl
mov ecx, ebx
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
jmp 0x5836d2
mov ecx, 0x1a1c1d98
jmp 0x5836d2
mov eax, dword [esi + 8]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
jmp 0x583542
mov dword [esi + 0x24], 0
cmp dword [esi + 0x24], 0x3e8
je 0x5839b4
mov ecx, dword [esi + 0x34]
movsx eax, byte [ecx + 1]
movsx edx, byte [ecx]
mov dword [esi + 0xc0], 0x97
push eax
push edx
push dword [esi + 0x38]
call fcn.0041e700
movsx eax, al
mov ecx, dword [esi + 4]
push eax
call fcn.00441240
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x5837aa
or cl, al
test cl, 1
jne 0x5837db
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [0x5cf5f4], 0xa
setl dl
test dl, cl
jne 0x5837e5
xor dl, cl
jne 0x5837e5
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x5837aa
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
cmp byte [ecx + eax - 1], 0x6f
je 0x58380a
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov ecx, dword [edi + 0x10]
cmp byte [ecx + eax - 1], 0x75
jne 0x583978
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov dword [esi + 8], eax
mov ecx, edi
call fcn.00423280
mov ecx, dword [0x5cf5f0]
mov ebx, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
add eax, dword [edi + 0x10]
mov dword [esi + 0xc], eax
xor ecx, 0xfffffffe
and ecx, edx
setne dl
sete al
mov edi, ebx
cmp ebx, 0xa
setge dh
setl bh
xor bh, al
jne 0x58385a
or dh, dl
jne 0x5916ce
mov eax, dword [esi + 0xc]
cmp dword [esi + 8], eax
jne 0x583877
jmp 0x583991
mov eax, dword [esi + 8]
inc eax
mov dword [esi + 8], eax
cmp eax, dword [esi + 0xc]
je 0x583991
mov eax, dword [0x5cf5f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf5fc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xc9893d93
mov edi, 0x603280c6
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
setl cl
mov ebx, 0xc9893d93
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0xfc461c64
cmp ecx, 0xfc461c63
jg 0x5838db
cmp ecx, 0xc9893d93
je 0x583917
cmp ecx, 0xdac56cfa
jne 0x5838bf
mov ecx, eax
jmp 0x5838bf
cmp ecx, 0x603280c6
je 0x58391e
cmp ecx, 0xfc461c64
jne 0x5838bf
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xc9893d93
mov edi, 0xdac56cfa
cmovne ecx, edi
test dl, dl
mov ebx, 0xc9893d93
cmove ecx, ebx
test dh, dh
cmovne ecx, edi
jmp 0x5838bf
mov ecx, 0xdac56cfa
jmp 0x5838bf
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x18]
movsx eax, byte [ebx]
push eax
call fcn.005a47b5
add esp, 4
mov ecx, eax
xor cl, 0xf5
and cl, al
mov byte [ebx], cl
mov ecx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
and ecx, 1
sete bh
mov edi, eax
cmp eax, 0xa
setl al
setge bl
cmp al, bh
jne 0x583867
or bl, dl
test bl, 1
je 0x583867
jmp 0x5916b0
mov ecx, dword [0x5cf5f0]
mov edi, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
inc dword [esi + 0x24]
test ecx, ecx
sete cl
cmp edi, 0xa
setl al
test cl, al
jne 0x58374a
xor cl, al
jne 0x58374a
jmp 0x5916d0
mov ecx, dword [esi + 4]
call fcn.00423280
cmp byte [eax + 0xd7], 0x31
jne 0x583aa3
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x5839f2
or cl, al
test cl, 1
jne 0x583a24
mov ecx, dword [esi + 4]
call fcn.00423280
mov edx, dword [0x5cf5f0]
lea ecx, [edx + 1]
imul ecx, edx
test cl, 1
sete dh
cmp dword [0x5cf5f4], 0xa
setge dl
setl bl
xor bl, dh
jne 0x583a2e
or dl, cl
test dl, 1
je 0x583a2e
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x5839f2
cmp byte [eax + 0x2d0], 0x30
jne 0x583aa3
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x583aa3
xor cl, al
jne 0x583aa3
push 0
push 0
mov edi, dword [sym.imp.KERNEL32.dll_Beep]
call edi
push 0
push 0
call edi
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x583aa3
or cl, al
test cl, 1
jne 0x583a68
mov ecx, dword [esi + 4]
call fcn.0040ed30
mov esp, dword [esi + 0x40]
mov dword [esi + 0xa0], esp
mov dword [esi + 0x9c], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
setne dh
sete bl
mov ecx, dword [0x5cf6c4]
cmp ecx, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
xor dl, 1
or dl, bh
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x6c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x583aea
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x584b3a
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setge dl
setl bl
xor bl, dh
mov ebx, dword [esi + 0x38]
mov dword [esi + 4], ebx
mov ebx, dword [esi + 0x24]
mov dword [esi + 8], ebx
jne 0x583bb7
or dl, al
test dl, 1
jne 0x591728
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x584183
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x583b7c
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 8]
mov dword [ecx], ebx
mov ebx, dword [esi + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x8c]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0xc]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x583cb9
cmp ecx, 0x20e9c049
je 0x583cd0
cmp ecx, 0x3b23d0b1
jne 0x583c9f
jmp 0x583cfb
cmp ecx, 0x9c6e8745
je 0x583cd4
cmp ecx, 0xeb760989
jne 0x583c9f
mov ecx, 0x20e9c049
jmp 0x583c9f
mov ecx, eax
jmp 0x583c9f
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x583c9f
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x583d96
cmp ecx, 0xcfcad29c
je 0x583dd9
cmp ecx, 0x3aca7e6
jne 0x583d7a
mov ecx, eax
jmp 0x583d7a
cmp ecx, 0x7c4a5f2
je 0x583dd2
cmp ecx, 0x389c0e25
jne 0x583d7a
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x583d7a
mov ecx, 0x3aca7e6
jmp 0x583d7a
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x98
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x9a
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x583e7c
cmp eax, 0xc6e82640
je 0x583ee0
cmp eax, 0x950d98a
jne 0x583e3c
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x583e3c
cmp eax, 0x31a61df5
je 0x583e99
cmp eax, 0x4d86efb0
jne 0x583e3c
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x583e3c
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x583e3c
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf6cc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x583f5f
cmp ecx, 0x20e9c049
je 0x583f76
cmp ecx, 0x3b23d0b1
jne 0x583f45
jmp 0x583fa1
cmp ecx, 0x9c6e8745
je 0x583f7a
cmp ecx, 0xeb760989
jne 0x583f45
mov ecx, 0x20e9c049
jmp 0x583f45
mov ecx, eax
jmp 0x583f45
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x583f45
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x6c]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x80]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x64]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x584038
cmp ecx, 0xcfcad29c
je 0x584076
cmp ecx, 0x3aca7e6
jne 0x58401c
mov ecx, eax
jmp 0x58401c
cmp ecx, 0x7c4a5f2
je 0x58406f
cmp ecx, 0x389c0e25
jne 0x58401c
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x58401c
mov ecx, 0x3aca7e6
jmp 0x58401c
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x98
mov ecx, dword [esi + 0x6c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x99
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x6c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x584119
cmp eax, 0xc6e82640
je 0x583b7c
cmp eax, 0x950d98a
jne 0x5840d9
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x5840d9
cmp eax, 0x31a61df5
je 0x584136
cmp eax, 0x4d86efb0
jne 0x5840d9
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x5840d9
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x5840d9
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x58449d
mov dword [esi + 0x48], 1
jmp 0x5841ca
mov ebx, dword [esi + 0x48]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x48], ebx
cmp ebx, edx
jae 0x58449d
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne al
sete dl
cmp edi, 0xa
setge cl
setl ah
xor ah, dl
mov edx, dword [esi + 0x48]
mov dword [esi + 4], edx
jne 0x584218
or cl, al
mov eax, dword [esi + 0x48]
mov dword [esi + 4], eax
je 0x584218
jmp 0x591942
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edi
call fcn.00433980
cmp dword [esi + 4], 0
je 0x584465
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax + 1]
imul edi, eax
mov eax, edi
and eax, 1
sete al
cmp ebx, 0xa
setl cl
xor cl, al
mov eax, 0xbf25ae54
mov ecx, 0x20ab24e5
cmovne eax, ecx
and edi, 1
sete byte [esi + 0x10]
mov edx, eax
cmove edx, ecx
mov dword [esi + 0xc], ebx
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
mov dword [esi + 0x38], ecx
lea eax, [ecx + eax*4]
mov dword [esi + 0x24], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x584292
cmp eax, 0xffb13445
je 0x5842c7
cmp eax, 0x20ab24e5
jne 0x58427b
jmp 0x5842d3
cmp eax, 0xbf25ae54
je 0x5842cc
cmp eax, 0xe6642f9a
jne 0x58427b
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov ecx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ecx, edx
test al, al
mov eax, ecx
cmovne eax, edx
test bl, bl
cmove eax, ecx
jmp 0x58427b
mov eax, dword [esi + 8]
jmp 0x58427b
mov eax, 0xffb13445
jmp 0x58427b
mov ecx, dword [esi + 4]
dec ecx
test edi, edi
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x40], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x34], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x38]
lea eax, [ecx + eax*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x584326
cmp eax, 0xffb13445
je 0x58435b
cmp eax, 0x20ab24e5
jne 0x58430f
jmp 0x584367
cmp eax, 0xbf25ae54
je 0x584360
cmp eax, 0xe6642f9a
jne 0x58430f
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov edx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edx, ebx
test al, al
mov eax, edx
cmovne eax, ebx
test cl, cl
cmove eax, edx
jmp 0x58430f
mov eax, dword [esi + 8]
jmp 0x58430f
mov eax, 0xffb13445
jmp 0x58430f
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x40]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x34]
sbb ecx, dword [eax + 4]
jge 0x584465
test edi, edi
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5843ad
cmp eax, 0xffb13445
je 0x5843e2
cmp eax, 0x20ab24e5
jne 0x584396
jmp 0x5843ee
cmp eax, 0xbf25ae54
je 0x5843e7
cmp eax, 0xe6642f9a
jne 0x584396
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edx, ebx
test al, al
mov eax, edx
cmovne eax, ebx
test cl, cl
cmove eax, edx
jmp 0x584396
mov eax, dword [esi + 8]
jmp 0x584396
mov eax, 0xffb13445
jmp 0x584396
test edi, edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov edi, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x584424
cmp eax, 0xffb13445
je 0x584459
cmp eax, 0x20ab24e5
jne 0x58440a
jmp 0x5841ff
cmp eax, 0xbf25ae54
je 0x58445e
cmp eax, 0xe6642f9a
jne 0x58440a
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edx, ebx
test al, al
mov eax, edx
cmovne eax, ebx
test cl, cl
cmove eax, edx
jmp 0x58440a
mov eax, dword [esi + 8]
jmp 0x58440a
mov eax, 0xffb13445
jmp 0x58440a
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
cmp edi, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x5841a8
or dl, al
test dl, 1
je 0x5841a8
jmp 0x591944
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x5844f1
cmp edi, 0x88e9608c
je 0x584531
cmp edi, 0xdf32ec89
jne 0x5844cd
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x5844cd
cmp edi, 0x30b7124c
je 0x58458a
cmp edi, 0x124998e2
jne 0x5844cd
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, cl
xor bh, bl
test cl, cl
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test bl, bl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bh, bh
cmovne edi, edx
jmp 0x5844cd
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea edi, [ecx + 1]
mov dword [esi + 4], ecx
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete cl
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne ecx, ebx
cmp edi, 0xffffffff
mov edi, ecx
cmove edi, ebx
mov dword [esi + 8], edx
cmp edx, 0xa
cmovge edi, ecx
mov ecx, dword [esi + 0x18]
jmp 0x5844cd
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x5845d8
cmp ecx, 0x88e9608c
je 0x58460f
cmp ecx, 0xdf32ec89
jne 0x5845b4
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x5845b4
cmp ecx, 0x30b7124c
je 0x58465d
cmp ecx, 0x124998e2
jne 0x5845b4
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5845b4
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x5845b4
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x58468c
xor cl, al
je 0x591948
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x584aa6
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmovne ebx, edi
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
mov edi, ebx
mov ecx, 0x2601f5a7
cmove edi, ecx
cmp edx, 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov ecx, dword [eax]
mov dword [esi + 8], ecx
cmovge edi, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x58471d
cmp edx, 0x87fb68d6
je 0x584754
cmp edx, 0xfc04dcc5
jne 0x5846fe
mov edx, 0x87fb68d6
jmp 0x5846fe
cmp edx, 0x2601f5a7
je 0x584758
cmp edx, 0x5a893bc4
jne 0x5846fe
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, bl
xor dh, dl
mov ecx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne ecx, eax
test dl, dl
mov edx, ecx
cmovne edx, eax
test bl, bl
cmove edx, ecx
jmp 0x5846fe
mov edx, edi
jmp 0x5846fe
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x584970
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x58479e
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x584970
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x34], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x58486d
mov eax, dword [esi + 0x24]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0xc], ecx
cmp dword [esi + 0xc], 0
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
mov eax, 0x1b272c9a
jmp 0x58480c
mov eax, ecx
cmp eax, 0x4c6ca681
jle 0x584823
cmp eax, 0x4c6ca682
je 0x58485d
cmp eax, 0x6707b2cf
jne 0x58480c
jmp 0x584864
cmp eax, 0xf74fd645
je 0x58480a
cmp eax, 0x1b272c9a
jne 0x58480c
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, al
xor dh, dl
test al, al
mov eax, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne eax, ebx
test dl, dl
mov edi, 0x4c6ca682
cmove eax, edi
test dh, dh
cmovne eax, ebx
jmp 0x58480c
mov eax, 0xf74fd645
jmp 0x58480c
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ebx, eax
xor ebx, 0xfffffffe
mov edx, ebx
and edx, eax
sete dl
mov ecx, dword [esi + 4]
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
and ebx, eax
mov dword [esi + 0xc], ebx
sete byte [esi + 0x10]
mov ebx, edx
cmove ebx, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge ebx, edx
mov eax, 0x1b272c9a
cmp eax, 0x4c6ca681
jle 0x5848ce
cmp eax, 0x4c6ca682
je 0x584908
cmp eax, 0x6707b2cf
jne 0x5848b7
jmp 0x584913
cmp eax, 0xf74fd645
je 0x58490f
cmp eax, 0x1b272c9a
jne 0x5848b7
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne eax, ecx
test dl, dl
mov edi, 0x4c6ca682
cmove eax, edi
test dh, dh
cmovne eax, ecx
jmp 0x5848b7
mov eax, 0xf74fd645
jmp 0x5848b7
mov eax, ebx
jmp 0x5848b7
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x5847d3
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x58478c
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x58478c
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x34], 0xa
setl cl
test cl, al
jne 0x584996
xor cl, al
je 0x591946
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x5849e0
cmp eax, 0xcd5e6053
je 0x584a3e
cmp eax, 0x18ed46ca
jne 0x5849be
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x5849be
cmp eax, 0x5499d804
je 0x584a6d
cmp eax, 0x685e39a2
jne 0x5849be
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x18ed46ca
mov ebx, 0x5499d804
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x5849be
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x5849be
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x58468c
or cl, al
test cl, 1
je 0x58468c
jmp 0x591948
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dl
sete bl
cmp ecx, 0xa
setge dh
setl bh
xor bh, bl
mov edi, dword [esi + 0x5c]
jne 0x583b4e
or dh, dl
mov edi, dword [esi + 0x5c]
je 0x583b4e
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp ecx, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x584b32
test dl, dl
je 0x584aeb
mov edi, dword [esi + 0x5c]
jmp 0x583b4e
mov edi, dword [esi + 0x5c]
jmp 0x583b4e
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete al
cmp ecx, 0xa
setl cl
test cl, al
jne 0x584b5c
xor cl, al
je 0x591928
mov esp, dword [esi + 0x9c]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
setne dh
sete bl
cmp ecx, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
xor dl, 1
or dl, bh
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x6c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x584b92
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x585bce
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete ah
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
mov ebx, dword [esi + 0x38]
mov dword [esi + 4], ebx
mov ebx, dword [esi + 0x24]
mov dword [esi + 8], ebx
jne 0x584c64
or dl, al
jne 0x591938
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x585235
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x584c24
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 8]
mov dword [ecx], ebx
mov ebx, dword [esi + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x8c]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0xc]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x584d65
cmp ecx, 0x20e9c049
je 0x584d7c
cmp ecx, 0x3b23d0b1
jne 0x584d4b
jmp 0x584da7
cmp ecx, 0x9c6e8745
je 0x584d80
cmp ecx, 0xeb760989
jne 0x584d4b
mov ecx, 0x20e9c049
jmp 0x584d4b
mov ecx, eax
jmp 0x584d4b
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x584d4b
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x4c]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x90]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x68]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x584e3e
cmp ecx, 0xcfcad29c
je 0x584e7c
cmp ecx, 0x3aca7e6
jne 0x584e22
mov ecx, eax
jmp 0x584e22
cmp ecx, 0x7c4a5f2
je 0x584e75
cmp ecx, 0x389c0e25
jne 0x584e22
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x584e22
mov ecx, 0x3aca7e6
jmp 0x584e22
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x9b
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x9d
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x584f1e
cmp eax, 0xc6e82640
je 0x584f81
cmp eax, 0x950d98a
jne 0x584ede
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x584ede
cmp eax, 0x31a61df5
je 0x584f3b
cmp eax, 0x4d86efb0
jne 0x584ede
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x584ede
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x584ede
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
mov edx, dword [0x5cf6cc]
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne ecx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, ecx
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
cmovge eax, ecx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x585005
cmp ecx, 0x20e9c049
je 0x58501c
cmp ecx, 0x3b23d0b1
jne 0x584feb
jmp 0x58504c
cmp ecx, 0x9c6e8745
je 0x585020
cmp ecx, 0xeb760989
jne 0x584feb
mov ecx, 0x20e9c049
jmp 0x584feb
mov ecx, eax
jmp 0x584feb
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x584feb
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x6c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x5850e5
cmp ecx, 0xcfcad29c
je 0x585128
cmp ecx, 0x3aca7e6
jne 0x5850c9
mov ecx, eax
jmp 0x5850c9
cmp ecx, 0x7c4a5f2
je 0x585121
cmp ecx, 0x389c0e25
jne 0x5850c9
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5850c9
mov ecx, 0x3aca7e6
jmp 0x5850c9
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x9b
mov ecx, dword [esi + 0x6c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x9c
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x6c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x5851cb
cmp eax, 0xc6e82640
je 0x584c24
cmp eax, 0x950d98a
jne 0x58518b
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x58518b
cmp eax, 0x31a61df5
je 0x5851e8
cmp eax, 0x4d86efb0
jne 0x58518b
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x58518b
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x58518b
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x585563
mov dword [esi + 0x58], 1
jmp 0x58527c
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x585563
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x58]
mov dword [esi + 8], edx
test cl, al
jne 0x5852c7
xor cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 8], eax
jne 0x5852c7
jmp 0x59193a
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0xc]
call fcn.00433980
cmp dword [esi + 8], 0
je 0x58552b
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0xc], ecx
mov dword [esi + 0x24], eax
test eax, ecx
sete byte [esi + 0x10]
mov ecx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove ecx, ebx
sete al
mov dword [esi + 4], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ecx, edx
setl dl
xor dl, al
mov eax, dword [esi + 0x3c]
mov edx, dword [eax]
mov eax, dword [esi + 8]
lea eax, [eax + eax*2]
mov dword [esi + 0x34], edx
lea eax, [edx + eax*4]
mov dword [esi + 0x38], eax
cmovne ecx, ebx
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x585343
cmp eax, 0xffb13445
je 0x585378
cmp eax, 0x20ab24e5
jne 0x58532c
jmp 0x585383
cmp eax, 0xbf25ae54
je 0x58537c
cmp eax, 0xe6642f9a
jne 0x58532c
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ebx, edi
test al, al
mov eax, ebx
cmovne eax, edi
test dl, dl
cmove eax, ebx
jmp 0x58532c
mov eax, ecx
jmp 0x58532c
mov eax, 0xffb13445
jmp 0x58532c
mov edx, dword [esi + 8]
dec edx
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax]
mov dword [esi + 0x48], edi
mov eax, dword [eax + 4]
mov dword [esi + 0x40], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov dword [esi + 8], edx
lea eax, [edx + edx*2]
mov edx, dword [esi + 0x34]
lea eax, [edx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5853da
cmp eax, 0xffb13445
je 0x585414
cmp eax, 0x20ab24e5
jne 0x5853c3
jmp 0x58541f
cmp eax, 0xbf25ae54
je 0x585418
cmp eax, 0xe6642f9a
jne 0x5853c3
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, bl
xor bh, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test bl, bl
mov edx, 0xbf25ae54
cmove eax, edx
test bh, bh
cmovne eax, edi
jmp 0x5853c3
mov eax, ecx
jmp 0x5853c3
mov eax, 0xffb13445
jmp 0x5853c3
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [esi + 0x48]
cmp edx, dword [eax]
mov edx, dword [esi + 0x40]
sbb edx, dword [eax + 4]
jge 0x58552b
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x585469
cmp eax, 0xffb13445
je 0x58549e
cmp eax, 0x20ab24e5
jne 0x585452
jmp 0x5854a9
cmp eax, 0xbf25ae54
je 0x5854a2
cmp eax, 0xe6642f9a
jne 0x585452
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ebx, edi
test al, al
mov eax, ebx
cmovne eax, edi
test dl, dl
cmove eax, ebx
jmp 0x585452
mov eax, ecx
jmp 0x585452
mov eax, 0xffb13445
jmp 0x585452
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5854e6
cmp eax, 0xffb13445
je 0x585520
cmp eax, 0x20ab24e5
jne 0x5854cc
jmp 0x5852ac
cmp eax, 0xbf25ae54
je 0x585524
cmp eax, 0xe6642f9a
jne 0x5854cc
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, al
xor bh, bl
test al, al
mov eax, 0xbf25ae54
mov edx, 0xffb13445
cmovne eax, edx
test bl, bl
mov edi, 0xbf25ae54
cmove eax, edi
test bh, bh
cmovne eax, edx
jmp 0x5854cc
mov eax, ecx
jmp 0x5854cc
mov eax, 0xffb13445
jmp 0x5854cc
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x58525a
xor dl, al
jne 0x58525a
jmp 0x59193c
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x5855b6
cmp edi, 0x88e9608c
je 0x5855f6
cmp edi, 0xdf32ec89
jne 0x585592
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x585592
cmp edi, 0x30b7124c
je 0x58564e
cmp edi, 0x124998e2
jne 0x585592
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, cl
xor bh, bl
test cl, cl
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test bl, bl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bh, bh
cmovne edi, edx
jmp 0x585592
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
mov dword [esi + 8], edx
lea edi, [ecx + 1]
mov dword [esi + 4], ecx
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov edx, 0x30b7124c
cmovne ebx, edx
test ecx, edi
mov edi, ebx
cmove edi, edx
cmp dword [esi + 8], 0xa
cmovge edi, ebx
mov ecx, dword [esi + 0x18]
jmp 0x585592
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x58569c
cmp ecx, 0x88e9608c
je 0x5856d3
cmp ecx, 0xdf32ec89
jne 0x585678
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x585678
cmp ecx, 0x30b7124c
je 0x585721
cmp ecx, 0x124998e2
jne 0x585678
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x585678
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x585678
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
jmp 0x58574e
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x585767
xor cl, al
je 0x59193e
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x585b40
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov edi, dword [eax]
mov dword [esi + 8], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x5857f4
cmp edx, 0x87fb68d6
je 0x58582b
cmp edx, 0xfc04dcc5
jne 0x5857d5
mov edx, 0x87fb68d6
jmp 0x5857d5
cmp edx, 0x2601f5a7
je 0x58582f
cmp edx, 0x5a893bc4
jne 0x5857d5
movzx eax, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, al
xor dh, dl
mov ebx, 0xfc04dcc5
mov edi, 0x87fb68d6
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x5857d5
mov edx, ecx
jmp 0x5857d5
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x585a41
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x585875
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x585a41
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x34], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x585943
mov eax, dword [esi + 0x24]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0xc], ecx
cmp dword [esi + 0xc], 0
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
mov eax, 0x1b272c9a
jmp 0x5858e2
mov eax, ecx
cmp eax, 0x4c6ca681
jle 0x5858f9
cmp eax, 0x4c6ca682
je 0x585933
cmp eax, 0x6707b2cf
jne 0x5858e2
jmp 0x58593a
cmp eax, 0xf74fd645
je 0x5858e0
cmp eax, 0x1b272c9a
jne 0x5858e2
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne eax, ebx
test dl, dl
mov edi, 0x4c6ca682
cmove eax, edi
test dh, dh
cmovne eax, ebx
jmp 0x5858e2
mov eax, 0xf74fd645
jmp 0x5858e2
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ebx, eax
xor ebx, 0xfffffffe
mov edx, ebx
and edx, eax
sete dl
mov ecx, dword [esi + 4]
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
and ebx, eax
mov dword [esi + 0xc], ebx
sete byte [esi + 0x10]
mov ebx, edx
cmove ebx, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge ebx, edx
mov eax, 0x1b272c9a
cmp eax, 0x4c6ca681
jle 0x5859a4
cmp eax, 0x4c6ca682
je 0x5859d9
cmp eax, 0x6707b2cf
jne 0x58598d
jmp 0x5859e4
cmp eax, 0xf74fd645
je 0x5859e0
cmp eax, 0x1b272c9a
jne 0x58598d
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov edi, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne edi, ecx
test al, al
mov eax, edi
cmovne eax, ecx
test dl, dl
cmove eax, edi
jmp 0x58598d
mov eax, 0xf74fd645
jmp 0x58598d
mov eax, ebx
jmp 0x58598d
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x5858a9
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x585863
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x585863
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [esi + 0x34], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x585a68
or cl, al
test cl, 1
jne 0x591940
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x585ab3
cmp eax, 0xcd5e6053
je 0x585b11
cmp eax, 0x18ed46ca
jne 0x585a91
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x585a91
cmp eax, 0x5499d804
je 0x585739
cmp eax, 0x685e39a2
jne 0x585a91
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x18ed46ca
mov ebx, 0x5499d804
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x585a91
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x585a91
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dl
cmp ecx, 0xa
setl dh
mov edi, dword [esi + 0x5c]
test dh, dl
jne 0x584bf6
xor dh, dl
mov edi, dword [esi + 0x5c]
jne 0x584bf6
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp ecx, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x585bc6
test dl, dl
je 0x585b7f
mov edi, dword [esi + 0x5c]
jmp 0x584bf6
mov edi, dword [esi + 0x5c]
jmp 0x584bf6
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete ah
cmp ecx, 0xa
setl cl
setge al
cmp cl, ah
jne 0x585bf1
or al, dl
test al, 1
jne 0x59192a
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea ebx, [ecx + 1]
imul ebx, ecx
test bl, 1
sete dh
cmp edi, 0xa
setge dl
setl al
or dl, bl
xor al, dh
xor dl, 1
or dl, al
push eax
sub esp, 8
mov dword [esi + 8], esp
sub esp, 0xc
mov dword [esi + 0x40], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x68], eax
mov esp, eax
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x3c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x64], eax
mov esp, eax
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, 1
je 0x585c21
mov eax, dword [esi + 0x68]
add eax, 0x10
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x64]
add eax, 0x10
mov dword [esi + 0x80], eax
mov ebx, 0xa
cmp ebx, 0x1f4
jae 0x586c92
mov ecx, dword [esi + 8]
call fcn.004322e0
lea eax, [ebx + 1]
imul ebx, eax
shr ebx, 1
mov dword [esi + 0x48], ebx
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x38], eax
mov dword [esi + 0x34], 0
mov eax, dword [esi + 0x34]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x585cef
or dl, al
test dl, 1
jne 0x59192c
mov edx, dword [esi + 4]
mov eax, edx
imul eax, dword [esi + 0xc]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x48]
sbb eax, 0
jae 0x5862be
mov eax, dword [esi + 0x48]
mov edi, dword [esi + 4]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x6c], eax
mov eax, 0
mov ebx, dword [esi + 0xc]
sbb eax, ebx
mov dword [esi + 0x4c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0x24], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x34], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0x38], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x6c]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
sbb ecx, edx
or ecx, eax
jne 0x585cb4
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov edi, dword [esi + 4]
mov dword [ecx], edi
mov edi, dword [esi + 0xc]
mov dword [ecx + 4], edi
mov edi, dword [esi + 0x8c]
mov dword [ecx + 8], edi
setl byte [esi + 0x28]
mov edi, dword [esi + 0x24]
mov dword [ecx + 0xc], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x585df5
cmp ecx, 0x20e9c049
je 0x585e0c
cmp ecx, 0x3b23d0b1
jne 0x585ddb
jmp 0x585e3c
cmp ecx, 0x9c6e8745
je 0x585e10
cmp ecx, 0xeb760989
jne 0x585ddb
mov ecx, 0x20e9c049
jmp 0x585ddb
mov ecx, eax
jmp 0x585ddb
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x585ddb
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x40]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x90]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x68]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x585ed3
cmp ecx, 0xcfcad29c
je 0x585f11
cmp ecx, 0x3aca7e6
jne 0x585eb7
mov ecx, eax
jmp 0x585eb7
cmp ecx, 0x7c4a5f2
je 0x585f0a
cmp ecx, 0x389c0e25
jne 0x585eb7
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x585eb7
mov ecx, 0x3aca7e6
jmp 0x585eb7
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x9e
mov ecx, dword [esi + 0x40]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xa0
mov ecx, dword [esi + 8]
push dword [esi + 0x40]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x585fb8
cmp eax, 0xc6e82640
je 0x58601b
cmp eax, 0x950d98a
jne 0x585f73
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x585f73
cmp eax, 0x31a61df5
je 0x585fd5
cmp eax, 0x4d86efb0
jne 0x585f73
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x585f73
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x585f73
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0x24]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf6cc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 4]
mov dword [ebx + 8], edx
setl dl
mov ebx, 0xeb760989
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x58609b
cmp ecx, 0x20e9c049
je 0x5860b2
cmp ecx, 0x3b23d0b1
jne 0x586081
jmp 0x5860dd
cmp ecx, 0x9c6e8745
je 0x5860b6
cmp ecx, 0xeb760989
jne 0x586081
mov ecx, 0x20e9c049
jmp 0x586081
mov ecx, eax
jmp 0x586081
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x586081
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax - 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x3c]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x80]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x64]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x586174
cmp ecx, 0xcfcad29c
je 0x5861b7
cmp ecx, 0x3aca7e6
jne 0x586158
mov ecx, eax
jmp 0x586158
cmp ecx, 0x7c4a5f2
je 0x5861b0
cmp ecx, 0x389c0e25
jne 0x586158
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x586158
mov ecx, 0x3aca7e6
jmp 0x586158
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x9e
mov ecx, dword [esi + 0x3c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x9f
mov ecx, dword [esi + 8]
push dword [esi + 0x3c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x58625a
cmp eax, 0xc6e82640
je 0x585cb4
cmp eax, 0x950d98a
jne 0x58621a
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x58621a
cmp eax, 0x31a61df5
je 0x586277
cmp eax, 0x4d86efb0
jne 0x58621a
mov ecx, dword [esi + 0x3c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x58621a
mov ecx, dword [esi + 0x3c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x58621a
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x5865eb
mov dword [esi + 0x6c], 1
jmp 0x586305
mov ebx, dword [esi + 0x6c]
inc ebx
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x6c], ebx
cmp ebx, edx
jae 0x5865eb
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x6c]
mov dword [esi + 0xc], edx
test cl, al
jne 0x58634d
xor cl, al
mov eax, dword [esi + 0x6c]
mov dword [esi + 0xc], eax
jne 0x58634d
jmp 0x591930
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edi
call fcn.00433980
cmp dword [esi + 0xc], 0
je 0x5865ae
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax + 1]
imul edi, eax
mov eax, edi
and eax, 1
sete al
cmp ebx, 0xa
setl cl
xor cl, al
mov eax, 0xbf25ae54
mov ecx, 0x20ab24e5
cmovne eax, ecx
and edi, 1
sete byte [esi + 0x10]
mov edx, eax
cmove edx, ecx
mov dword [esi + 0x24], ebx
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov dword [esi + 4], edx
mov eax, dword [esi + 8]
mov ecx, dword [eax]
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*2]
mov dword [esi + 0x34], ecx
lea eax, [ecx + eax*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5863c7
cmp eax, 0xffb13445
je 0x5863fc
cmp eax, 0x20ab24e5
jne 0x5863b0
jmp 0x586408
cmp eax, 0xbf25ae54
je 0x586401
cmp eax, 0xe6642f9a
jne 0x5863b0
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov ecx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ecx, edx
test al, al
mov eax, ecx
cmovne eax, edx
test bl, bl
cmove eax, ecx
jmp 0x5863b0
mov eax, dword [esi + 4]
jmp 0x5863b0
mov eax, 0xffb13445
jmp 0x5863b0
mov ecx, dword [esi + 0xc]
dec ecx
test edi, edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x4c], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x48], eax
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov dword [esi + 0xc], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x34]
lea eax, [ecx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x58645b
cmp eax, 0xffb13445
je 0x586490
cmp eax, 0x20ab24e5
jne 0x586444
jmp 0x58649c
cmp eax, 0xbf25ae54
je 0x586495
cmp eax, 0xe6642f9a
jne 0x586444
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov edx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edx, ebx
test al, al
mov eax, edx
cmovne eax, ebx
test cl, cl
cmove eax, edx
jmp 0x586444
mov eax, dword [esi + 4]
jmp 0x586444
mov eax, 0xffb13445
jmp 0x586444
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x4c]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x48]
sbb ecx, dword [eax + 4]
jge 0x5865ae
test edi, edi
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov ebx, 0xe6642f9a
cmp ebx, 0xffb13444
jle 0x5864e5
cmp ebx, 0xffb13445
je 0x586521
cmp ebx, 0x20ab24e5
jne 0x5864cb
jmp 0x58652d
cmp ebx, 0xbf25ae54
je 0x586526
cmp ebx, 0xe6642f9a
jne 0x5864cb
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test cl, cl
mov ebx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne ebx, ecx
test al, al
mov eax, 0xbf25ae54
cmove ebx, eax
test dl, dl
cmovne ebx, ecx
jmp 0x5864cb
mov ebx, dword [esi + 4]
jmp 0x5864cb
mov ebx, 0xffb13445
jmp 0x5864cb
test edi, edi
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov edi, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x586566
cmp ecx, 0xffb13445
je 0x5865a2
cmp ecx, 0x20ab24e5
jne 0x586549
jmp 0x586334
cmp ecx, 0xbf25ae54
je 0x5865a7
cmp ecx, 0xe6642f9a
jne 0x586549
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test cl, cl
mov ecx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne ecx, ebx
test al, al
mov eax, 0xbf25ae54
cmove ecx, eax
test dl, dl
cmovne ecx, ebx
jmp 0x586549
mov ecx, dword [esi + 4]
jmp 0x586549
mov ecx, 0xffb13445
jmp 0x586549
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete ah
setne al
cmp edi, 0xa
setl dh
setge dl
cmp dh, ah
jne 0x5862e3
or dl, al
je 0x5862e3
jmp 0x591932
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 0xc], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x58663e
cmp edi, 0x88e9608c
je 0x58667d
cmp edi, 0xdf32ec89
jne 0x58661a
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x58661a
cmp edi, 0x30b7124c
je 0x5866d7
cmp edi, 0x124998e2
jne 0x58661a
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x58661a
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
mov dword [esi + 0xc], edx
imul ecx, edx
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 4], ebx
cmp ebx, 0xa
mov edx, 0xdf32ec89
cmovge edi, edx
setl dl
xor dl, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x58661a
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x586726
cmp ecx, 0x88e9608c
je 0x586766
cmp ecx, 0xdf32ec89
jne 0x586702
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x586702
cmp ecx, 0x30b7124c
je 0x5867b9
cmp ecx, 0x124998e2
jne 0x586702
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x586702
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov edi, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne edi, ebx
cmp ecx, 0xffffffff
mov ecx, edi
cmove ecx, ebx
cmp edx, 0xa
cmovge ecx, edi
mov edx, dword [esi + 0x18]
jmp 0x586702
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x5867e8
xor cl, al
je 0x591936
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x586bfc
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 0xc], eax
mov edi, dword [eax]
mov dword [esi + 4], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x586875
cmp edx, 0x87fb68d6
je 0x5868ac
cmp edx, 0xfc04dcc5
jne 0x586856
mov edx, 0x87fb68d6
jmp 0x586856
cmp edx, 0x2601f5a7
je 0x5868b0
cmp edx, 0x5a893bc4
jne 0x586856
movzx eax, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, al
xor dh, dl
mov ebx, 0xfc04dcc5
mov edi, 0x87fb68d6
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x586856
mov edx, ecx
jmp 0x586856
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x4c], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x48], eax
mov dword [esi + 0x6c], ecx
cmp dword [esi + 4], ecx
je 0x586abc
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x5868f6
mov eax, dword [esi + 4]
add eax, 8
mov dword [esi + 4], eax
cmp eax, dword [esi + 0x6c]
je 0x586abc
mov ecx, dword [esi + 0x4c]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x48], 0xa
setl cl
or cl, al
mov byte [esi + 0x34], cl
jne 0x5869c3
mov eax, dword [esi + 0x38]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
test ecx, ecx
sete al
mov ebx, dword [esi + 0xc]
cmp ebx, 0xa
setl dl
xor dl, al
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
test ecx, ecx
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge eax, edx
mov ecx, 0x1b272c9a
jmp 0x586962
mov ecx, eax
cmp ecx, 0x4c6ca681
jle 0x58697c
cmp ecx, 0x4c6ca682
je 0x5869b3
cmp ecx, 0x6707b2cf
jne 0x586962
jmp 0x5869ba
cmp ecx, 0xf74fd645
je 0x586960
cmp ecx, 0x1b272c9a
jne 0x586962
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x586962
mov ecx, 0xf74fd645
jmp 0x586962
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x38]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and eax, 1
sete al
mov ebx, dword [esi + 0xc]
cmp ebx, 0xa
setl dl
xor dl, al
mov eax, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne eax, edi
and ecx, 1
sete byte [esi + 0x10]
mov edx, eax
cmove edx, edi
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov eax, 0x1b272c9a
cmp eax, 0x4c6ca681
jle 0x586a1e
cmp eax, 0x4c6ca682
je 0x586a54
cmp eax, 0x6707b2cf
jne 0x586a07
jmp 0x586a5f
cmp eax, 0xf74fd645
je 0x586a5b
cmp eax, 0x1b272c9a
jne 0x586a07
mov ah, byte [esi + 0x10]
mov byte [esi + 0x24], ah
mov al, byte [esi + 0x28]
xor ah, al
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test al, al
mov eax, edi
cmovne eax, ebx
cmp byte [esi + 0x24], 0
cmove eax, edi
jmp 0x586a07
mov eax, 0xf74fd645
jmp 0x586a07
mov eax, edx
jmp 0x586a07
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x34], 0
je 0x586927
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x5868e4
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x4c], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x5868e4
mov ecx, dword [esi + 0x4c]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x48], 0xa
setl cl
test cl, al
jne 0x586ae2
xor cl, al
je 0x591934
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x586b2d
cmp eax, 0xcd5e6053
je 0x586b90
cmp eax, 0x18ed46ca
jne 0x586b0b
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x586b0b
cmp eax, 0x5499d804
je 0x586bbf
cmp eax, 0x685e39a2
jne 0x586b0b
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x18ed46ca
mov edi, 0x5499d804
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x586b0b
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x586b0b
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x5867e8
or cl, al
je 0x5867e8
jmp 0x591936
mov ecx, dword [esi + 8]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete al
setne dl
cmp edi, 0xa
setl ah
setge dh
mov ebx, dword [esi + 0x5c]
cmp ah, al
jne 0x585c86
or dh, dl
mov ebx, dword [esi + 0x5c]
je 0x585c86
mov edi, dword [esi + 8]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx - 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl ah
mov dl, ah
xor dl, al
test ah, al
jne 0x586c8a
test dl, dl
je 0x586c42
mov ebx, dword [esi + 0x5c]
jmp 0x585c86
mov ebx, dword [esi + 0x5c]
jmp 0x585c86
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete cl
cmp edi, 0xa
setl al
test al, cl
jne 0x586cb4
xor al, cl
je 0x59192e
mov esp, dword [esi + 0xa0]
mov edx, dword [0x5d21a8]
mov ecx, dword [0x5d21ac]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x5af2d6e3
mov ebx, 0xbf311110
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x582fd0
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp dword [0x5cf5f4], 0xa
setl dl
test dl, cl
jne 0x586d37
xor dl, cl
jne 0x586d37
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x586cfd
cmp byte [eax + 0x2d0], 0x30
jne 0x586d87
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x586d87
or cl, al
test cl, 1
je 0x586d87
push 0
push 0
mov edi, dword [sym.imp.KERNEL32.dll_Beep]
call edi
push 0
push 0
call edi
jmp 0x586d4a
mov ecx, dword [esi + 4]
call fcn.0040ed30
mov esp, dword [esi + 0x40]
mov dword [esi + 0xa0], esp
mov dword [esi + 0x9c], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov edi, dword [0x5cf6c4]
sete dh
cmp edi, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x68], ecx
mov esp, ecx
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x6c], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x64], ecx
mov esp, ecx
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x586dc1
mov ecx, dword [esi + 0x68]
add ecx, 0x10
mov dword [esi + 0x90], ecx
mov ecx, dword [esi + 0x64]
add ecx, 0x10
mov dword [esi + 0x80], ecx
mov ebx, 0xa
cmp ebx, 0x1f4
jae 0x587e35
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [ebx + 1]
imul ebx, eax
shr ebx, 1
mov dword [esi + 0x34], ebx
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x586e8d
xor dl, al
je 0x591724
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x587471
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x586e53
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov edi, dword [esi + 8]
mov dword [ecx], edi
mov edi, dword [esi + 4]
mov dword [ecx + 4], edi
mov edi, dword [esi + 0x8c]
mov dword [ecx + 8], edi
setl byte [esi + 0x28]
mov edi, dword [esi + 0xc]
mov dword [ecx + 0xc], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x586f93
cmp ecx, 0x20e9c049
je 0x586faa
cmp ecx, 0x3b23d0b1
jne 0x586f79
jmp 0x586fda
cmp ecx, 0x9c6e8745
je 0x586fae
cmp ecx, 0xeb760989
jne 0x586f79
mov ecx, 0x20e9c049
jmp 0x586f79
mov ecx, eax
jmp 0x586f79
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x586f79
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x587075
cmp ecx, 0xcfcad29c
je 0x5870b8
cmp ecx, 0x3aca7e6
jne 0x587059
mov ecx, eax
jmp 0x587059
cmp ecx, 0x7c4a5f2
je 0x5870b1
cmp ecx, 0x389c0e25
jne 0x587059
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x587059
mov ecx, 0x3aca7e6
jmp 0x587059
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xa2
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xa4
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x58715a
cmp eax, 0xc6e82640
je 0x5871bd
cmp eax, 0x950d98a
jne 0x58711a
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x58711a
cmp eax, 0x31a61df5
je 0x587177
cmp eax, 0x4d86efb0
jne 0x58711a
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x58711a
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x58711a
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf6cc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
setl dl
mov ebx, 0xeb760989
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x58723d
cmp ecx, 0x20e9c049
je 0x587254
cmp ecx, 0x3b23d0b1
jne 0x587223
jmp 0x587284
cmp ecx, 0x9c6e8745
je 0x587258
cmp ecx, 0xeb760989
jne 0x587223
mov ecx, 0x20e9c049
jmp 0x587223
mov ecx, eax
jmp 0x587223
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x587223
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x6c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x58731d
cmp ecx, 0xcfcad29c
je 0x587360
cmp ecx, 0x3aca7e6
jne 0x587301
mov ecx, eax
jmp 0x587301
cmp ecx, 0x7c4a5f2
je 0x587359
cmp ecx, 0x389c0e25
jne 0x587301
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x587301
mov ecx, 0x3aca7e6
jmp 0x587301
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xa2
mov ecx, dword [esi + 0x6c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xa3
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x6c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x587407
cmp eax, 0xc6e82640
je 0x586e53
cmp eax, 0x950d98a
jne 0x5873c2
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x5873c2
cmp eax, 0x31a61df5
je 0x587424
cmp eax, 0x4d86efb0
jne 0x5873c2
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x5873c2
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x5873c2
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x5877aa
mov dword [esi + 0x58], 1
jmp 0x5874b8
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x5877aa
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x58]
mov dword [esi + 4], edx
test cl, al
jne 0x587500
xor cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 4], eax
jne 0x587500
jmp 0x591920
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edx
call fcn.00433980
cmp dword [esi + 4], 0
je 0x58776d
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax + 1]
imul edi, eax
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete al
cmp ebx, 0xa
setl dl
xor dl, al
mov eax, 0xbf25ae54
mov edx, 0x20ab24e5
cmovne eax, edx
mov dword [esi + 0x24], ecx
test ecx, edi
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
mov dword [esi + 0xc], ebx
cmp ebx, 0xa
cmovge ecx, eax
mov dword [esi + 8], ecx
setl byte [esi + 0x28]
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
lea edx, [eax + eax*2]
mov dword [esi + 0x34], ecx
lea eax, [ecx + edx*4]
mov dword [esi + 0x38], eax
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x587581
cmp edx, 0xffb13445
je 0x5875bd
cmp edx, 0x20ab24e5
jne 0x587567
jmp 0x5875c9
cmp edx, 0xbf25ae54
je 0x5875c2
cmp edx, 0xe6642f9a
jne 0x587567
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, dl
xor ah, al
test dl, dl
mov edx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne edx, ecx
test al, al
mov ebx, 0xbf25ae54
cmove edx, ebx
test ah, ah
cmovne edx, ecx
jmp 0x587567
mov edx, dword [esi + 8]
jmp 0x587567
mov edx, 0xffb13445
jmp 0x587567
mov ecx, dword [esi + 4]
dec ecx
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x48], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x40], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x34]
lea eax, [ecx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x58761d
cmp eax, 0xffb13445
je 0x587657
cmp eax, 0x20ab24e5
jne 0x587606
jmp 0x587663
cmp eax, 0xbf25ae54
je 0x58765c
cmp eax, 0xe6642f9a
jne 0x587606
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, al
xor bh, bl
test al, al
mov eax, 0xbf25ae54
mov ecx, 0xffb13445
cmovne eax, ecx
test bl, bl
mov edx, 0xbf25ae54
cmove eax, edx
test bh, bh
cmovne eax, ecx
jmp 0x587606
mov eax, dword [esi + 8]
jmp 0x587606
mov eax, 0xffb13445
jmp 0x587606
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x48]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x40]
sbb ecx, dword [eax + 4]
jge 0x58776d
test dword [esi + 0x24], edi
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5876aa
cmp eax, 0xffb13445
je 0x5876e4
cmp eax, 0x20ab24e5
jne 0x587693
jmp 0x5876f0
cmp eax, 0xbf25ae54
je 0x5876e9
cmp eax, 0xe6642f9a
jne 0x587693
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, dl
xor dh, al
test al, al
mov eax, 0xbf25ae54
mov ecx, 0xffb13445
cmovne eax, ecx
test dl, dl
mov ebx, 0xbf25ae54
cmove eax, ebx
test dh, dh
cmovne eax, ecx
jmp 0x587693
mov eax, dword [esi + 8]
jmp 0x587693
mov eax, 0xffb13445
jmp 0x587693
test dword [esi + 0x24], edi
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x587727
cmp eax, 0xffb13445
je 0x587761
cmp eax, 0x20ab24e5
jne 0x58770d
jmp 0x5874e7
cmp eax, 0xbf25ae54
je 0x587766
cmp eax, 0xe6642f9a
jne 0x58770d
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, al
xor ch, cl
test al, al
mov eax, 0xbf25ae54
mov ebx, 0xffb13445
cmovne eax, ebx
test cl, cl
mov edi, 0xbf25ae54
cmove eax, edi
test ch, ch
cmovne eax, ebx
jmp 0x58770d
mov eax, dword [esi + 8]
jmp 0x58770d
mov eax, 0xffb13445
jmp 0x58770d
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete ah
setne al
cmp edi, 0xa
setl dh
setge dl
cmp dh, ah
jne 0x587496
or dl, al
je 0x587496
jmp 0x591922
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x5877fe
cmp edi, 0x88e9608c
je 0x58783d
cmp edi, 0xdf32ec89
jne 0x5877da
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x5877da
cmp edi, 0x30b7124c
je 0x587896
cmp edi, 0x124998e2
jne 0x5877da
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
test bh, bh
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test cl, cl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bl, bl
cmovne edi, edx
jmp 0x5877da
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea edi, [ecx - 1]
mov dword [esi + 4], ecx
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete cl
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne ecx, ebx
cmp edi, 0xffffffff
mov edi, ecx
cmove edi, ebx
mov dword [esi + 8], edx
cmp edx, 0xa
cmovge edi, ecx
mov ecx, dword [esi + 0x18]
jmp 0x5877da
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x5878e4
cmp ecx, 0x88e9608c
je 0x58791b
cmp ecx, 0xdf32ec89
jne 0x5878c0
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x5878c0
cmp ecx, 0x30b7124c
je 0x587969
cmp ecx, 0x124998e2
jne 0x5878c0
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5878c0
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x5878c0
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
jmp 0x587996
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x5879af
xor cl, al
je 0x591924
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x587da7
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx - 1]
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov edi, dword [eax]
mov dword [esi + 8], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x587a3d
cmp edx, 0x87fb68d6
je 0x587a79
cmp edx, 0xfc04dcc5
jne 0x587a1e
mov edx, 0x87fb68d6
jmp 0x587a1e
cmp edx, 0x2601f5a7
je 0x587a7d
cmp edx, 0x5a893bc4
jne 0x587a1e
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x587a1e
mov edx, ecx
jmp 0x587a1e
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x587ca9
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x587ac3
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x587ca9
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne cl
cmp dword [esi + 0x34], 0xa
setge al
mov edx, eax
xor dl, cl
or al, cl
xor al, 1
or al, dl
mov byte [esi + 0x38], al
jne 0x587b9d
mov eax, dword [esi + 0x24]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
test ecx, ecx
sete dl
mov edi, dword [esi + 4]
cmp edi, 0xa
setl ah
xor ah, dl
mov edx, 0x4c6ca682
mov eax, 0x6707b2cf
cmovne edx, eax
test ecx, ecx
sete byte [esi + 0x10]
mov ecx, edx
cmove ecx, eax
cmp edi, 0xa
setl byte [esi + 0x28]
cmovge ecx, edx
mov edx, 0x1b272c9a
jmp 0x587b3d
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x587b57
cmp edx, 0x4c6ca682
je 0x587b8d
cmp edx, 0x6707b2cf
jne 0x587b3d
jmp 0x587b94
cmp edx, 0xf74fd645
je 0x587b3b
cmp edx, 0x1b272c9a
jne 0x587b3d
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov dh, ah
xor dh, dl
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test dl, dl
mov edx, edi
cmovne edx, ebx
test ah, ah
cmove edx, edi
jmp 0x587b3d
mov edx, 0xf74fd645
jmp 0x587b3d
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x24]
lea edx, [eax + 1]
imul edx, eax
mov ecx, edx
xor ecx, 0xfffffffe
mov edi, ecx
and edi, edx
sete bh
mov eax, dword [esi + 4]
cmp eax, 0xa
setl bl
xor bl, bh
mov ebx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne ebx, edi
and ecx, edx
mov dword [esi + 0xc], ecx
sete byte [esi + 0x10]
mov edi, ebx
mov ecx, 0x6707b2cf
cmove edi, ecx
cmp eax, 0xa
setl byte [esi + 0x28]
cmovge edi, ebx
mov edx, 0x1b272c9a
cmp edx, 0x4c6ca681
jle 0x587c06
cmp edx, 0x4c6ca682
je 0x587c41
cmp edx, 0x6707b2cf
jne 0x587bec
jmp 0x587c4c
cmp edx, 0xf74fd645
je 0x587c48
cmp edx, 0x1b272c9a
jne 0x587bec
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov bl, ah
xor bl, dl
test dl, dl
mov edx, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne edx, ecx
test ah, ah
mov eax, 0x4c6ca682
cmove edx, eax
test bl, bl
cmovne edx, ecx
jmp 0x587bec
mov edx, 0xf74fd645
jmp 0x587bec
mov edx, edi
jmp 0x587bec
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x587aff
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x587ab1
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x587ab1
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne al
sete dl
cmp dword [esi + 0x34], 0xa
setge cl
setl ah
xor ah, dl
jne 0x587cd5
or cl, al
jne 0x591926
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x587d1f
cmp eax, 0xcd5e6053
je 0x587d78
cmp eax, 0x18ed46ca
jne 0x587cfd
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x587cfd
cmp eax, 0x5499d804
je 0x587981
cmp eax, 0x685e39a2
jne 0x587cfd
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x587cfd
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x587cfd
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
cmp edi, 0xa
setl dh
mov ebx, dword [esi + 0x5c]
test dh, dl
jne 0x586e25
xor dh, dl
mov ebx, dword [esi + 0x5c]
jne 0x586e25
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete bh
cmp edi, 0xa
setge bl
setl cl
or bl, dl
xor cl, bh
test cl, cl
jne 0x587e2d
test bl, 1
jne 0x587de7
mov ebx, dword [esi + 0x5c]
jmp 0x586e25
mov ebx, dword [esi + 0x5c]
jmp 0x586e25
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete al
cmp edi, 0xa
setl cl
test cl, al
jne 0x587e58
xor cl, al
je 0x591906
mov esp, dword [esi + 0x9c]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
sete dh
cmp ecx, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x6c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x587e81
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x588f00
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
sete ah
setne al
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setl dh
setge dl
cmp dh, ah
jne 0x587f53
or dl, al
jne 0x591916
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x588534
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x587f13
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x10]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov edx, dword [esi + 8]
mov dword [ecx], edx
mov edx, dword [esi + 4]
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x8c]
mov dword [ecx + 8], edx
setl byte [esi + 0x28]
mov edx, dword [esi + 0xc]
mov dword [ecx + 0xc], edx
cmovge eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x588057
cmp ecx, 0x20e9c049
je 0x58806e
cmp ecx, 0x3b23d0b1
jne 0x58803d
jmp 0x588099
cmp ecx, 0x9c6e8745
je 0x588072
cmp ecx, 0xeb760989
jne 0x58803d
mov ecx, 0x20e9c049
jmp 0x58803d
mov ecx, eax
jmp 0x58803d
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x58803d
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x588132
cmp ecx, 0xcfcad29c
je 0x588170
cmp ecx, 0x3aca7e6
jne 0x588116
mov ecx, eax
jmp 0x588116
cmp ecx, 0x7c4a5f2
je 0x588169
cmp ecx, 0x389c0e25
jne 0x588116
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x588116
mov ecx, 0x3aca7e6
jmp 0x588116
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xa5
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xa7
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x588218
cmp eax, 0xc6e82640
je 0x58827b
cmp eax, 0x950d98a
jne 0x5881d3
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x5881d3
cmp eax, 0x31a61df5
je 0x588235
cmp eax, 0x4d86efb0
jne 0x5881d3
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x5881d3
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x5881d3
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
mov edi, dword [0x5cf6cc]
cmp edi, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edx, ebx
test ecx, eax
mov ecx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
sete byte [esi + 0x10]
mov eax, dword [esi + 0x8c]
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov dword [ecx + 0xc], eax
mov eax, edx
cmove eax, ebx
cmp edi, 0xa
setl byte [esi + 0x28]
mov edi, dword [esi + 8]
mov dword [ecx + 8], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x5882fd
cmp ecx, 0x20e9c049
je 0x588314
cmp ecx, 0x3b23d0b1
jne 0x5882e3
jmp 0x588344
cmp ecx, 0x9c6e8745
je 0x588318
cmp ecx, 0xeb760989
jne 0x5882e3
mov ecx, 0x20e9c049
jmp 0x5882e3
mov ecx, eax
jmp 0x5882e3
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5882e3
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x6c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x5883df
cmp ecx, 0xcfcad29c
je 0x588422
cmp ecx, 0x3aca7e6
jne 0x5883c3
mov ecx, eax
jmp 0x5883c3
cmp ecx, 0x7c4a5f2
je 0x58841b
cmp ecx, 0x389c0e25
jne 0x5883c3
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5883c3
mov ecx, 0x3aca7e6
jmp 0x5883c3
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xa5
mov ecx, dword [esi + 0x6c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xa6
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x6c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x5884ca
cmp eax, 0xc6e82640
je 0x587f13
cmp eax, 0x950d98a
jne 0x588485
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x588485
cmp eax, 0x31a61df5
je 0x5884e7
cmp eax, 0x4d86efb0
jne 0x588485
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x588485
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x588485
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x588859
mov dword [esi + 0x48], 1
jmp 0x58857b
mov ebx, dword [esi + 0x48]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x48], ebx
cmp ebx, edx
jae 0x588859
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne al
sete dl
cmp edi, 0xa
setge cl
setl ah
xor ah, dl
mov edx, dword [esi + 0x48]
mov dword [esi + 8], edx
jne 0x5885cb
or cl, al
mov eax, dword [esi + 0x48]
mov dword [esi + 8], eax
je 0x5885cb
jmp 0x591918
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0xc]
call fcn.00433980
cmp dword [esi + 8], 0
je 0x588822
mov eax, dword [0x5cf6d8]
mov ecx, dword [0x5cf6dc]
lea edx, [eax - 1]
imul edx, eax
and edx, 1
mov dword [esi + 0xc], edx
sete byte [esi + 0x10]
sete al
mov edx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove edx, ebx
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, 0xbf25ae54
cmovge edx, ecx
setl cl
xor cl, al
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax]
mov eax, dword [esi + 8]
lea eax, [eax + eax*2]
mov dword [esi + 0x38], ecx
lea eax, [ecx + eax*4]
mov dword [esi + 0x24], eax
cmovne edx, ebx
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x588640
cmp eax, 0xffb13445
je 0x588675
cmp eax, 0x20ab24e5
jne 0x588629
jmp 0x588680
cmp eax, 0xbf25ae54
je 0x588679
cmp eax, 0xe6642f9a
jne 0x588629
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov ecx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ecx, edi
test al, al
mov eax, ecx
cmovne eax, edi
test bl, bl
cmove eax, ecx
jmp 0x588629
mov eax, edx
jmp 0x588629
mov eax, 0xffb13445
jmp 0x588629
mov ecx, dword [esi + 8]
dec ecx
cmp dword [esi + 0xc], 0
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax]
mov dword [esi + 0x40], edi
mov eax, dword [eax + 4]
mov dword [esi + 0x34], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov dword [esi + 8], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x38]
lea eax, [ecx + eax*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5886d5
cmp eax, 0xffb13445
je 0x58870f
cmp eax, 0x20ab24e5
jne 0x5886be
jmp 0x58871a
cmp eax, 0xbf25ae54
je 0x588713
cmp eax, 0xe6642f9a
jne 0x5886be
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, cl
xor ch, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test cl, cl
mov ebx, 0xbf25ae54
cmove eax, ebx
test ch, ch
cmovne eax, edi
jmp 0x5886be
mov eax, edx
jmp 0x5886be
mov eax, 0xffb13445
jmp 0x5886be
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x40]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x34]
sbb ecx, dword [eax + 4]
jge 0x588822
cmp dword [esi + 0xc], 0
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x588762
cmp eax, 0xffb13445
je 0x588797
cmp eax, 0x20ab24e5
jne 0x58874b
jmp 0x5887a2
cmp eax, 0xbf25ae54
je 0x58879b
cmp eax, 0xe6642f9a
jne 0x58874b
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov ebx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ebx, edi
test al, al
mov eax, ebx
cmovne eax, edi
test cl, cl
cmove eax, ebx
jmp 0x58874b
mov eax, edx
jmp 0x58874b
mov eax, 0xffb13445
jmp 0x58874b
cmp dword [esi + 0xc], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x5887e0
cmp ecx, 0xffb13445
je 0x588817
cmp ecx, 0x20ab24e5
jne 0x5887c3
jmp 0x5885b0
cmp ecx, 0xbf25ae54
je 0x58881b
cmp ecx, 0xe6642f9a
jne 0x5887c3
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, bl
xor ch, cl
mov edi, 0xbf25ae54
mov eax, 0xffb13445
cmovne edi, eax
test cl, cl
mov ecx, edi
cmovne ecx, eax
test bl, bl
cmove ecx, edi
jmp 0x5887c3
mov ecx, edx
jmp 0x5887c3
mov ecx, 0xffb13445
jmp 0x5887c3
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x588559
xor dl, al
jne 0x588559
jmp 0x59191a
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x5888ac
cmp edi, 0x88e9608c
je 0x5888eb
cmp edi, 0xdf32ec89
jne 0x588888
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x588888
cmp edi, 0x30b7124c
je 0x588945
cmp edi, 0x124998e2
jne 0x588888
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
test bh, bh
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test cl, cl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bl, bl
cmovne edi, edx
jmp 0x588888
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
mov dword [esi + 4], edx
imul ecx, edx
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 8], ebx
cmp ebx, 0xa
mov ebx, 0xdf32ec89
cmovge edi, ebx
setl ch
xor ch, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x588888
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x588994
cmp ecx, 0x88e9608c
je 0x5889cb
cmp ecx, 0xdf32ec89
jne 0x588970
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x588970
cmp ecx, 0x30b7124c
je 0x588a18
cmp ecx, 0x124998e2
jne 0x588970
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x588970
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x588970
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x588a48
or cl, al
test cl, 1
jne 0x59191e
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x588e6f
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov edi, dword [eax]
mov dword [esi + 8], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x588ad5
cmp edx, 0x87fb68d6
je 0x588b11
cmp edx, 0xfc04dcc5
jne 0x588ab6
mov edx, 0x87fb68d6
jmp 0x588ab6
cmp edx, 0x2601f5a7
je 0x588b15
cmp edx, 0x5a893bc4
jne 0x588ab6
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, bl
xor bh, dl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x588ab6
mov edx, ecx
jmp 0x588ab6
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x588d46
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x588b5b
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x588d46
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
setne cl
cmp dword [esi + 0x34], 0xa
setge al
mov edx, eax
xor dl, cl
or al, cl
xor al, 1
or al, dl
mov byte [esi + 0x38], al
jne 0x588c3a
mov eax, dword [esi + 0x24]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
and eax, edx
mov dword [esi + 0xc], eax
cmp dword [esi + 0xc], 0
sete byte [esi + 0x10]
sete dl
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl ah
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor ah, dl
cmovne ecx, edi
mov edx, 0x1b272c9a
jmp 0x588bd5
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x588bef
cmp edx, 0x4c6ca682
je 0x588c2a
cmp edx, 0x6707b2cf
jne 0x588bd5
jmp 0x588c31
cmp edx, 0xf74fd645
je 0x588bd3
cmp edx, 0x1b272c9a
jne 0x588bd5
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov bl, ah
xor bl, dl
test dl, dl
mov edx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne edx, edi
test ah, ah
mov eax, 0x4c6ca682
cmove edx, eax
test bl, bl
cmovne edx, edi
jmp 0x588bd5
mov edx, 0xf74fd645
jmp 0x588bd5
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x24]
lea edx, [eax + 1]
imul edx, eax
mov ecx, edx
xor ecx, 0xfffffffe
mov edi, ecx
and edi, edx
sete bh
mov eax, dword [esi + 4]
cmp eax, 0xa
setl bl
xor bl, bh
mov ebx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne ebx, edi
and ecx, edx
mov dword [esi + 0xc], ecx
sete byte [esi + 0x10]
mov edi, ebx
mov ecx, 0x6707b2cf
cmove edi, ecx
cmp eax, 0xa
setl byte [esi + 0x28]
cmovge edi, ebx
mov edx, 0x1b272c9a
cmp edx, 0x4c6ca681
jle 0x588ca3
cmp edx, 0x4c6ca682
je 0x588cde
cmp edx, 0x6707b2cf
jne 0x588c89
jmp 0x588ce9
cmp edx, 0xf74fd645
je 0x588ce5
cmp edx, 0x1b272c9a
jne 0x588c89
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov bl, ah
xor bl, dl
test dl, dl
mov edx, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne edx, ecx
test ah, ah
mov eax, 0x4c6ca682
cmove edx, eax
test bl, bl
cmovne edx, ecx
jmp 0x588c89
mov edx, 0xf74fd645
jmp 0x588c89
mov edx, edi
jmp 0x588c89
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x588b9c
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x588b49
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x588b49
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x34], 0xa
setl cl
test cl, al
jne 0x588d6d
xor cl, al
je 0x59191c
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x588db8
cmp eax, 0xcd5e6053
je 0x588e0d
cmp eax, 0x18ed46ca
jne 0x588d96
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x588d96
cmp eax, 0x5499d804
je 0x588e37
cmp eax, 0x685e39a2
jne 0x588d96
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x588d96
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x588d96
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x588a48
xor cl, al
jne 0x588a48
jmp 0x59191e
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete byte [esi + 8]
cmp ecx, 0xa
setge bl
setl bh
xor bh, byte [esi + 8]
mov edi, dword [esi + 0x5c]
jne 0x587ee5
or bl, dl
mov edi, dword [esi + 0x5c]
test bl, 1
je 0x587ee5
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp ecx, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x588ef8
test dl, dl
je 0x588eb2
mov edi, dword [esi + 0x5c]
jmp 0x587ee5
mov edi, dword [esi + 0x5c]
jmp 0x587ee5
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete al
cmp ecx, 0xa
setl cl
test cl, al
jne 0x588f22
xor cl, al
je 0x591908
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dh
cmp eax, 0xa
setge dl
mov ebx, edx
xor bl, dh
or dl, dh
xor dl, 1
or dl, bl
push eax
sub esp, 8
mov dword [esi + 8], esp
sub esp, 0xc
mov dword [esi + 0x40], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x3c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x588f54
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x589f9c
mov ecx, dword [esi + 8]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x48], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x38], eax
mov dword [esi + 0x34], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
sete ah
setne al
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setl dh
setge dl
cmp dh, ah
jne 0x589026
or dl, al
jne 0x59190a
mov edx, dword [esi + 4]
mov eax, edx
imul eax, dword [esi + 0xc]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x48]
sbb eax, 0
jae 0x5895f1
mov eax, dword [esi + 0x48]
mov edi, dword [esi + 4]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x6c], eax
mov eax, 0
mov ebx, dword [esi + 0xc]
sbb eax, ebx
mov dword [esi + 0x4c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0x24], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x34], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0x38], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x6c]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
sbb ecx, edx
or ecx, eax
jne 0x588fe6
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 4]
mov dword [ecx], ebx
mov ebx, dword [esi + 0xc]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x8c]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0x24]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x589127
cmp ecx, 0x20e9c049
je 0x58913e
cmp ecx, 0x3b23d0b1
jne 0x58910d
jmp 0x58916e
cmp ecx, 0x9c6e8745
je 0x589142
cmp ecx, 0xeb760989
jne 0x58910d
mov ecx, 0x20e9c049
jmp 0x58910d
mov ecx, eax
jmp 0x58910d
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x58910d
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x40]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x589207
cmp ecx, 0xcfcad29c
je 0x589245
cmp ecx, 0x3aca7e6
jne 0x5891eb
mov ecx, eax
jmp 0x5891eb
cmp ecx, 0x7c4a5f2
je 0x58923e
cmp ecx, 0x389c0e25
jne 0x5891eb
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5891eb
mov ecx, 0x3aca7e6
jmp 0x5891eb
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xa8
mov ecx, dword [esi + 0x40]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xaa
mov ecx, dword [esi + 8]
push dword [esi + 0x40]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x5892e8
cmp eax, 0xc6e82640
je 0x58934c
cmp eax, 0x950d98a
jne 0x5892a8
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x5892a8
cmp eax, 0x31a61df5
je 0x589305
cmp eax, 0x4d86efb0
jne 0x5892a8
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x5892a8
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x5892a8
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0x24]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf6cc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, dword [esi + 4]
mov dword [ebx + 8], ecx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x5893cb
cmp ecx, 0x20e9c049
je 0x5893e2
cmp ecx, 0x3b23d0b1
jne 0x5893b1
jmp 0x58940d
cmp ecx, 0x9c6e8745
je 0x5893e6
cmp ecx, 0xeb760989
jne 0x5893b1
mov ecx, 0x20e9c049
jmp 0x5893b1
mov ecx, eax
jmp 0x5893b1
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x5893b1
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x3c]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x80]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x64]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x5894a4
cmp ecx, 0xcfcad29c
je 0x5894e2
cmp ecx, 0x3aca7e6
jne 0x589488
mov ecx, eax
jmp 0x589488
cmp ecx, 0x7c4a5f2
je 0x5894db
cmp ecx, 0x389c0e25
jne 0x589488
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x589488
mov ecx, 0x3aca7e6
jmp 0x589488
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0xa8
mov ecx, dword [esi + 0x3c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0xa9
mov ecx, dword [esi + 8]
push dword [esi + 0x3c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x589589
cmp eax, 0xc6e82640
je 0x588fe6
cmp eax, 0x950d98a
jne 0x589544
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x589544
cmp eax, 0x31a61df5
je 0x5895a6
cmp eax, 0x4d86efb0
jne 0x589544
mov ecx, dword [esi + 0x3c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x589544
mov ecx, dword [esi + 0x3c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x589544
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x589917
mov dword [esi + 0x6c], 1
jmp 0x589638
mov ebx, dword [esi + 0x6c]
inc ebx
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x6c], ebx
cmp ebx, edx
jae 0x589917
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp edi, 0xa
setl ch
setge cl
mov edi, dword [esi + 0x6c]
mov dword [esi + 4], edi
cmp ch, dl
jne 0x589683
or cl, al
mov eax, dword [esi + 0x6c]
mov dword [esi + 4], eax
test cl, 1
je 0x589683
jmp 0x59190e
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0x24]
call fcn.00433980
cmp dword [esi + 4], 0
je 0x5898df
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0x24], ecx
sete byte [esi + 0x10]
sete al
mov ecx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove ecx, ebx
mov dword [esi + 0xc], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ecx, edx
setl dl
xor dl, al
mov eax, dword [esi + 8]
mov edi, dword [eax]
mov eax, dword [esi + 4]
lea edx, [eax + eax*2]
mov dword [esi + 0x34], edi
lea eax, [edi + edx*4]
mov dword [esi + 0x38], eax
cmovne ecx, ebx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x5896fb
cmp edx, 0xffb13445
je 0x589732
cmp edx, 0x20ab24e5
jne 0x5896e1
jmp 0x58973d
cmp edx, 0xbf25ae54
je 0x589736
cmp edx, 0xe6642f9a
jne 0x5896e1
movzx ebx, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov dh, bl
xor dh, dl
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test dl, dl
mov edx, eax
cmovne edx, edi
test bl, bl
cmove edx, eax
jmp 0x5896e1
mov edx, ecx
jmp 0x5896e1
mov edx, 0xffb13445
jmp 0x5896e1
mov edx, dword [esi + 4]
dec edx
cmp dword [esi + 0x24], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax]
mov dword [esi + 0x4c], edi
mov eax, dword [eax + 4]
mov dword [esi + 0x48], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], edx
lea eax, [edx + edx*2]
mov edx, dword [esi + 0x34]
lea eax, [edx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x589792
cmp eax, 0xffb13445
je 0x5897c7
cmp eax, 0x20ab24e5
jne 0x58977b
jmp 0x5897d2
cmp eax, 0xbf25ae54
je 0x5897cb
cmp eax, 0xe6642f9a
jne 0x58977b
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ebx, edi
test al, al
mov eax, ebx
cmovne eax, edi
test dl, dl
cmove eax, ebx
jmp 0x58977b
mov eax, ecx
jmp 0x58977b
mov eax, 0xffb13445
jmp 0x58977b
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [esi + 0x4c]
cmp edx, dword [eax]
mov edx, dword [esi + 0x48]
sbb edx, dword [eax + 4]
jge 0x5898df
cmp dword [esi + 0x24], 0
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x58981d
cmp edx, 0xffb13445
je 0x589859
cmp edx, 0x20ab24e5
jne 0x589803
jmp 0x589864
cmp edx, 0xbf25ae54
je 0x58985d
cmp edx, 0xe6642f9a
jne 0x589803
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
test dl, dl
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov ebx, 0xbf25ae54
cmove edx, ebx
test ah, ah
cmovne edx, edi
jmp 0x589803
mov edx, ecx
jmp 0x589803
mov edx, 0xffb13445
jmp 0x589803
cmp dword [esi + 0x24], 0
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x24], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x58989f
cmp eax, 0xffb13445
je 0x5898d4
cmp eax, 0x20ab24e5
jne 0x589885
jmp 0x589668
cmp eax, 0xbf25ae54
je 0x5898d8
cmp eax, 0xe6642f9a
jne 0x589885
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edi, 0xbf25ae54
mov edx, 0xffb13445
cmovne edi, edx
test al, al
mov eax, edi
cmovne eax, edx
test bl, bl
cmove eax, edi
jmp 0x589885
mov eax, ecx
jmp 0x589885
mov eax, 0xffb13445
jmp 0x589885
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x589616
xor dl, al
jne 0x589616
jmp 0x591910
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 0xc], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x58996a
cmp edi, 0x88e9608c
je 0x5899a9
cmp edi, 0xdf32ec89
jne 0x589946
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x589946
cmp edi, 0x30b7124c
je 0x589a02
cmp edi, 0x124998e2
jne 0x589946
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x589946
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea edi, [ecx + 1]
mov dword [esi + 0xc], ecx
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete cl
cmp ebx, 0xa
setl dl
xor dl, cl
mov ecx, 0xdf32ec89
mov edx, 0x30b7124c
cmovne ecx, edx
cmp edi, 0xffffffff
mov edi, ecx
cmove edi, edx
mov dword [esi + 4], ebx
cmp ebx, 0xa
cmovge edi, ecx
mov ecx, dword [esi + 0x18]
jmp 0x589946
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x589a51
cmp ecx, 0x88e9608c
je 0x589a91
cmp ecx, 0xdf32ec89
jne 0x589a2d
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x589a2d
cmp ecx, 0x30b7124c
je 0x589ade
cmp ecx, 0x124998e2
jne 0x589a2d
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x589a2d
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x589a2d
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x589b0c
xor cl, al
je 0x591912
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x589f03
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
mov dword [esi + 4], edx
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edx, 0x2601f5a7
cmovne ebx, edx
test edi, ecx
sete byte [esi + 0x28]
mov ecx, ebx
cmove ecx, edx
cmp dword [esi + 4], 0xa
setl byte [esi + 0x18]
mov dword [esi + 0xc], eax
mov eax, dword [eax]
mov dword [esi + 4], eax
cmovge ecx, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x589b9a
cmp edx, 0x87fb68d6
je 0x589bd6
cmp edx, 0xfc04dcc5
jne 0x589b7b
mov edx, 0x87fb68d6
jmp 0x589b7b
cmp edx, 0x2601f5a7
je 0x589bda
cmp edx, 0x5a893bc4
jne 0x589b7b
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, bl
xor bh, dl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x589b7b
mov edx, ecx
jmp 0x589b7b
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x4c], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x48], eax
mov dword [esi + 0x6c], ecx
cmp dword [esi + 4], ecx
je 0x589e09
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x589c20
mov eax, dword [esi + 4]
add eax, 8
mov dword [esi + 4], eax
cmp eax, dword [esi + 0x6c]
je 0x589e09
mov eax, dword [esi + 0x4c]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete dl
cmp dword [esi + 0x48], 0xa
setge al
setl ah
or al, cl
xor ah, dl
xor al, 1
or al, ah
mov byte [esi + 0x34], al
test al, 1
jne 0x589cfd
mov eax, dword [esi + 0x38]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
and eax, edx
mov dword [esi + 0x24], eax
cmp dword [esi + 0x24], 0
sete byte [esi + 0x10]
sete dl
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl ah
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor ah, dl
cmovne ecx, edi
mov edx, 0x1b272c9a
jmp 0x589c98
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x589cb2
cmp edx, 0x4c6ca682
je 0x589ced
cmp edx, 0x6707b2cf
jne 0x589c98
jmp 0x589cf4
cmp edx, 0xf74fd645
je 0x589c96
cmp edx, 0x1b272c9a
jne 0x589c98
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov bl, ah
xor bl, dl
test dl, dl
mov edx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne edx, edi
test ah, ah
mov eax, 0x4c6ca682
cmove edx, eax
test bl, bl
cmovne edx, edi
jmp 0x589c98
mov edx, 0xf74fd645
jmp 0x589c98
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x38]
lea edx, [eax + 1]
imul edx, eax
mov ecx, edx
xor ecx, 0xfffffffe
mov edi, ecx
and edi, edx
sete bh
mov eax, dword [esi + 0xc]
cmp eax, 0xa
setl bl
xor bl, bh
mov ebx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne ebx, edi
and ecx, edx
mov dword [esi + 0x24], ecx
sete byte [esi + 0x10]
mov edi, ebx
mov ecx, 0x6707b2cf
cmove edi, ecx
cmp eax, 0xa
setl byte [esi + 0x28]
cmovge edi, ebx
mov edx, 0x1b272c9a
cmp edx, 0x4c6ca681
jle 0x589d66
cmp edx, 0x4c6ca682
je 0x589da1
cmp edx, 0x6707b2cf
jne 0x589d4c
jmp 0x589dac
cmp edx, 0xf74fd645
je 0x589da8
cmp edx, 0x1b272c9a
jne 0x589d4c
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov bl, ah
xor bl, dl
test dl, dl
mov edx, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne edx, ecx
test ah, ah
mov eax, 0x4c6ca682
cmove edx, eax
test bl, bl
cmovne edx, ecx
jmp 0x589d4c
mov edx, 0xf74fd645
jmp 0x589d4c
mov edx, edi
jmp 0x589d4c
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
test byte [esi + 0x34], 1
je 0x589c5f
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x589c0e
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x4c], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x589c0e
mov ecx, dword [esi + 0x4c]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
setne al
cmp dword [esi + 0x48], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x589e35
or cl, al
jne 0x591914
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x589e7f
cmp eax, 0xcd5e6053
je 0x589ed9
cmp eax, 0x18ed46ca
jne 0x589e5d
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x589e5d
cmp eax, 0x5499d804
je 0x589ade
cmp eax, 0x685e39a2
jne 0x589e5d
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x589e5d
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x589e5d
mov ecx, dword [esi + 8]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dl
sete bl
cmp eax, 0xa
setge dh
setl bh
xor bh, bl
mov edi, dword [esi + 0x5c]
jne 0x588fb8
or dh, dl
mov edi, dword [esi + 0x5c]
je 0x588fb8
mov edi, dword [esi + 8]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dh
sete bl
cmp eax, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
test bh, bh
jne 0x589f94
test dl, dl
jne 0x589f48
mov edi, dword [esi + 0x5c]
jmp 0x588fb8
mov edi, dword [esi + 0x5c]
jmp 0x588fb8
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x589fbf
xor al, cl
je 0x59190c
mov esp, dword [esi + 0xa0]
mov eax, 0x57676505
jmp 0x582fd0
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [esi + 8], 0xa
setl al
test al, cl
jne 0x589ff3
xor al, cl
je 0x5916be
mov esp, dword [esi + 0x5c]
mov dword [esi + 0x94], esp
mov eax, dword [0x5d21a8]
mov ecx, dword [0x5d21ac]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x46]
cmp ecx, 0xa
setl byte [esi + 0x47]
mov eax, 0xd31607fa
cmp eax, 0x57676504
jg 0x58a06a
cmp eax, 0xbf311110
je 0x59110c
cmp eax, 0xd31607fa
jne 0x58a025
movzx ecx, byte [esi + 0x46]
movzx eax, byte [esi + 0x47]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x5af2d6e3
mov edi, 0x57676505
cmovne eax, edi
test cl, cl
mov ecx, 0x5af2d6e3
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x58a025
cmp eax, 0x57676505
je 0x58a0a9
cmp eax, 0x5af2d6e3
jne 0x58a025
mov dword [esi + 0x40], esp
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x58a0e6
xor cl, al
je 0x58a204
jmp 0x58a0e6
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf5f4], 0xa
mov dword [esi + 0x40], esp
setge cl
setl ah
xor ah, dl
jne 0x58a599
or cl, al
jne 0x58a6b2
jmp 0x58a599
push eax
mov dword [esi + 0x38], esp
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
mov dword [esi + 0x34], ecx
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 4], edi
mov ecx, edi
call fcn.0040cd80
mov edx, dword [0x5cf4b8]
mov ecx, dword [0x5cf4bc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x28]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x18]
cmovge eax, edx
mov ecx, 0x13d3b53a
cmp ecx, 0x13d3b539
jg 0x58a179
cmp ecx, 0x8f0f2ca8
je 0x58a1b0
cmp ecx, 0x11f1fb1a
jne 0x58a15f
jmp 0x58a1bb
cmp ecx, 0x1a1c1d98
je 0x58a1b7
cmp ecx, 0x13d3b53a
jne 0x58a15f
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov ch, dl
xor ch, cl
mov edi, 0x8f0f2ca8
mov ebx, 0x1a1c1d98
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x58a15f
mov ecx, 0x1a1c1d98
jmp 0x58a15f
mov ecx, eax
jmp 0x58a15f
mov edi, dword [esi + 4]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf5f4], 0xa
mov byte [edi], 0
setge cl
setl ah
xor ah, dl
jne 0x58a2f0
or cl, al
je 0x58a2f0
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 8], edi
mov ecx, edi
call fcn.0040cd80
mov edx, dword [0x5cf4b8]
mov ecx, dword [0x5cf4bc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x8f0f2ca8
mov ebx, 0x11f1fb1a
cmovne edx, ebx
cmp eax, 0xffffffff
sete byte [esi + 0x28]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x18]
cmovge eax, edx
mov ecx, 0x13d3b53a
jmp 0x58a27a
mov ecx, eax
cmp ecx, 0x13d3b539
jg 0x58a294
cmp ecx, 0x8f0f2ca8
je 0x58a2d0
cmp ecx, 0x11f1fb1a
jne 0x58a27a
jmp 0x58a2d7
cmp ecx, 0x1a1c1d98
je 0x58a278
cmp ecx, 0x13d3b53a
jne 0x58a27a
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x8f0f2ca8
mov edi, 0x1a1c1d98
cmovne ecx, edi
test dl, dl
mov ebx, 0x8f0f2ca8
cmove ecx, ebx
test dh, dh
cmovne ecx, edi
jmp 0x58a27a
mov ecx, 0x1a1c1d98
jmp 0x58a27a
mov eax, dword [esi + 8]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
jmp 0x58a0e6
mov dword [esi + 0x24], 0
cmp dword [esi + 0x24], 0x3e8
je 0x58a54e
mov ecx, dword [esi + 0x34]
movsx eax, byte [ecx + 1]
movsx edx, byte [ecx]
mov dword [esi + 0xc0], 0x8a
push eax
push edx
push dword [esi + 0x38]
call fcn.0041e700
movsx eax, al
mov ecx, dword [esi + 4]
push eax
call fcn.00441240
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x58a357
or cl, al
test cl, 1
jne 0x58a387
mov ecx, dword [esi + 4]
call fcn.00423280
mov ecx, dword [0x5cf5f0]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp dword [0x5cf5f4], 0xa
setl dl
test dl, cl
jne 0x58a391
xor dl, cl
jne 0x58a391
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x58a357
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
cmp byte [ecx + eax - 1], 0x6f
je 0x58a3b6
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov ecx, dword [edi + 0x10]
cmp byte [ecx + eax - 1], 0x75
jne 0x58a50c
mov ebx, dword [esi + 4]
mov ecx, ebx
call fcn.00423280
mov dword [esi + 8], eax
mov ecx, ebx
call fcn.00423280
mov ecx, dword [0x5cf5f0]
mov edi, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
add eax, dword [ebx + 0x10]
mov dword [esi + 0xc], eax
and ecx, 1
sete bl
cmp edi, 0xa
setge al
setl bh
xor bh, bl
jne 0x58a401
or al, dl
test al, 1
jne 0x591702
mov eax, dword [esi + 0xc]
cmp dword [esi + 8], eax
jne 0x58a41e
jmp 0x58a525
mov edx, dword [esi + 8]
inc edx
mov dword [esi + 8], edx
cmp edx, dword [esi + 0xc]
je 0x58a525
mov eax, dword [0x5cf5f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf5fc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xc9893d93
mov edi, 0x603280c6
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
setl cl
mov ebx, 0xc9893d93
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0xfc461c64
cmp ecx, 0xfc461c63
jg 0x58a482
cmp ecx, 0xc9893d93
je 0x58a4b9
cmp ecx, 0xdac56cfa
jne 0x58a466
mov ecx, eax
jmp 0x58a466
cmp ecx, 0x603280c6
je 0x58a4c0
cmp ecx, 0xfc461c64
jne 0x58a466
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov ebx, 0xc9893d93
mov edi, 0xdac56cfa
cmovne ebx, edi
test cl, cl
mov ecx, ebx
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
jmp 0x58a466
mov ecx, 0xdac56cfa
jmp 0x58a466
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x18]
movsx eax, byte [ebx]
push eax
call fcn.005a47b5
add esp, 4
and al, 0xa
mov byte [ebx], al
mov edx, dword [0x5cf5f0]
mov edi, dword [0x5cf5f4]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
sete dl
cmp edi, 0xa
setl dh
test dh, dl
jne 0x58a40e
xor dh, dl
jne 0x58a40e
jmp 0x5916a2
mov ecx, dword [0x5cf5f0]
mov edi, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
inc dword [esi + 0x24]
test ecx, ecx
sete dl
setne cl
cmp edi, 0xa
setl ah
setge al
cmp dl, ah
jne 0x58a2f7
or cl, al
je 0x58a2f7
jmp 0x591704
mov ecx, dword [esi + 4]
call fcn.00423280
cmp byte [eax + 0xd7], 0x31
jne 0x58de65
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x58ddb0
or cl, al
test cl, 1
jne 0x58dde2
jmp 0x58ddb0
push eax
mov dword [esi + 0x38], esp
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
mov dword [esi + 0x34], ecx
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 4], edi
mov ecx, edi
call fcn.0040cd80
mov eax, dword [0x5cf4b8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4bc]
sete byte [esi + 0x28]
sete dl
mov eax, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x18]
setl cl
mov ebx, 0x8f0f2ca8
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x13d3b53a
cmp ecx, 0x13d3b539
jg 0x58a627
cmp ecx, 0x8f0f2ca8
je 0x58a65e
cmp ecx, 0x11f1fb1a
jne 0x58a60d
jmp 0x58a669
cmp ecx, 0x1a1c1d98
je 0x58a665
cmp ecx, 0x13d3b53a
jne 0x58a60d
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov ch, dl
xor ch, cl
mov edi, 0x8f0f2ca8
mov ebx, 0x1a1c1d98
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x58a60d
mov ecx, 0x1a1c1d98
jmp 0x58a60d
mov ecx, eax
jmp 0x58a60d
mov edi, dword [esi + 4]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf5f4], 0xa
mov byte [edi], 0
setge cl
setl ah
xor ah, dl
jne 0x58a79a
or cl, al
je 0x58a79a
push eax
mov ecx, esp
sub esp, 0x18
mov edi, esp
push 0x7a
push 0x61
call fcn.00542260
sub esp, 4
movzx eax, byte [esi + 0x10]
mov byte [esp], al
mov dword [esi + 8], edi
mov ecx, edi
call fcn.0040cd80
mov eax, dword [0x5cf4b8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4bc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
sete cl
mov eax, 0x8f0f2ca8
mov edi, 0x11f1fb1a
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov ebx, 0x8f0f2ca8
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x13d3b53a
jmp 0x58a724
mov ecx, eax
cmp ecx, 0x13d3b539
jg 0x58a73e
cmp ecx, 0x8f0f2ca8
je 0x58a77a
cmp ecx, 0x11f1fb1a
jne 0x58a724
jmp 0x58a781
cmp ecx, 0x1a1c1d98
je 0x58a722
cmp ecx, 0x13d3b53a
jne 0x58a724
movzx edx, byte [esi + 0x28]
movzx ecx, byte [esi + 0x18]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x8f0f2ca8
mov edi, 0x1a1c1d98
cmovne ecx, edi
test dl, dl
mov ebx, 0x8f0f2ca8
cmove ecx, ebx
test dh, dh
cmovne ecx, edi
jmp 0x58a724
mov ecx, 0x1a1c1d98
jmp 0x58a724
mov eax, dword [esi + 8]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
jmp 0x58a599
mov dword [esi + 0x24], 0
cmp dword [esi + 0x24], 0x3e8
je 0x58a9fe
mov ecx, dword [esi + 0x34]
movsx eax, byte [ecx + 1]
movsx edx, byte [ecx]
mov dword [esi + 0xc0], 0x80
push eax
push edx
push dword [esi + 0x38]
call fcn.0041e700
movsx eax, al
mov ecx, dword [esi + 4]
push eax
call fcn.00441240
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf5f4], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x58a805
or cl, al
jne 0x58a837
mov ecx, dword [esi + 4]
call fcn.00423280
mov edx, dword [0x5cf5f0]
lea ecx, [edx + 1]
imul ecx, edx
test cl, 1
sete dh
cmp dword [0x5cf5f4], 0xa
setge dl
setl bl
xor bl, dh
jne 0x58a841
or dl, cl
test dl, 1
je 0x58a841
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x58a805
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
cmp byte [ecx + eax - 1], 0x6f
je 0x58a866
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov ecx, dword [edi + 0x10]
cmp byte [ecx + eax - 1], 0x75
jne 0x58a9c7
mov edi, dword [esi + 4]
mov ecx, edi
call fcn.00423280
mov dword [esi + 8], eax
mov ecx, edi
call fcn.00423280
add eax, dword [edi + 0x10]
mov dword [esi + 0xc], eax
mov edx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x58a8a9
xor dh, dl
je 0x591706
mov edx, dword [esi + 0xc]
cmp dword [esi + 8], edx
jne 0x58a8c6
jmp 0x58a9db
mov edx, dword [esi + 8]
inc edx
mov dword [esi + 8], edx
cmp edx, dword [esi + 0xc]
je 0x58a9db
mov eax, dword [0x5cf5f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf5fc]
sete byte [esi + 0x10]
sete dl
mov eax, 0xc9893d93
mov edi, 0x603280c6
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
setl cl
mov ebx, 0xc9893d93
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0xfc461c64
cmp ecx, 0xfc461c63
jg 0x58a92a
cmp ecx, 0xc9893d93
je 0x58a966
cmp ecx, 0xdac56cfa
jne 0x58a90e
mov ecx, eax
jmp 0x58a90e
cmp ecx, 0x603280c6
je 0x58a96d
cmp ecx, 0xfc461c64
jne 0x58a90e
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xc9893d93
mov edi, 0xdac56cfa
cmovne ecx, edi
test dl, dl
mov ebx, 0xc9893d93
cmove ecx, ebx
test dh, dh
cmovne ecx, edi
jmp 0x58a90e
mov ecx, 0xdac56cfa
jmp 0x58a90e
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x18]
movsx eax, byte [ebx]
push eax
call fcn.005a47b5
add esp, 4
mov ecx, eax
xor cl, 0xf5
and cl, al
mov byte [ebx], cl
mov ecx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
setne dl
sete bl
cmp eax, 0xa
setge dh
setl bh
xor bh, bl
jne 0x58a8b6
or dh, dl
je 0x58a8b6
jmp 0x5916a4
mov edx, dword [0x5cf5f0]
mov eax, dword [0x5cf5f4]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
inc dword [esi + 0x24]
test ecx, ecx
sete cl
cmp eax, 0xa
setl al
test cl, al
jne 0x58a7a1
xor cl, al
jne 0x58a7a1
jmp 0x591708
mov ecx, dword [esi + 4]
call fcn.00423280
cmp byte [eax + 0xd7], 0x31
jne 0x58aaed
mov eax, dword [0x5cf5f0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x58aa3b
xor cl, al
je 0x58aa6d
mov ecx, dword [esi + 4]
call fcn.00423280
mov edx, dword [0x5cf5f0]
lea ecx, [edx + 1]
imul ecx, edx
test cl, 1
sete dh
cmp dword [0x5cf5f4], 0xa
setge dl
setl bl
xor bl, dh
jne 0x58aa77
or dl, cl
test dl, 1
je 0x58aa77
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x58aa3b
cmp byte [eax + 0x2d0], 0x30
jne 0x58aaed
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x58aaed
xor cl, al
jne 0x58aaed
push 0
push 0
mov edi, dword [sym.imp.KERNEL32.dll_Beep]
call edi
push 0
push 0
call edi
mov ecx, dword [0x5cf5f0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf5f4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x58aaed
or cl, al
test cl, 1
jne 0x58aab2
mov ecx, dword [esi + 4]
call fcn.0040ed30
mov esp, dword [esi + 0x40]
mov dword [esi + 0xa0], esp
mov dword [esi + 0x9c], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
setne dh
sete bl
mov ecx, dword [0x5cf6c4]
cmp ecx, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
xor dl, 1
or dl, bh
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x6c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x58ab34
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x58bb98
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x58ac00
xor dl, al
je 0x591720
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x58b1e3
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x58abc6
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 8]
mov dword [ecx], ebx
mov ebx, dword [esi + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x8c]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0xc]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x58ad01
cmp ecx, 0x20e9c049
je 0x58ad18
cmp ecx, 0x3b23d0b1
jne 0x58ace7
jmp 0x58ad48
cmp ecx, 0x9c6e8745
je 0x58ad1c
cmp ecx, 0xeb760989
jne 0x58ace7
mov ecx, 0x20e9c049
jmp 0x58ace7
mov ecx, eax
jmp 0x58ace7
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x58ace7
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x58ade1
cmp ecx, 0xcfcad29c
je 0x58ae24
cmp ecx, 0x3aca7e6
jne 0x58adc5
mov ecx, eax
jmp 0x58adc5
cmp ecx, 0x7c4a5f2
je 0x58ae1d
cmp ecx, 0x389c0e25
jne 0x58adc5
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x58adc5
mov ecx, 0x3aca7e6
jmp 0x58adc5
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x81
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x83
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x58aecb
cmp eax, 0xc6e82640
je 0x58af35
cmp eax, 0x950d98a
jne 0x58ae86
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x58ae86
cmp eax, 0x31a61df5
je 0x58aee8
cmp eax, 0x4d86efb0
jne 0x58ae86
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x58ae86
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x58ae86
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf6cc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
setl dl
mov ebx, 0xeb760989
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x58afb5
cmp ecx, 0x20e9c049
je 0x58afcc
cmp ecx, 0x3b23d0b1
jne 0x58af9b
jmp 0x58affc
cmp ecx, 0x9c6e8745
je 0x58afd0
cmp ecx, 0xeb760989
jne 0x58af9b
mov ecx, 0x20e9c049
jmp 0x58af9b
mov ecx, eax
jmp 0x58af9b
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x58af9b
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x6c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x58b095
cmp ecx, 0xcfcad29c
je 0x58b0d3
cmp ecx, 0x3aca7e6
jne 0x58b079
mov ecx, eax
jmp 0x58b079
cmp ecx, 0x7c4a5f2
je 0x58b0cc
cmp ecx, 0x389c0e25
jne 0x58b079
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x58b079
mov ecx, 0x3aca7e6
jmp 0x58b079
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x81
mov ecx, dword [esi + 0x6c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x82
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x6c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x58b17b
cmp eax, 0xc6e82640
je 0x58abc6
cmp eax, 0x950d98a
jne 0x58b136
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x58b136
cmp eax, 0x31a61df5
je 0x58b198
cmp eax, 0x4d86efb0
jne 0x58b136
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x58b136
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x58b136
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x58b513
mov dword [esi + 0x48], 1
jmp 0x58b22a
mov ebx, dword [esi + 0x48]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x48], ebx
cmp ebx, edx
jae 0x58b513
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp edi, 0xa
setge cl
setl ch
xor ch, dl
mov edx, dword [esi + 0x48]
mov dword [esi + 8], edx
jne 0x58b275
or cl, al
mov eax, dword [esi + 0x48]
mov dword [esi + 8], eax
test cl, 1
je 0x58b275
jmp 0x5918fe
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0xc]
call fcn.00433980
cmp dword [esi + 8], 0
je 0x58b4db
mov eax, dword [0x5cf6d8]
mov ecx, dword [0x5cf6dc]
lea edx, [eax + 1]
imul edx, eax
and edx, 1
mov dword [esi + 0xc], edx
sete byte [esi + 0x10]
sete al
mov ebx, 0xbf25ae54
mov edx, 0x20ab24e5
cmove ebx, edx
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, 0xbf25ae54
cmovge ebx, ecx
setl cl
xor cl, al
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax]
mov eax, dword [esi + 8]
lea eax, [eax + eax*2]
mov dword [esi + 0x38], ecx
lea eax, [ecx + eax*4]
mov dword [esi + 0x24], eax
cmovne ebx, edx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x58b2ed
cmp edx, 0xffb13445
je 0x58b324
cmp edx, 0x20ab24e5
jne 0x58b2d3
jmp 0x58b32f
cmp edx, 0xbf25ae54
je 0x58b328
cmp edx, 0xe6642f9a
jne 0x58b2d3
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
mov ecx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ecx, edi
test dl, dl
mov edx, ecx
cmovne edx, edi
test al, al
cmove edx, ecx
jmp 0x58b2d3
mov edx, ebx
jmp 0x58b2d3
mov edx, 0xffb13445
jmp 0x58b2d3
mov ecx, dword [esi + 8]
dec ecx
cmp dword [esi + 0xc], 0
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x40], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x34], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov dword [esi + 8], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x38]
lea eax, [ecx + eax*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x58b384
cmp eax, 0xffb13445
je 0x58b3b9
cmp eax, 0x20ab24e5
jne 0x58b36d
jmp 0x58b3c4
cmp eax, 0xbf25ae54
je 0x58b3bd
cmp eax, 0xe6642f9a
jne 0x58b36d
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x58b36d
mov eax, ebx
jmp 0x58b36d
mov eax, 0xffb13445
jmp 0x58b36d
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x40]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x34]
sbb ecx, dword [eax + 4]
jge 0x58b4db
cmp dword [esi + 0xc], 0
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x58b40f
cmp edx, 0xffb13445
je 0x58b44b
cmp edx, 0x20ab24e5
jne 0x58b3f5
jmp 0x58b456
cmp edx, 0xbf25ae54
je 0x58b44f
cmp edx, 0xe6642f9a
jne 0x58b3f5
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ah, al
xor ah, cl
test cl, cl
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov ecx, 0xbf25ae54
cmove edx, ecx
test ah, ah
cmovne edx, edi
jmp 0x58b3f5
mov edx, ebx
jmp 0x58b3f5
mov edx, 0xffb13445
jmp 0x58b3f5
cmp dword [esi + 0xc], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x58b494
cmp ecx, 0xffb13445
je 0x58b4d0
cmp ecx, 0x20ab24e5
jne 0x58b477
jmp 0x58b25a
cmp ecx, 0xbf25ae54
je 0x58b4d4
cmp ecx, 0xe6642f9a
jne 0x58b477
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ah, al
xor ah, cl
test cl, cl
mov ecx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ecx, edx
test al, al
mov edi, 0xbf25ae54
cmove ecx, edi
test ah, ah
cmovne ecx, edx
jmp 0x58b477
mov ecx, ebx
jmp 0x58b477
mov ecx, 0xffb13445
jmp 0x58b477
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx - 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x58b208
xor dl, al
jne 0x58b208
jmp 0x591900
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx - 1]
mov dword [esi + 4], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x58b567
cmp edi, 0x88e9608c
je 0x58b5a6
cmp edi, 0xdf32ec89
jne 0x58b543
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x58b543
cmp edi, 0x30b7124c
je 0x58b5fe
cmp edi, 0x124998e2
jne 0x58b543
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x58b543
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
mov dword [esi + 8], ebx
lea edi, [ecx + 1]
mov dword [esi + 4], ecx
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete dl
cmp ebx, 0xa
setl dh
xor dh, dl
mov edx, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne edx, ebx
test ecx, edi
mov edi, edx
cmove edi, ebx
cmp dword [esi + 8], 0xa
cmovge edi, edx
mov ecx, dword [esi + 0x18]
jmp 0x58b543
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x58b64d
cmp ecx, 0x88e9608c
je 0x58b684
cmp ecx, 0xdf32ec89
jne 0x58b629
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x58b629
cmp ecx, 0x30b7124c
je 0x58b6d2
cmp ecx, 0x124998e2
jne 0x58b629
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x58b629
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x58b629
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x58b702
or cl, al
test cl, 1
jne 0x591904
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x58bb09
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 4], eax
mov edi, dword [eax]
mov dword [esi + 8], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x58b78f
cmp edx, 0x87fb68d6
je 0x58b7c6
cmp edx, 0xfc04dcc5
jne 0x58b770
mov edx, 0x87fb68d6
jmp 0x58b770
cmp edx, 0x2601f5a7
je 0x58b7ca
cmp edx, 0x5a893bc4
jne 0x58b770
movzx eax, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, al
xor dh, dl
mov ebx, 0xfc04dcc5
mov edi, 0x87fb68d6
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x58b770
mov edx, ecx
jmp 0x58b770
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x58b9e0
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x58b810
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x58b9e0
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x34], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x58b8df
mov eax, dword [esi + 0x24]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0xc], ecx
mov edi, dword [esi + 0xc]
test edi, edi
sete al
mov ebx, dword [esi + 4]
cmp ebx, 0xa
setl cl
xor cl, al
mov eax, 0x4c6ca682
mov edx, 0x6707b2cf
cmovne eax, edx
test edi, edi
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge ecx, eax
mov eax, 0x1b272c9a
jmp 0x58b883
mov eax, ecx
cmp eax, 0x4c6ca681
jle 0x58b89a
cmp eax, 0x4c6ca682
je 0x58b8cf
cmp eax, 0x6707b2cf
jne 0x58b883
jmp 0x58b8d6
cmp eax, 0xf74fd645
je 0x58b881
cmp eax, 0x1b272c9a
jne 0x58b883
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test al, al
mov eax, edi
cmovne eax, ebx
test dl, dl
cmove eax, edi
jmp 0x58b883
mov eax, 0xf74fd645
jmp 0x58b883
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
mov dword [esi + 0xc], ecx
sete byte [esi + 0x10]
sete bl
mov eax, 0x4c6ca682
mov ecx, 0x6707b2cf
cmove eax, ecx
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl bh
mov edx, 0x4c6ca682
cmovge eax, edx
xor bh, bl
cmovne eax, ecx
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x58b93d
cmp ebx, 0x4c6ca682
je 0x58b978
cmp ebx, 0x6707b2cf
jne 0x58b923
jmp 0x58b983
cmp ebx, 0xf74fd645
je 0x58b97f
cmp ebx, 0x1b272c9a
jne 0x58b923
movzx ecx, byte [esi + 0x10]
mov dh, byte [esi + 0x28]
mov dl, cl
xor dl, dh
test dh, dh
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test cl, cl
mov ecx, 0x4c6ca682
cmove ebx, ecx
test dl, dl
cmovne ebx, edi
jmp 0x58b923
mov ebx, 0xf74fd645
jmp 0x58b923
mov ebx, eax
jmp 0x58b923
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x58b845
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x58b7fe
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x58b7fe
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x34], 0xa
setl cl
test cl, al
jne 0x58ba07
xor cl, al
je 0x591902
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x58ba51
cmp eax, 0xcd5e6053
je 0x58baa7
cmp eax, 0x18ed46ca
jne 0x58ba2f
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x58ba2f
cmp eax, 0x5499d804
je 0x58bad1
cmp eax, 0x685e39a2
jne 0x58ba2f
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x58ba2f
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x58ba2f
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x58b702
xor cl, al
jne 0x58b702
jmp 0x591904
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
mov edi, dword [esi + 0x5c]
test dh, dl
jne 0x58ab98
xor dh, dl
mov edi, dword [esi + 0x5c]
jne 0x58ab98
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp ecx, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x58bb90
test dl, dl
je 0x58bb49
mov edi, dword [esi + 0x5c]
jmp 0x58ab98
mov edi, dword [esi + 0x5c]
jmp 0x58ab98
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete ah
cmp ecx, 0xa
setl cl
setge al
cmp cl, ah
jne 0x58bbbb
or al, dl
test al, 1
jne 0x5918e4
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
mov dword [esi + 8], eax
cmp eax, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 0x40], esp
sub esp, 0xc
mov dword [esi + 0x48], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x54], eax
mov esp, eax
push eax
mov dword [esi + 0x64], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x68], eax
mov esp, eax
push eax
mov dword [esi + 0x84], esp
push eax
mov dword [esi + 0x6c], esp
push eax
mov dword [esi + 0x88], esp
test dl, dl
je 0x58bbe8
mov eax, dword [esi + 0x54]
add eax, 0x10
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x68]
add eax, 0x10
mov dword [esi + 0x80], eax
mov edi, 0xa
cmp edi, 0x1f4
jae 0x58cc5e
mov ecx, dword [esi + 0x40]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete ah
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
mov ebx, dword [esi + 0x38]
mov dword [esi + 4], ebx
mov ebx, dword [esi + 0x24]
mov dword [esi + 8], ebx
jne 0x58bcba
or dl, al
jne 0x5918f4
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x58c282
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x60], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x3c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x60]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x3c]
sbb ecx, edx
or ecx, eax
jne 0x58bc7a
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x54]
mov ebx, dword [esi + 8]
mov dword [ecx], ebx
mov ebx, dword [esi + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x8c]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0xc]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x58bdbc
cmp ecx, 0x20e9c049
je 0x58bdd3
cmp ecx, 0x3b23d0b1
jne 0x58bda2
jmp 0x58bdfe
cmp ecx, 0x9c6e8745
je 0x58bdd7
cmp ecx, 0xeb760989
jne 0x58bda2
mov ecx, 0x20e9c049
jmp 0x58bda2
mov ecx, eax
jmp 0x58bda2
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x58bda2
mov eax, dword [esi + 0x64]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x48]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x58be94
cmp ecx, 0xcfcad29c
je 0x58bed7
cmp ecx, 0x3aca7e6
jne 0x58be78
mov ecx, eax
jmp 0x58be78
cmp ecx, 0x7c4a5f2
je 0x58bed0
cmp ecx, 0x389c0e25
jne 0x58be78
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x58be78
mov ecx, 0x3aca7e6
jmp 0x58be78
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x84
mov ecx, dword [esi + 0x48]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x86
mov ecx, dword [esi + 0x40]
push dword [esi + 0x48]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x58bf7a
cmp eax, 0xc6e82640
je 0x58bfdd
cmp eax, 0x950d98a
jne 0x58bf3a
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x58bf3a
cmp eax, 0x31a61df5
je 0x58bf97
cmp eax, 0x4d86efb0
jne 0x58bf3a
mov ecx, dword [esi + 0x48]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x58bf3a
mov ecx, dword [esi + 0x48]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x58bf3a
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
mov edi, dword [0x5cf6cc]
cmp edi, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edx, ebx
test ecx, eax
mov ecx, dword [esi + 0x68]
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
sete byte [esi + 0x10]
mov eax, dword [esi + 0x8c]
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov dword [ecx + 0xc], eax
mov eax, edx
cmove eax, ebx
cmp edi, 0xa
setl byte [esi + 0x28]
mov edi, dword [esi + 8]
mov dword [ecx + 8], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x58c05f
cmp ecx, 0x20e9c049
je 0x58c076
cmp ecx, 0x3b23d0b1
jne 0x58c045
jmp 0x58c0a1
cmp ecx, 0x9c6e8745
je 0x58c07a
cmp ecx, 0xeb760989
jne 0x58c045
mov ecx, 0x20e9c049
jmp 0x58c045
mov ecx, eax
jmp 0x58c045
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x58c045
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x58c13a
cmp ecx, 0xcfcad29c
je 0x58c178
cmp ecx, 0x3aca7e6
jne 0x58c11e
mov ecx, eax
jmp 0x58c11e
cmp ecx, 0x7c4a5f2
je 0x58c171
cmp ecx, 0x389c0e25
jne 0x58c11e
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x58c11e
mov ecx, 0x3aca7e6
jmp 0x58c11e
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x84
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x85
mov ecx, dword [esi + 0x40]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x58c21a
cmp eax, 0xc6e82640
je 0x58bc7a
cmp eax, 0x950d98a
jne 0x58c1da
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x58c1da
cmp eax, 0x31a61df5
je 0x58c237
cmp eax, 0x4d86efb0
jne 0x58c1da
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x58c1da
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x58c1da
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x58c5a5
mov dword [esi + 0x60], 1
jmp 0x58c2c9
mov ebx, dword [esi + 0x60]
inc ebx
mov edx, dword [esi + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x60], ebx
cmp ebx, edx
jae 0x58c5a5
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x60]
mov dword [esi + 4], edx
test cl, al
jne 0x58c311
xor cl, al
mov eax, dword [esi + 0x60]
mov dword [esi + 4], eax
jne 0x58c311
jmp 0x5918f6
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edi
call fcn.00433980
cmp dword [esi + 4], 0
je 0x58c568
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax + 1]
imul edi, eax
mov eax, edi
and eax, 1
sete al
cmp ebx, 0xa
setl cl
xor cl, al
mov eax, 0xbf25ae54
mov ecx, 0x20ab24e5
cmovne eax, ecx
and edi, 1
sete byte [esi + 0x10]
mov edx, eax
cmove edx, ecx
mov dword [esi + 0xc], ebx
cmp ebx, 0xa
setl byte [esi + 0x28]
cmovge edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 0x40]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
mov dword [esi + 0x38], ecx
lea eax, [ecx + eax*4]
mov dword [esi + 0x24], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x58c38b
cmp eax, 0xffb13445
je 0x58c3c0
cmp eax, 0x20ab24e5
jne 0x58c374
jmp 0x58c3cc
cmp eax, 0xbf25ae54
je 0x58c3c5
cmp eax, 0xe6642f9a
jne 0x58c374
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov ecx, 0xbf25ae54
mov edx, 0xffb13445
cmovne ecx, edx
test al, al
mov eax, ecx
cmovne eax, edx
test bl, bl
cmove eax, ecx
jmp 0x58c374
mov eax, dword [esi + 8]
jmp 0x58c374
mov eax, 0xffb13445
jmp 0x58c374
mov ecx, dword [esi + 4]
dec ecx
test edi, edi
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x3c], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x34], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x38]
lea eax, [ecx + eax*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x58c41f
cmp eax, 0xffb13445
je 0x58c454
cmp eax, 0x20ab24e5
jne 0x58c408
jmp 0x58c460
cmp eax, 0xbf25ae54
je 0x58c459
cmp eax, 0xe6642f9a
jne 0x58c408
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, cl
xor ah, al
mov edx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edx, ebx
test al, al
mov eax, edx
cmovne eax, ebx
test cl, cl
cmove eax, edx
jmp 0x58c408
mov eax, dword [esi + 8]
jmp 0x58c408
mov eax, 0xffb13445
jmp 0x58c408
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x3c]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x34]
sbb ecx, dword [eax + 4]
jge 0x58c568
test edi, edi
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x58c4a6
cmp eax, 0xffb13445
je 0x58c4db
cmp eax, 0x20ab24e5
jne 0x58c48f
jmp 0x58c4e7
cmp eax, 0xbf25ae54
je 0x58c4e0
cmp eax, 0xe6642f9a
jne 0x58c48f
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne edx, ebx
test al, al
mov eax, edx
cmovne eax, ebx
test cl, cl
cmove eax, edx
jmp 0x58c48f
mov eax, dword [esi + 8]
jmp 0x58c48f
mov eax, 0xffb13445
jmp 0x58c48f
test edi, edi
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov edi, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x58c520
cmp ecx, 0xffb13445
je 0x58c55c
cmp ecx, 0x20ab24e5
jne 0x58c503
jmp 0x58c2f8
cmp ecx, 0xbf25ae54
je 0x58c561
cmp ecx, 0xe6642f9a
jne 0x58c503
movzx eax, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test cl, cl
mov ecx, 0xbf25ae54
mov ebx, 0xffb13445
cmovne ecx, ebx
test al, al
mov eax, 0xbf25ae54
cmove ecx, eax
test dl, dl
cmovne ecx, ebx
jmp 0x58c503
mov ecx, dword [esi + 8]
jmp 0x58c503
mov ecx, 0xffb13445
jmp 0x58c503
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete ah
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
jne 0x58c2a7
or dl, al
je 0x58c2a7
jmp 0x5918f8
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x58c5f8
cmp edi, 0x88e9608c
je 0x58c638
cmp edi, 0xdf32ec89
jne 0x58c5d4
mov ecx, dword [esi + 0x6c]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x58c5d4
cmp edi, 0x30b7124c
je 0x58c691
cmp edi, 0x124998e2
jne 0x58c5d4
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, cl
xor bh, bl
test cl, cl
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test bl, bl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bh, bh
cmovne edi, edx
jmp 0x58c5d4
mov ecx, dword [esi + 0x6c]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea edi, [ecx - 1]
mov dword [esi + 4], ecx
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete cl
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne ecx, ebx
cmp edi, 0xffffffff
mov edi, ecx
cmove edi, ebx
mov dword [esi + 8], edx
cmp edx, 0xa
cmovge edi, ecx
mov ecx, dword [esi + 0x18]
jmp 0x58c5d4
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x40]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x58c6e2
cmp ecx, 0x88e9608c
je 0x58c71d
cmp ecx, 0xdf32ec89
jne 0x58c6bb
mov ecx, dword [esi + 0x88]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x58c6bb
cmp ecx, 0x30b7124c
je 0x58c76e
cmp ecx, 0x124998e2
jne 0x58c6bb
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x58c6bb
mov ecx, dword [esi + 0x88]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x58c6bb
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x58c79d
xor cl, al
je 0x5918fc
mov eax, dword [esi + 0x6c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x88]
cmp eax, dword [ecx]
je 0x58cbc7
mov ecx, dword [esi + 0x6c]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
mov dword [esi + 8], edx
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edx, 0x2601f5a7
cmovne ebx, edx
test edi, ecx
sete byte [esi + 0x28]
mov ecx, ebx
cmove ecx, edx
cmp dword [esi + 8], 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov eax, dword [eax]
mov dword [esi + 8], eax
cmovge ecx, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x58c82e
cmp edx, 0x87fb68d6
je 0x58c86a
cmp edx, 0xfc04dcc5
jne 0x58c80f
mov edx, 0x87fb68d6
jmp 0x58c80f
cmp edx, 0x2601f5a7
je 0x58c86e
cmp edx, 0x5a893bc4
jne 0x58c80f
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x58c80f
mov edx, ecx
jmp 0x58c80f
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
cmp dword [esi + 8], ecx
je 0x58ca8d
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x58c8b4
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x3c]
je 0x58ca8d
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne cl
cmp dword [esi + 0x38], 0xa
setge al
mov edx, eax
xor dl, cl
or al, cl
xor al, 1
or al, dl
jne 0x58c990
mov edx, dword [esi + 0x24]
lea ecx, [edx - 1]
imul ecx, edx
and ecx, 1
mov dword [esi + 0xc], ecx
cmp dword [esi + 0xc], 0
sete byte [esi + 0x10]
sete dl
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl ah
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor ah, dl
cmovne ecx, edi
mov edx, 0x1b272c9a
jmp 0x58c926
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x58c940
cmp edx, 0x4c6ca682
je 0x58c980
cmp edx, 0x6707b2cf
jne 0x58c926
jmp 0x58c987
cmp edx, 0xf74fd645
je 0x58c924
cmp edx, 0x1b272c9a
jne 0x58c926
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov bl, ah
xor bl, dl
test dl, dl
mov edx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne edx, edi
test ah, ah
mov edi, 0x4c6ca682
cmove edx, edi
test bl, bl
mov edi, 0xf74fd645
cmovne edx, edi
jmp 0x58c926
mov edx, 0xf74fd645
jmp 0x58c926
mov ecx, dword [esi + 8]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x24]
lea ebx, [edx + 1]
imul ebx, edx
mov edx, ebx
and edx, 1
sete dl
mov ecx, dword [esi + 4]
cmp ecx, 0xa
setl ah
xor ah, dl
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
and ebx, 1
mov dword [esi + 0xc], ebx
sete byte [esi + 0x10]
mov ebx, edx
cmove ebx, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge ebx, edx
mov edx, 0x1b272c9a
cmp edx, 0x4c6ca681
jle 0x58c9f1
cmp edx, 0x4c6ca682
je 0x58ca27
cmp edx, 0x6707b2cf
jne 0x58c9d7
jmp 0x58ca32
cmp edx, 0xf74fd645
je 0x58ca2e
cmp edx, 0x1b272c9a
jne 0x58c9d7
mov ah, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov dh, ah
xor dh, dl
mov edi, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne edi, ecx
test dl, dl
mov edx, edi
cmovne edx, ecx
test ah, ah
cmove edx, edi
jmp 0x58c9d7
mov edx, 0xf74fd645
jmp 0x58c9d7
mov edx, ebx
jmp 0x58c9d7
mov edx, dword [esi + 8]
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x18]
test al, al
je 0x58c8ed
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x58c8a2
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x58c8a2
mov ecx, dword [esi + 0x34]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne al
sete dl
cmp dword [esi + 0x38], 0xa
setge cl
setl ah
xor ah, dl
jne 0x58cab9
or cl, al
jne 0x5918fa
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x58cb04
cmp eax, 0xcd5e6053
je 0x58cb60
cmp eax, 0x18ed46ca
jne 0x58cae2
mov eax, dword [esi + 0x6c]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x58cae2
cmp eax, 0x5499d804
je 0x58cb8a
cmp eax, 0x685e39a2
jne 0x58cae2
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x18ed46ca
mov edi, 0x5499d804
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x58cae2
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x58cae2
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ah
xor ah, dl
jne 0x58c79d
or cl, al
je 0x58c79d
jmp 0x5918fc
mov ecx, dword [esi + 0x40]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete bl
setne dl
mov dword [esi + 8], eax
cmp eax, 0xa
setl bh
setge dh
mov edi, dword [esi + 0x5c]
cmp bh, bl
jne 0x58bc4c
or dh, dl
mov edi, dword [esi + 0x5c]
je 0x58bc4c
mov edi, dword [esi + 0x40]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete bh
mov dword [esi + 8], eax
cmp eax, 0xa
setl al
setge bl
or bl, dl
cmp al, bh
jne 0x58cc56
test bl, 1
jne 0x58cc0f
mov edi, dword [esi + 0x5c]
jmp 0x58bc4c
mov edi, dword [esi + 0x5c]
jmp 0x58bc4c
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete cl
cmp dword [esi + 8], 0xa
setl ah
setge al
cmp ah, cl
jne 0x58cc82
or al, dl
test al, 1
jne 0x5918e6
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
cmp eax, 0xa
setl dl
or dl, dh
push eax
sub esp, 8
mov dword [esi + 8], esp
sub esp, 0xc
mov dword [esi + 0x40], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x3c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x58ccab
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x58dd44
mov ecx, dword [esi + 8]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x48], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x38], eax
mov dword [esi + 0x34], 0
mov eax, dword [esi + 0x34]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
mov edi, dword [0x5cf6c4]
cmp edi, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x58cd78
or dl, al
test dl, 1
jne 0x5918e8
mov edx, dword [esi + 4]
mov eax, edx
imul eax, dword [esi + 0xc]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x48]
sbb eax, 0
jae 0x58d358
mov eax, dword [esi + 0x48]
mov edi, dword [esi + 4]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x6c], eax
mov eax, 0
mov ebx, dword [esi + 0xc]
sbb eax, ebx
mov dword [esi + 0x4c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0x24], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x34], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0x38], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x6c]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
sbb ecx, edx
or ecx, eax
jne 0x58cd3d
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov edi, dword [esi + 4]
mov dword [ecx], edi
mov edi, dword [esi + 0xc]
mov dword [ecx + 4], edi
mov edi, dword [esi + 0x8c]
mov dword [ecx + 8], edi
setl byte [esi + 0x28]
mov edi, dword [esi + 0x24]
mov dword [ecx + 0xc], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x58ce7e
cmp ecx, 0x20e9c049
je 0x58ce95
cmp ecx, 0x3b23d0b1
jne 0x58ce64
jmp 0x58cec5
cmp ecx, 0x9c6e8745
je 0x58ce99
cmp ecx, 0xeb760989
jne 0x58ce64
mov ecx, 0x20e9c049
jmp 0x58ce64
mov ecx, eax
jmp 0x58ce64
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x58ce64
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x40]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x90]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x68]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x58cf5c
cmp ecx, 0xcfcad29c
je 0x58cf9a
cmp ecx, 0x3aca7e6
jne 0x58cf40
mov ecx, eax
jmp 0x58cf40
cmp ecx, 0x7c4a5f2
je 0x58cf93
cmp ecx, 0x389c0e25
jne 0x58cf40
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x58cf40
mov ecx, 0x3aca7e6
jmp 0x58cf40
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x87
mov ecx, dword [esi + 0x40]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x89
mov ecx, dword [esi + 8]
push dword [esi + 0x40]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x58d041
cmp eax, 0xc6e82640
je 0x58d0a5
cmp eax, 0x950d98a
jne 0x58cffc
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x58cffc
cmp eax, 0x31a61df5
je 0x58d05e
cmp eax, 0x4d86efb0
jne 0x58cffc
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x58cffc
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x58cffc
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0x24]
mov dword [ebx + 4], eax
mov ecx, dword [0x5cf6c8]
lea eax, [ecx - 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
mov edx, dword [0x5cf6cc]
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne ecx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, ecx
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 4]
mov dword [ebx + 8], edx
cmovge eax, ecx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x58d129
cmp ecx, 0x20e9c049
je 0x58d140
cmp ecx, 0x3b23d0b1
jne 0x58d10f
jmp 0x58d170
cmp ecx, 0x9c6e8745
je 0x58d144
cmp ecx, 0xeb760989
jne 0x58d10f
mov ecx, 0x20e9c049
jmp 0x58d10f
mov ecx, eax
jmp 0x58d10f
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x58d10f
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x5cf4d4]
sete byte [esi + 0x50]
sete dl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x3c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
setl cl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x58d206
cmp ecx, 0xcfcad29c
je 0x58d249
cmp ecx, 0x3aca7e6
jne 0x58d1ea
mov ecx, eax
jmp 0x58d1ea
cmp ecx, 0x7c4a5f2
je 0x58d242
cmp ecx, 0x389c0e25
jne 0x58d1ea
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x58d1ea
mov ecx, 0x3aca7e6
jmp 0x58d1ea
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x87
mov ecx, dword [esi + 0x3c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x88
mov ecx, dword [esi + 8]
push dword [esi + 0x3c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x58d2f0
cmp eax, 0xc6e82640
je 0x58cd3d
cmp eax, 0x950d98a
jne 0x58d2ab
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x58d2ab
cmp eax, 0x31a61df5
je 0x58d30d
cmp eax, 0x4d86efb0
jne 0x58d2ab
mov ecx, dword [esi + 0x3c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x58d2ab
mov ecx, dword [esi + 0x3c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x58d2ab
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x58d68a
mov dword [esi + 0x58], 1
jmp 0x58d39f
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x58d68a
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x58]
mov dword [esi + 4], edx
test cl, al
jne 0x58d3e9
xor cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 4], eax
jne 0x58d3e9
jmp 0x5918ec
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0x24]
call fcn.00433980
cmp dword [esi + 4], 0
je 0x58d652
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0x24], ecx
mov dword [esi + 0x38], eax
test eax, ecx
sete byte [esi + 0x10]
mov ecx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove ecx, ebx
sete al
mov dword [esi + 0xc], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ecx, edx
setl dl
xor dl, al
mov eax, dword [esi + 8]
mov edx, dword [eax]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
mov dword [esi + 0x48], edx
lea eax, [edx + eax*4]
mov dword [esi + 0x34], eax
cmovne ecx, ebx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x58d468
cmp edx, 0xffb13445
je 0x58d49f
cmp edx, 0x20ab24e5
jne 0x58d44e
jmp 0x58d4aa
cmp edx, 0xbf25ae54
je 0x58d4a3
cmp edx, 0xe6642f9a
jne 0x58d44e
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
mov ebx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ebx, edi
test dl, dl
mov edx, ebx
cmovne edx, edi
test al, al
cmove edx, ebx
jmp 0x58d44e
mov edx, ecx
jmp 0x58d44e
mov edx, 0xffb13445
jmp 0x58d44e
mov edx, dword [esi + 4]
dec edx
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax]
mov dword [esi + 0x6c], edi
mov eax, dword [eax + 4]
mov dword [esi + 0x4c], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov dword [esi + 4], edx
lea eax, [edx + edx*2]
mov edx, dword [esi + 0x48]
lea eax, [edx + eax*4]
mov dword [esi + 0x48], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x58d501
cmp eax, 0xffb13445
je 0x58d536
cmp eax, 0x20ab24e5
jne 0x58d4ea
jmp 0x58d541
cmp eax, 0xbf25ae54
je 0x58d53a
cmp eax, 0xe6642f9a
jne 0x58d4ea
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test bl, bl
cmove eax, edx
jmp 0x58d4ea
mov eax, ecx
jmp 0x58d4ea
mov eax, 0xffb13445
jmp 0x58d4ea
mov eax, dword [esi + 0x48]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [esi + 0x6c]
cmp edx, dword [eax]
mov edx, dword [esi + 0x4c]
sbb edx, dword [eax + 4]
jge 0x58d652
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x58d58e
cmp edx, 0xffb13445
je 0x58d5ca
cmp edx, 0x20ab24e5
jne 0x58d574
jmp 0x58d5d5
cmp edx, 0xbf25ae54
je 0x58d5ce
cmp edx, 0xe6642f9a
jne 0x58d574
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, dl
xor ah, al
test dl, dl
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov ebx, 0xbf25ae54
cmove edx, ebx
test ah, ah
cmovne edx, edi
jmp 0x58d574
mov edx, ecx
jmp 0x58d574
mov edx, 0xffb13445
jmp 0x58d574
mov eax, dword [esi + 0x38]
test dword [esi + 0x24], eax
mov eax, dword [esi + 0x48]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x24], eax
sete byte [esi + 0x10]
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x58d612
cmp eax, 0xffb13445
je 0x58d647
cmp eax, 0x20ab24e5
jne 0x58d5f8
jmp 0x58d3ce
cmp eax, 0xbf25ae54
je 0x58d64b
cmp eax, 0xe6642f9a
jne 0x58d5f8
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov edi, 0xbf25ae54
mov edx, 0xffb13445
cmovne edi, edx
test al, al
mov eax, edi
cmovne eax, edx
test bl, bl
cmove eax, edi
jmp 0x58d5f8
mov eax, ecx
jmp 0x58d5f8
mov eax, 0xffb13445
jmp 0x58d5f8
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x58d37d
xor dl, al
jne 0x58d37d
jmp 0x5918ee
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 0xc], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x58d6de
cmp edi, 0x88e9608c
je 0x58d71e
cmp edi, 0xdf32ec89
jne 0x58d6ba
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x58d6ba
cmp edi, 0x30b7124c
je 0x58d777
cmp edi, 0x124998e2
jne 0x58d6ba
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, cl
xor bh, bl
test cl, cl
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test bl, bl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bh, bh
cmovne edi, edx
jmp 0x58d6ba
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea edi, [ecx + 1]
mov dword [esi + 0xc], ecx
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete cl
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne ecx, ebx
cmp edi, 0xffffffff
mov edi, ecx
cmove edi, ebx
mov dword [esi + 4], edx
cmp edx, 0xa
cmovge edi, ecx
mov ecx, dword [esi + 0x18]
jmp 0x58d6ba
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
mov dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x58d7cc
cmp ecx, 0x88e9608c
je 0x58d80c
cmp ecx, 0xdf32ec89
jne 0x58d7a5
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0xc]
mov dword [eax], ecx
mov ecx, 0x88e9608c
jmp 0x58d7a5
cmp ecx, 0x30b7124c
je 0x58d860
cmp ecx, 0x124998e2
jne 0x58d7a5
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne ecx, edi
test dl, dl
mov eax, 0xdf32ec89
cmove ecx, eax
test dh, dh
cmovne ecx, edi
jmp 0x58d7a5
mov eax, dword [esi + 0x60]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0xc]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov eax, 0x30b7124c
cmovne ebx, eax
test edi, ecx
mov ecx, ebx
cmove ecx, eax
cmp edx, 0xa
cmovge ecx, ebx
mov edx, dword [esi + 0x18]
jmp 0x58d7a5
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf6c4], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x58d894
or cl, al
jne 0x5918f2
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x58dcad
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 0xc], eax
mov edi, dword [eax]
mov dword [esi + 4], edi
mov edi, 0xfc04dcc5
cmovge ecx, edi
xor dl, bl
mov eax, 0x2601f5a7
cmovne ecx, eax
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x58d922
cmp edx, 0x87fb68d6
je 0x58d95e
cmp edx, 0xfc04dcc5
jne 0x58d903
mov edx, 0x87fb68d6
jmp 0x58d903
cmp edx, 0x2601f5a7
je 0x58d962
cmp edx, 0x5a893bc4
jne 0x58d903
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne edx, eax
test bl, bl
mov edi, 0xfc04dcc5
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x58d903
mov edx, ecx
jmp 0x58d903
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x4c], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x48], eax
mov dword [esi + 0x6c], ecx
cmp dword [esi + 4], ecx
je 0x58db77
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x58d9a8
mov eax, dword [esi + 4]
add eax, 8
mov dword [esi + 4], eax
cmp eax, dword [esi + 0x6c]
je 0x58db77
mov ecx, dword [esi + 0x4c]
lea eax, [ecx - 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [esi + 0x48], 0xa
setl cl
or cl, al
mov byte [esi + 0x34], cl
jne 0x58da76
mov ecx, dword [esi + 0x38]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
mov dword [esi + 0x24], ecx
cmp dword [esi + 0x24], 0
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
mov eax, 0x1b272c9a
jmp 0x58da1a
mov eax, ecx
cmp eax, 0x4c6ca681
jle 0x58da31
cmp eax, 0x4c6ca682
je 0x58da66
cmp eax, 0x6707b2cf
jne 0x58da1a
jmp 0x58da6d
cmp eax, 0xf74fd645
je 0x58da18
cmp eax, 0x1b272c9a
jne 0x58da1a
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test al, al
mov eax, edi
cmovne eax, ebx
test dl, dl
cmove eax, edi
jmp 0x58da1a
mov eax, 0xf74fd645
jmp 0x58da1a
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x38]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
and ecx, eax
mov dword [esi + 0x24], ecx
sete byte [esi + 0x10]
sete bl
mov eax, 0x4c6ca682
mov edx, 0x6707b2cf
cmove eax, edx
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl bh
mov edi, 0x4c6ca682
cmovge eax, edi
xor bh, bl
cmovne eax, edx
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x58dad4
cmp ebx, 0x4c6ca682
je 0x58db0f
cmp ebx, 0x6707b2cf
jne 0x58daba
jmp 0x58db1a
cmp ebx, 0xf74fd645
je 0x58db16
cmp ebx, 0x1b272c9a
jne 0x58daba
movzx edx, byte [esi + 0x10]
mov dh, byte [esi + 0x28]
mov ebx, edx
xor bl, dh
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test dh, dh
mov ebx, edi
mov ecx, 0xf74fd645
cmovne ebx, ecx
test dl, dl
cmove ebx, edi
jmp 0x58daba
mov ebx, 0xf74fd645
jmp 0x58daba
mov ebx, eax
jmp 0x58daba
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x34], 0
je 0x58d9e1
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x58d996
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x4c], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x38], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x58d996
mov ecx, dword [esi + 0x4c]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x48], 0xa
setl cl
test cl, al
jne 0x58db9d
xor cl, al
je 0x5918f0
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x58dbe7
cmp eax, 0xcd5e6053
je 0x58dc45
cmp eax, 0x18ed46ca
jne 0x58dbc5
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x58dbc5
cmp eax, 0x5499d804
je 0x58dc74
cmp eax, 0x685e39a2
jne 0x58dbc5
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x18ed46ca
mov ebx, 0x5499d804
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x58dbc5
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x58dbc5
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x58d894
or cl, al
test cl, 1
je 0x58d894
jmp 0x5918f2
mov ecx, dword [esi + 8]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete byte [esi + 4]
cmp eax, 0xa
setge bl
setl bh
xor bh, byte [esi + 4]
mov edi, dword [esi + 0x5c]
jne 0x58cd0f
or bl, dl
mov edi, dword [esi + 0x5c]
test bl, 1
je 0x58cd0f
mov edi, dword [esi + 8]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov eax, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
setne dh
sete bl
cmp eax, 0xa
setge dl
setl bh
xor bh, bl
or dl, dh
test bh, bh
jne 0x58dd3c
test dl, dl
jne 0x58dcf0
mov edi, dword [esi + 0x5c]
jmp 0x58cd0f
mov edi, dword [esi + 0x5c]
jmp 0x58cd0f
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete dl
setne cl
cmp eax, 0xa
setl ah
setge al
cmp ah, dl
jne 0x58dd6c
or al, cl
jne 0x5918ea
mov esp, dword [esi + 0xa0]
mov eax, dword [0x5d21a8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x5af2d6e3
mov edi, 0xbf311110
cmove eax, edi
cmp dword [0x5d21ac], 0xa
mov edx, 0x5af2d6e3
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x58a025
mov ecx, dword [esi + 4]
call fcn.00423280
mov edx, dword [0x5cf5f0]
lea ecx, [edx + 1]
imul ecx, edx
test cl, 1
sete dh
cmp dword [0x5cf5f4], 0xa
setge dl
setl bl
xor bl, dh
jne 0x58ddec
or dl, cl
test dl, 1
je 0x58ddec
mov ecx, dword [esi + 4]
call fcn.00423280
jmp 0x58ddb0
cmp byte [eax + 0x2d0], 0x30
jne 0x58de65
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf5f4], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x58de65
or cl, al
je 0x58de65
push 0
push 0
mov edi, dword [sym.imp.KERNEL32.dll_Beep]
call edi
push 0
push 0
call edi
mov eax, dword [0x5cf5f0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf5f4], 0xa
setl cl
test cl, al
jne 0x58de65
xor cl, al
je 0x58de2c
mov ecx, dword [esi + 4]
call fcn.0040ed30
mov esp, dword [esi + 0x40]
mov dword [esi + 0xa0], esp
mov dword [esi + 0x9c], esp
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
setne dh
cmp ecx, 0xa
setge dl
mov ebx, edx
xor bl, dh
or dl, dh
xor dl, 1
or dl, bl
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x6c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x58dea8
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x58ef14
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
mov ecx, dword [0x5cf6c0]
lea eax, [ecx - 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x58df75
xor dl, al
je 0x59171e
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x58e542
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x58df3a
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edi, ebx
test edx, eax
sete byte [esi + 0x10]
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov edx, dword [esi + 8]
mov dword [ecx], edx
mov edx, dword [esi + 4]
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x8c]
mov dword [ecx + 8], edx
setl byte [esi + 0x28]
mov edx, dword [esi + 0xc]
mov dword [ecx + 0xc], edx
cmovge eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x58e079
cmp ecx, 0x20e9c049
je 0x58e090
cmp ecx, 0x3b23d0b1
jne 0x58e05f
jmp 0x58e0c0
cmp ecx, 0x9c6e8745
je 0x58e094
cmp ecx, 0xeb760989
jne 0x58e05f
mov ecx, 0x20e9c049
jmp 0x58e05f
mov ecx, eax
jmp 0x58e05f
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x58e05f
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
mov edi, eax
xor edi, 0xfffffffe
test edi, eax
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov ebx, 0xcfcad29c
cmovne edx, ebx
test edi, eax
sete byte [esi + 0x50]
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x58e159
cmp ecx, 0xcfcad29c
je 0x58e19c
cmp ecx, 0x3aca7e6
jne 0x58e13d
mov ecx, eax
jmp 0x58e13d
cmp ecx, 0x7c4a5f2
je 0x58e195
cmp ecx, 0x389c0e25
jne 0x58e13d
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x58e13d
mov ecx, 0x3aca7e6
jmp 0x58e13d
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x8b
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x8d
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x58e23f
cmp eax, 0xc6e82640
je 0x58e2a3
cmp eax, 0x950d98a
jne 0x58e1ff
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x58e1ff
cmp eax, 0x31a61df5
je 0x58e25c
cmp eax, 0x4d86efb0
jne 0x58e1ff
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x58e1ff
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x58e1ff
mov ecx, dword [0x5cf6c8]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
mov edi, dword [0x5cf6cc]
cmp edi, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov ebx, 0x3b23d0b1
cmovne edx, ebx
test ecx, eax
mov ecx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
sete byte [esi + 0x10]
mov eax, dword [esi + 0x8c]
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov dword [ecx + 0xc], eax
mov eax, edx
cmove eax, ebx
cmp edi, 0xa
setl byte [esi + 0x28]
mov edi, dword [esi + 8]
mov dword [ecx + 8], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x58e325
cmp ecx, 0x20e9c049
je 0x58e33c
cmp ecx, 0x3b23d0b1
jne 0x58e30b
jmp 0x58e367
cmp ecx, 0x9c6e8745
je 0x58e340
cmp ecx, 0xeb760989
jne 0x58e30b
mov ecx, 0x20e9c049
jmp 0x58e30b
mov ecx, eax
jmp 0x58e30b
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x58e30b
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x6c]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x80]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x64]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x58e3fe
cmp ecx, 0xcfcad29c
je 0x58e43c
cmp ecx, 0x3aca7e6
jne 0x58e3e2
mov ecx, eax
jmp 0x58e3e2
cmp ecx, 0x7c4a5f2
je 0x58e435
cmp ecx, 0x389c0e25
jne 0x58e3e2
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x58e3e2
mov ecx, 0x3aca7e6
jmp 0x58e3e2
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x8b
mov ecx, dword [esi + 0x6c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x8c
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x6c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x58e4de
cmp eax, 0xc6e82640
je 0x58df3a
cmp eax, 0x950d98a
jne 0x58e49e
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x58e49e
cmp eax, 0x31a61df5
je 0x58e4fb
cmp eax, 0x4d86efb0
jne 0x58e49e
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x58e49e
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x58e49e
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x58e86c
mov dword [esi + 0x48], 1
jmp 0x58e589
mov ebx, dword [esi + 0x48]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x48], ebx
cmp ebx, edx
jae 0x58e86c
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp edi, 0xa
setl cl
mov edx, dword [esi + 0x48]
mov dword [esi + 8], edx
test cl, al
jne 0x58e5d3
xor cl, al
mov eax, dword [esi + 0x48]
mov dword [esi + 8], eax
jne 0x58e5d3
jmp 0x5918dc
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0xc]
call fcn.00433980
cmp dword [esi + 8], 0
je 0x58e834
mov eax, dword [0x5cf6d8]
mov ecx, dword [0x5cf6dc]
lea edx, [eax + 1]
imul edx, eax
and edx, 1
mov dword [esi + 0xc], edx
sete byte [esi + 0x10]
sete al
mov edx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove edx, ebx
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov ecx, 0xbf25ae54
cmovge edx, ecx
setl cl
xor cl, al
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax]
mov eax, dword [esi + 8]
lea eax, [eax + eax*2]
mov dword [esi + 0x38], ecx
lea eax, [ecx + eax*4]
mov dword [esi + 0x24], eax
cmovne edx, ebx
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x58e648
cmp eax, 0xffb13445
je 0x58e67d
cmp eax, 0x20ab24e5
jne 0x58e631
jmp 0x58e688
cmp eax, 0xbf25ae54
je 0x58e681
cmp eax, 0xe6642f9a
jne 0x58e631
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, bl
xor ah, al
mov ecx, 0xbf25ae54
mov edi, 0xffb13445
cmovne ecx, edi
test al, al
mov eax, ecx
cmovne eax, edi
test bl, bl
cmove eax, ecx
jmp 0x58e631
mov eax, edx
jmp 0x58e631
mov eax, 0xffb13445
jmp 0x58e631
mov ecx, dword [esi + 8]
dec ecx
cmp dword [esi + 0xc], 0
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax]
mov dword [esi + 0x40], edi
mov eax, dword [eax + 4]
mov dword [esi + 0x34], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov dword [esi + 8], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x38]
lea eax, [ecx + eax*4]
mov dword [esi + 0x38], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x58e6dd
cmp eax, 0xffb13445
je 0x58e717
cmp eax, 0x20ab24e5
jne 0x58e6c6
jmp 0x58e722
cmp eax, 0xbf25ae54
je 0x58e71b
cmp eax, 0xe6642f9a
jne 0x58e6c6
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, cl
xor ch, al
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test cl, cl
mov ebx, 0xbf25ae54
cmove eax, ebx
test ch, ch
cmovne eax, edi
jmp 0x58e6c6
mov eax, edx
jmp 0x58e6c6
mov eax, 0xffb13445
jmp 0x58e6c6
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x40]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x34]
sbb ecx, dword [eax + 4]
jge 0x58e834
cmp dword [esi + 0xc], 0
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x58e76a
cmp eax, 0xffb13445
je 0x58e7a4
cmp eax, 0x20ab24e5
jne 0x58e753
jmp 0x58e7af
cmp eax, 0xbf25ae54
je 0x58e7a8
cmp eax, 0xe6642f9a
jne 0x58e753
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, al
xor ch, cl
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test cl, cl
mov ebx, 0xbf25ae54
cmove eax, ebx
test ch, ch
cmovne eax, edi
jmp 0x58e753
mov eax, edx
jmp 0x58e753
mov eax, 0xffb13445
jmp 0x58e753
cmp dword [esi + 0xc], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0xe6642f9a
cmp ecx, 0xffb13444
jle 0x58e7ed
cmp ecx, 0xffb13445
je 0x58e829
cmp ecx, 0x20ab24e5
jne 0x58e7d0
jmp 0x58e5b8
cmp ecx, 0xbf25ae54
je 0x58e82d
cmp ecx, 0xe6642f9a
jne 0x58e7d0
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, bl
xor bh, cl
test cl, cl
mov ecx, 0xbf25ae54
mov eax, 0xffb13445
cmovne ecx, eax
test bl, bl
mov edi, 0xbf25ae54
cmove ecx, edi
test bh, bh
cmovne ecx, eax
jmp 0x58e7d0
mov ecx, edx
jmp 0x58e7d0
mov ecx, 0xffb13445
jmp 0x58e7d0
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dh
cmp edi, 0xa
setl bl
setge dl
cmp bl, dh
jne 0x58e567
or dl, al
test dl, 1
je 0x58e567
jmp 0x5918de
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x58e8bf
cmp edi, 0x88e9608c
je 0x58e8fe
cmp edi, 0xdf32ec89
jne 0x58e89b
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x58e89b
cmp edi, 0x30b7124c
je 0x58e957
cmp edi, 0x124998e2
jne 0x58e89b
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x58e89b
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea edi, [ecx + 1]
mov dword [esi + 4], ecx
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete cl
cmp ebx, 0xa
setl dl
xor dl, cl
mov ecx, 0xdf32ec89
mov edx, 0x30b7124c
cmovne ecx, edx
cmp edi, 0xffffffff
mov edi, ecx
cmove edi, edx
mov dword [esi + 8], ebx
cmp ebx, 0xa
cmovge edi, ecx
mov ecx, dword [esi + 0x18]
jmp 0x58e89b
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x58e9ab
cmp ecx, 0x88e9608c
je 0x58e9e6
cmp ecx, 0xdf32ec89
jne 0x58e984
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 4]
mov dword [eax], ecx
mov ecx, 0x88e9608c
jmp 0x58e984
cmp ecx, 0x30b7124c
je 0x58ea3a
cmp ecx, 0x124998e2
jne 0x58e984
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov eax, 0x88e9608c
cmovne edi, eax
test cl, cl
mov ecx, edi
cmovne ecx, eax
test dl, dl
cmove ecx, edi
jmp 0x58e984
mov eax, dword [esi + 0x60]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 4]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdf32ec89
mov eax, 0x30b7124c
cmovne ebx, eax
test edi, ecx
mov ecx, ebx
cmove ecx, eax
cmp edx, 0xa
cmovge ecx, ebx
mov edx, dword [esi + 0x18]
jmp 0x58e984
mov eax, dword [esi + 0x18]
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5cf6c4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x58ea6a
or cl, al
test cl, 1
jne 0x5918e2
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x58ee82
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmovne ebx, edi
cmp ecx, 0xffffffff
sete byte [esi + 0x28]
mov edi, ebx
mov ecx, 0x2601f5a7
cmove edi, ecx
cmp edx, 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov ecx, dword [eax]
mov dword [esi + 8], ecx
cmovge edi, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x58eafb
cmp edx, 0x87fb68d6
je 0x58eb32
cmp edx, 0xfc04dcc5
jne 0x58eadc
mov edx, 0x87fb68d6
jmp 0x58eadc
cmp edx, 0x2601f5a7
je 0x58eb36
cmp edx, 0x5a893bc4
jne 0x58eadc
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, bl
xor dh, dl
mov ecx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne ecx, eax
test dl, dl
mov edx, ecx
cmovne edx, eax
test bl, bl
cmove edx, ecx
jmp 0x58eadc
mov edx, edi
jmp 0x58eadc
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x58ed42
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x58eb7c
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x58ed42
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x34], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x58ec45
mov eax, dword [esi + 0x24]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0xc], ecx
cmp dword [esi + 0xc], 0
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
mov eax, 0x1b272c9a
jmp 0x58ebe9
mov eax, ecx
cmp eax, 0x4c6ca681
jle 0x58ec00
cmp eax, 0x4c6ca682
je 0x58ec35
cmp eax, 0x6707b2cf
jne 0x58ebe9
jmp 0x58ec3c
cmp eax, 0xf74fd645
je 0x58ebe7
cmp eax, 0x1b272c9a
jne 0x58ebe9
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov edi, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edi, ebx
test al, al
mov eax, edi
cmovne eax, ebx
test dl, dl
cmove eax, edi
jmp 0x58ebe9
mov eax, 0xf74fd645
jmp 0x58ebe9
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x24]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0xc], ecx
sete byte [esi + 0x10]
sete bl
mov eax, 0x4c6ca682
mov ecx, 0x6707b2cf
cmove eax, ecx
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl bh
mov edx, 0x4c6ca682
cmovge eax, edx
xor bh, bl
cmovne eax, ecx
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x58ec9f
cmp ebx, 0x4c6ca682
je 0x58ecda
cmp ebx, 0x6707b2cf
jne 0x58ec85
jmp 0x58ece5
cmp ebx, 0xf74fd645
je 0x58ece1
cmp ebx, 0x1b272c9a
jne 0x58ec85
movzx ecx, byte [esi + 0x10]
mov dh, byte [esi + 0x28]
mov dl, cl
xor dl, dh
test dh, dh
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test cl, cl
mov ecx, 0x4c6ca682
cmove ebx, ecx
test dl, dl
cmovne ebx, edi
jmp 0x58ec85
mov ebx, 0xf74fd645
jmp 0x58ec85
mov ebx, eax
jmp 0x58ec85
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x58ebb0
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x58eb6a
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x58eb6a
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete dl
setne al
cmp dword [esi + 0x34], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x58ed6e
or cl, al
jne 0x5918e0
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x58edb8
cmp eax, 0xcd5e6053
je 0x58ee1b
cmp eax, 0x18ed46ca
jne 0x58ed96
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x58ed96
cmp eax, 0x5499d804
je 0x58ee4a
cmp eax, 0x685e39a2
jne 0x58ed96
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x18ed46ca
mov edi, 0x5499d804
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x58ed96
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x18ed46ca
mov edi, 0x685e39a2
cmovne eax, edi
test cl, cl
mov ecx, 0x18ed46ca
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x58ed96
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x58ea6a
xor cl, al
jne 0x58ea6a
jmp 0x5918e2
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete byte [esi + 8]
cmp ecx, 0xa
setl bh
setge bl
mov edi, dword [esi + 0x5c]
cmp bh, byte [esi + 8]
jne 0x58df0c
or bl, dl
mov edi, dword [esi + 0x5c]
test bl, 1
je 0x58df0c
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dh
cmp ecx, 0xa
setl bl
mov dl, bl
xor dl, dh
test bl, dh
jne 0x58ef0c
test dl, dl
je 0x58eec5
mov edi, dword [esi + 0x5c]
jmp 0x58df0c
mov edi, dword [esi + 0x5c]
jmp 0x58df0c
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete ah
cmp ecx, 0xa
setl cl
setge al
cmp cl, ah
jne 0x58ef37
or al, dl
test al, 1
jne 0x5918c2
mov esp, dword [esi + 0x9c]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov ecx, dword [0x5cf6c4]
setne dh
cmp ecx, 0xa
setge dl
mov ebx, edx
xor bl, dh
or dl, dh
xor dl, 1
or dl, bl
push eax
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x68], edi
mov esp, edi
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x6c], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x64], edi
mov esp, edi
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, dl
je 0x58ef69
mov edx, dword [esi + 0x68]
add edx, 0x10
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x64]
add edx, 0x10
mov dword [esi + 0x80], edx
mov edi, 0xa
cmp edi, 0x1f4
jae 0x58fffc
mov ecx, dword [esi + 0x3c]
call fcn.004322e0
lea eax, [edi + 1]
imul edi, eax
shr edi, 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 8], eax
mov ecx, dword [0x5cf6c0]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x58f036
xor dl, al
je 0x5918d2
mov edx, dword [esi + 8]
mov eax, edx
imul eax, dword [esi + 4]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x34]
sbb eax, 0
jae 0x58f619
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 8]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x48], eax
mov eax, 0
mov ebx, dword [esi + 4]
sbb eax, ebx
mov dword [esi + 0x40], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0xc], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x38], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x24], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x40]
sbb ecx, edx
or ecx, eax
jne 0x58effb
mov edx, dword [0x5cf6c8]
mov ecx, dword [0x5cf6cc]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xeb760989
mov edi, 0x3b23d0b1
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x10]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov edi, dword [esi + 8]
mov dword [ecx], edi
mov edi, dword [esi + 4]
mov dword [ecx + 4], edi
mov edi, dword [esi + 0x8c]
mov dword [ecx + 8], edi
setl byte [esi + 0x28]
mov edi, dword [esi + 0xc]
mov dword [ecx + 0xc], edi
cmovge eax, edx
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x58f13c
cmp ecx, 0x20e9c049
je 0x58f153
cmp ecx, 0x3b23d0b1
jne 0x58f122
jmp 0x58f17e
cmp ecx, 0x9c6e8745
je 0x58f157
cmp ecx, 0xeb760989
jne 0x58f122
mov ecx, 0x20e9c049
jmp 0x58f122
mov ecx, eax
jmp 0x58f122
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x58f122
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x58f219
cmp ecx, 0xcfcad29c
je 0x58f25c
cmp ecx, 0x3aca7e6
jne 0x58f1fd
mov ecx, eax
jmp 0x58f1fd
cmp ecx, 0x7c4a5f2
je 0x58f255
cmp ecx, 0x389c0e25
jne 0x58f1fd
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x58f1fd
mov ecx, 0x3aca7e6
jmp 0x58f1fd
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x8e
mov ecx, dword [esi + 0x4c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x90
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x4c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x58f304
cmp eax, 0xc6e82640
je 0x58f36e
cmp eax, 0x950d98a
jne 0x58f2bf
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x58f2bf
cmp eax, 0x31a61df5
je 0x58f321
cmp eax, 0x4d86efb0
jne 0x58f2bf
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x58f2bf
mov ecx, dword [esi + 0x4c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x58f2bf
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf6cc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
setl dl
mov ebx, 0xeb760989
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x58f3ee
cmp ecx, 0x20e9c049
je 0x58f405
cmp ecx, 0x3b23d0b1
jne 0x58f3d4
jmp 0x58f430
cmp ecx, 0x9c6e8745
je 0x58f409
cmp ecx, 0xeb760989
jne 0x58f3d4
mov ecx, 0x20e9c049
jmp 0x58f3d4
mov ecx, eax
jmp 0x58f3d4
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xeb760989
mov ebx, 0x20e9c049
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x58f3d4
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x6c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x58f4cb
cmp ecx, 0xcfcad29c
je 0x58f509
cmp ecx, 0x3aca7e6
jne 0x58f4af
mov ecx, eax
jmp 0x58f4af
cmp ecx, 0x7c4a5f2
je 0x58f502
cmp ecx, 0x389c0e25
jne 0x58f4af
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x58f4af
mov ecx, 0x3aca7e6
jmp 0x58f4af
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x8e
mov ecx, dword [esi + 0x6c]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x8f
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x6c]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x58f5b1
cmp eax, 0xc6e82640
je 0x58effb
cmp eax, 0x950d98a
jne 0x58f56c
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x58f56c
cmp eax, 0x31a61df5
je 0x58f5ce
cmp eax, 0x4d86efb0
jne 0x58f56c
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x58f56c
mov ecx, dword [esi + 0x6c]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x4d86efb0
mov ebx, 0xc6e82640
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x58f56c
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x58f960
mov dword [esi + 0x58], 1
jmp 0x58f660
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x58f960
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne al
sete dl
cmp edi, 0xa
setge cl
setl ah
xor ah, dl
mov edx, dword [esi + 0x58]
mov dword [esi + 8], edx
jne 0x58f6b0
or cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 8], eax
je 0x58f6b0
jmp 0x5918d4
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push dword [esi + 0xc]
call fcn.00433980
cmp dword [esi + 8], 0
je 0x58f923
mov eax, dword [0x5cf6d8]
mov edx, dword [0x5cf6dc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
mov dword [esi + 0xc], ecx
mov dword [esi + 0x24], eax
test eax, ecx
sete byte [esi + 0x10]
mov ecx, 0xbf25ae54
mov ebx, 0x20ab24e5
cmove ecx, ebx
sete al
mov dword [esi + 4], edx
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, 0xbf25ae54
cmovge ecx, edx
setl dl
xor dl, al
mov eax, dword [esi + 0x3c]
mov edx, dword [eax]
mov eax, dword [esi + 8]
lea eax, [eax + eax*2]
mov dword [esi + 0x34], edx
lea eax, [edx + eax*4]
mov dword [esi + 0x38], eax
cmovne ecx, ebx
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x58f72f
cmp edx, 0xffb13445
je 0x58f76b
cmp edx, 0x20ab24e5
jne 0x58f715
jmp 0x58f776
cmp edx, 0xbf25ae54
je 0x58f76f
cmp edx, 0xe6642f9a
jne 0x58f715
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, al
xor ah, dl
test dl, dl
mov edx, 0xbf25ae54
mov edi, 0xffb13445
cmovne edx, edi
test al, al
mov ebx, 0xbf25ae54
cmove edx, ebx
test ah, ah
cmovne edx, edi
jmp 0x58f715
mov edx, ecx
jmp 0x58f715
mov edx, 0xffb13445
jmp 0x58f715
mov edx, dword [esi + 8]
dec edx
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax]
mov dword [esi + 0x48], edi
mov eax, dword [eax + 4]
mov dword [esi + 0x40], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov dword [esi + 8], edx
lea eax, [edx + edx*2]
mov edx, dword [esi + 0x34]
lea eax, [edx + eax*4]
mov dword [esi + 0x34], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x58f7cd
cmp eax, 0xffb13445
je 0x58f807
cmp eax, 0x20ab24e5
jne 0x58f7b6
jmp 0x58f812
cmp eax, 0xbf25ae54
je 0x58f80b
cmp eax, 0xe6642f9a
jne 0x58f7b6
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, al
xor bh, bl
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test bl, bl
mov edx, 0xbf25ae54
cmove eax, edx
test bh, bh
cmovne eax, edi
jmp 0x58f7b6
mov eax, ecx
jmp 0x58f7b6
mov eax, 0xffb13445
jmp 0x58f7b6
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [esi + 0x48]
cmp edx, dword [eax]
mov edx, dword [esi + 0x40]
sbb edx, dword [eax + 4]
jge 0x58f923
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x58f85c
cmp eax, 0xffb13445
je 0x58f896
cmp eax, 0x20ab24e5
jne 0x58f845
jmp 0x58f8a1
cmp eax, 0xbf25ae54
je 0x58f89a
cmp eax, 0xe6642f9a
jne 0x58f845
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, al
xor dh, dl
test al, al
mov eax, 0xbf25ae54
mov edi, 0xffb13445
cmovne eax, edi
test dl, dl
mov ebx, 0xbf25ae54
cmove eax, ebx
test dh, dh
cmovne eax, edi
jmp 0x58f845
mov eax, ecx
jmp 0x58f845
mov eax, 0xffb13445
jmp 0x58f845
mov eax, dword [esi + 0x24]
test dword [esi + 0xc], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x58f8de
cmp eax, 0xffb13445
je 0x58f918
cmp eax, 0x20ab24e5
jne 0x58f8c4
jmp 0x58f695
cmp eax, 0xbf25ae54
je 0x58f91c
cmp eax, 0xe6642f9a
jne 0x58f8c4
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, bl
xor bh, al
test al, al
mov eax, 0xbf25ae54
mov edx, 0xffb13445
cmovne eax, edx
test bl, bl
mov edi, 0xbf25ae54
cmove eax, edi
test bh, bh
cmovne eax, edx
jmp 0x58f8c4
mov eax, ecx
jmp 0x58f8c4
mov eax, 0xffb13445
jmp 0x58f8c4
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete ah
cmp edi, 0xa
setge dl
setl dh
xor dh, ah
jne 0x58f63e
or dl, al
je 0x58f63e
jmp 0x5918d6
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 4], edx
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x10]
mov dword [esi + 8], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x58f9b4
cmp edi, 0x88e9608c
je 0x58f9f3
cmp edi, 0xdf32ec89
jne 0x58f990
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x58f990
cmp edi, 0x30b7124c
je 0x58fa4d
cmp edi, 0x124998e2
jne 0x58f990
movzx ecx, byte [esi + 0x10]
mov bh, byte [esi + 0x28]
mov bl, cl
xor bl, bh
mov edx, 0xdf32ec89
mov edi, 0x88e9608c
cmovne edx, edi
test bh, bh
mov edi, edx
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
cmove edi, edx
jmp 0x58f990
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [0x5cf6e0]
mov ebx, dword [0x5cf6e4]
lea ecx, [edx + 1]
mov dword [esi + 4], edx
imul ecx, edx
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
mov edi, 0xdf32ec89
mov ecx, 0x30b7124c
cmove edi, ecx
sete cl
mov dword [esi + 8], ebx
cmp ebx, 0xa
mov edx, 0xdf32ec89
cmovge edi, edx
setl dl
xor dl, cl
mov ecx, 0x30b7124c
cmovne edi, ecx
jmp 0x58f990
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 8], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x58fa9c
cmp ecx, 0x88e9608c
je 0x58fadc
cmp ecx, 0xdf32ec89
jne 0x58fa78
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x58fa78
cmp ecx, 0x30b7124c
je 0x58fb2f
cmp ecx, 0x124998e2
jne 0x58fa78
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne ecx, ebx
test dl, dl
mov edi, 0xdf32ec89
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x58fa78
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov edi, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea ecx, [edi + 1]
imul ecx, edi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov edi, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne edi, ebx
cmp ecx, 0xffffffff
mov ecx, edi
cmove ecx, ebx
cmp edx, 0xa
cmovge ecx, edi
mov edx, dword [esi + 0x18]
jmp 0x58fa78
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf6c4], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x58fb63
or cl, al
jne 0x5918da
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x58ff6a
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov edi, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
mov dword [esi + 8], edx
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xfc04dcc5
mov edx, 0x2601f5a7
cmovne ebx, edx
test edi, ecx
sete byte [esi + 0x28]
mov edi, ebx
cmove edi, edx
cmp dword [esi + 8], 0xa
setl byte [esi + 0x18]
mov dword [esi + 4], eax
mov ecx, dword [eax]
mov dword [esi + 8], ecx
cmovge edi, ebx
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x58fbf1
cmp edx, 0x87fb68d6
je 0x58fc28
cmp edx, 0xfc04dcc5
jne 0x58fbd2
mov edx, 0x87fb68d6
jmp 0x58fbd2
cmp edx, 0x2601f5a7
je 0x58fc2c
cmp edx, 0x5a893bc4
jne 0x58fbd2
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov dh, bl
xor dh, dl
mov ecx, 0xfc04dcc5
mov eax, 0x87fb68d6
cmovne ecx, eax
test dl, dl
mov edx, ecx
cmovne edx, eax
test bl, bl
cmove edx, ecx
jmp 0x58fbd2
mov edx, edi
jmp 0x58fbd2
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], ecx
cmp dword [esi + 8], ecx
je 0x58fe3e
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x58fc72
mov eax, dword [esi + 8]
add eax, 8
mov dword [esi + 8], eax
cmp eax, dword [esi + 0x48]
je 0x58fe3e
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x34], 0xa
setl cl
or cl, al
mov byte [esi + 0x38], cl
jne 0x58fd3b
mov eax, dword [esi + 0x24]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0xc], ecx
cmp dword [esi + 0xc], 0
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
mov eax, 0x1b272c9a
jmp 0x58fcdf
mov eax, ecx
cmp eax, 0x4c6ca681
jle 0x58fcf6
cmp eax, 0x4c6ca682
je 0x58fd2b
cmp eax, 0x6707b2cf
jne 0x58fcdf
jmp 0x58fd32
cmp eax, 0xf74fd645
je 0x58fcdd
cmp eax, 0x1b272c9a
jne 0x58fcdf
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ah, dl
xor ah, al
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test al, al
mov eax, ebx
cmovne eax, edi
test dl, dl
cmove eax, ebx
jmp 0x58fcdf
mov eax, 0xf74fd645
jmp 0x58fcdf
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x24]
lea eax, [ecx + 1]
imul eax, ecx
mov ebx, eax
xor ebx, 0xfffffffe
mov edx, ebx
and edx, eax
sete dl
mov ecx, dword [esi + 4]
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmovne edx, edi
and ebx, eax
mov dword [esi + 0xc], ebx
sete byte [esi + 0x10]
mov ebx, edx
cmove ebx, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge ebx, edx
mov eax, 0x1b272c9a
cmp eax, 0x4c6ca681
jle 0x58fd9c
cmp eax, 0x4c6ca682
je 0x58fdd6
cmp eax, 0x6707b2cf
jne 0x58fd85
jmp 0x58fde1
cmp eax, 0xf74fd645
je 0x58fddd
cmp eax, 0x1b272c9a
jne 0x58fd85
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, al
xor dh, dl
test al, al
mov eax, 0x4c6ca682
mov ecx, 0xf74fd645
cmovne eax, ecx
test dl, dl
mov edi, 0x4c6ca682
cmove eax, edi
test dh, dh
cmovne eax, ecx
jmp 0x58fd85
mov eax, 0xf74fd645
jmp 0x58fd85
mov eax, ebx
jmp 0x58fd85
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x38], 0
je 0x58fca6
mov ecx, dword [eax + 4]
mov edx, 0x136
xor ecx, edx
mov eax, dword [eax]
mov edx, 0xf74f03be
xor eax, edx
or eax, ecx
jne 0x58fc60
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x40], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x34], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 4], eax
jmp 0x58fc60
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [esi + 0x34], 0xa
setge cl
setl ch
xor ch, dl
jne 0x58fe65
or cl, al
test cl, 1
jne 0x5918d8
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x58feaf
cmp eax, 0xcd5e6053
je 0x58ff09
cmp eax, 0x18ed46ca
jne 0x58fe8d
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x58fe8d
cmp eax, 0x5499d804
je 0x58ff33
cmp eax, 0x685e39a2
jne 0x58fe8d
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov edx, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov edi, 0x18ed46ca
mov ebx, 0x5499d804
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x58fe8d
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x58fe8d
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x58fb63
xor cl, al
jne 0x58fb63
jmp 0x5918da
mov ecx, dword [esi + 0x3c]
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
mov edi, dword [esi + 0x5c]
test dh, dl
jne 0x58efcd
xor dh, dl
mov edi, dword [esi + 0x5c]
jne 0x58efcd
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov eax, dword [0x5cf6c0]
mov ecx, dword [0x5cf6c4]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dh
setne bl
cmp ecx, 0xa
setl bh
setge dl
or dl, bl
cmp bh, dh
jne 0x58fff4
test dl, dl
jne 0x58ffaa
mov edi, dword [esi + 0x5c]
jmp 0x58efcd
mov edi, dword [esi + 0x5c]
jmp 0x58efcd
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete al
cmp ecx, 0xa
setl cl
test cl, al
jne 0x59001e
xor cl, al
je 0x5918c4
mov esp, dword [esi + 0x9c]
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea ebx, [ecx + 1]
imul ebx, ecx
test bl, 1
sete dh
cmp edi, 0xa
setge dl
setl al
or dl, bl
xor al, dh
xor dl, 1
or dl, al
push eax
sub esp, 8
mov dword [esi + 8], esp
sub esp, 0xc
mov dword [esi + 0x34], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x68], eax
mov esp, eax
push eax
mov dword [esi + 0x84], esp
sub esp, 0xc
mov dword [esi + 0x40], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x64], eax
mov esp, eax
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x60], esp
test dl, 1
je 0x59004e
mov eax, dword [esi + 0x68]
add eax, 0x10
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x64]
add eax, 0x10
mov dword [esi + 0x80], eax
mov ebx, 0xa
cmp ebx, 0x1f4
jae 0x5910ca
mov ecx, dword [esi + 8]
call fcn.004322e0
lea eax, [ebx + 1]
imul ebx, eax
shr ebx, 1
mov dword [esi + 0x48], ebx
mov dword [esi + 0x5c], eax
shr eax, 1
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], 0
mov eax, dword [esi + 0x3c]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
mov ecx, dword [0x5cf6c0]
lea eax, [ecx - 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov edi, dword [0x5cf6c4]
sete al
cmp edi, 0xa
setl dl
test dl, al
jne 0x59011c
xor dl, al
je 0x5918c8
mov edx, dword [esi + 4]
mov eax, edx
imul eax, dword [esi + 0xc]
mulx edx, ebx, edx
add eax, eax
add eax, edx
cmp ebx, dword [esi + 0x48]
sbb eax, 0
jae 0x5906f5
mov eax, dword [esi + 0x48]
mov edi, dword [esi + 4]
sub eax, edi
mov ecx, eax
mov dword [esi + 0x6c], eax
mov eax, 0
mov ebx, dword [esi + 0xc]
sbb eax, ebx
mov dword [esi + 0x4c], eax
add edi, 1
adc ebx, 0
push ebx
push edi
push eax
push ecx
call fcn.00594a90
mov dword [esi + 0x24], edx
mov edx, eax
mulx ecx, edx, edi
mov dword [esi + 0x58], edx
mov dword [esi + 0x8c], eax
mov edx, eax
mov dword [esi + 0x3c], ebx
imul edx, ebx
add ecx, edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0x38], edi
imul edx, edi
add edx, ecx
mov eax, dword [esi + 0x6c]
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
sbb ecx, edx
or ecx, eax
jne 0x5900e1
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete byte [esi + 0x10]
mov ecx, dword [0x5cf6cc]
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
sete dl
cmp ecx, 0xa
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 4]
mov dword [ecx], ebx
mov ebx, dword [esi + 0xc]
mov dword [ecx + 4], ebx
mov ebx, dword [esi + 0x8c]
mov dword [ecx + 8], ebx
setl byte [esi + 0x28]
mov ebx, dword [esi + 0x24]
mov dword [ecx + 0xc], ebx
setl cl
mov ebx, 0xeb760989
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x59021d
cmp ecx, 0x20e9c049
je 0x590234
cmp ecx, 0x3b23d0b1
jne 0x590203
jmp 0x590264
cmp ecx, 0x9c6e8745
je 0x590238
cmp ecx, 0xeb760989
jne 0x590203
mov ecx, 0x20e9c049
jmp 0x590203
mov ecx, eax
jmp 0x590203
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x590203
mov eax, dword [esi + 0x84]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf4d0]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf4d4]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x7c4a5f2
mov edi, 0xcfcad29c
cmove eax, edi
cmp edx, 0xa
mov edx, dword [esi + 0x34]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edx, dword [esi + 0x90]
mov dword [esi + 0x28], edx
setl byte [esi + 0x74]
mov edx, dword [esi + 0x68]
mov dword [esi + 0x10], edx
setl dl
mov ebx, 0x7c4a5f2
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x5902fb
cmp ecx, 0xcfcad29c
je 0x59033e
cmp ecx, 0x3aca7e6
jne 0x5902df
mov ecx, eax
jmp 0x5902df
cmp ecx, 0x7c4a5f2
je 0x590337
cmp ecx, 0x389c0e25
jne 0x5902df
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne ecx, ebx
test dl, dl
mov edi, 0x7c4a5f2
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5902df
mov ecx, 0x3aca7e6
jmp 0x5902df
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x91
mov ecx, dword [esi + 0x34]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x93
mov ecx, dword [esi + 8]
push dword [esi + 0x34]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x5903e1
cmp eax, 0xc6e82640
je 0x590444
cmp eax, 0x950d98a
jne 0x5903a1
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, ecx
xor dl, al
mov edx, 0x4d86efb0
mov edi, 0x31a61df5
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x5903a1
cmp eax, 0x31a61df5
je 0x5903fe
cmp eax, 0x4d86efb0
jne 0x5903a1
mov ecx, dword [esi + 0x34]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x5903a1
mov ecx, dword [esi + 0x34]
call fcn.0041d690
mov eax, dword [0x5cf6d0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4d86efb0
mov edi, 0xc6e82640
cmove eax, edi
cmp dword [0x5cf6d4], 0xa
mov edx, 0x4d86efb0
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x5903a1
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0x24]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [0x5cf6c8]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x5cf6cc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x10]
sete cl
mov eax, 0xeb760989
mov edi, 0x3b23d0b1
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
mov edx, dword [esi + 4]
mov dword [ebx + 8], edx
setl dl
mov ebx, 0xeb760989
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x9c6e8745
cmp ecx, 0x20e9c048
jle 0x5904c4
cmp ecx, 0x20e9c049
je 0x5904db
cmp ecx, 0x3b23d0b1
jne 0x5904aa
jmp 0x59050b
cmp ecx, 0x9c6e8745
je 0x5904df
cmp ecx, 0xeb760989
jne 0x5904aa
mov ecx, 0x20e9c049
jmp 0x5904aa
mov ecx, eax
jmp 0x5904aa
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xeb760989
mov ebx, 0x20e9c049
cmovne ecx, ebx
test dl, dl
mov edi, 0xeb760989
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x5904aa
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov edx, dword [0x5cf4d0]
mov ecx, dword [0x5cf4d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7c4a5f2
mov edi, 0xcfcad29c
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x40]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x28], ecx
setl byte [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
cmovge eax, edx
mov ecx, 0x389c0e25
cmp ecx, 0x7c4a5f1
jg 0x5905a6
cmp ecx, 0xcfcad29c
je 0x5905e4
cmp ecx, 0x3aca7e6
jne 0x59058a
mov ecx, eax
jmp 0x59058a
cmp ecx, 0x7c4a5f2
je 0x5905dd
cmp ecx, 0x389c0e25
jne 0x59058a
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x74]
mov ch, dl
xor ch, cl
mov edi, 0x7c4a5f2
mov ebx, 0x3aca7e6
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x59058a
mov ecx, 0x3aca7e6
jmp 0x59058a
mov dword [esi + 0x18], 2
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc0], 0x91
mov ecx, dword [esi + 0x40]
lea edx, [esi + 0x28]
push edx
lea edx, [esi + 0x10]
push edx
push eax
call fcn.00432de0
mov dword [esi + 0xc0], 0x92
mov ecx, dword [esi + 8]
push dword [esi + 0x40]
call fcn.004325a0
mov eax, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 0x18]
mov eax, 0x950d98a
cmp eax, 0x31a61df4
jg 0x59068b
cmp eax, 0xc6e82640
je 0x5900e1
cmp eax, 0x950d98a
jne 0x590646
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 0x18]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x4d86efb0
mov edi, 0x31a61df5
cmovne eax, edi
test cl, cl
mov ecx, 0x4d86efb0
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x590646
cmp eax, 0x31a61df5
je 0x5906a8
cmp eax, 0x4d86efb0
jne 0x590646
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov eax, 0x31a61df5
jmp 0x590646
mov ecx, dword [esi + 0x40]
call fcn.0041d690
mov edx, dword [0x5cf6d0]
mov ecx, dword [0x5cf6d4]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x4d86efb0
mov edi, 0xc6e82640
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x590646
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 2
jb 0x590a2f
mov dword [esi + 0x58], 1
jmp 0x59073c
mov ebx, dword [esi + 0x58]
inc ebx
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
mov dword [esi + 0x58], ebx
cmp ebx, edx
jae 0x590a2f
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp edi, 0xa
setge cl
setl ch
xor ch, dl
mov edx, dword [esi + 0x58]
mov dword [esi + 0xc], edx
jne 0x590785
or cl, al
mov eax, dword [esi + 0x58]
mov dword [esi + 0xc], eax
test cl, 1
je 0x590785
jmp 0x5918ca
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
push edx
call fcn.00433980
cmp dword [esi + 0xc], 0
je 0x5909f2
mov eax, dword [0x5cf6d8]
mov ebx, dword [0x5cf6dc]
lea edi, [eax + 1]
imul edi, eax
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete al
cmp ebx, 0xa
setl dl
xor dl, al
mov eax, 0xbf25ae54
mov edx, 0x20ab24e5
cmovne eax, edx
mov dword [esi + 0x38], ecx
test ecx, edi
sete byte [esi + 0x10]
mov ecx, eax
cmove ecx, edx
mov dword [esi + 0x24], ebx
cmp ebx, 0xa
cmovge ecx, eax
mov dword [esi + 4], ecx
setl byte [esi + 0x28]
mov eax, dword [esi + 8]
mov ecx, dword [eax]
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*2]
mov dword [esi + 0x48], ecx
lea eax, [ecx + edx*4]
mov dword [esi + 0x3c], eax
mov edx, 0xe6642f9a
cmp edx, 0xffb13444
jle 0x590806
cmp edx, 0xffb13445
je 0x590842
cmp edx, 0x20ab24e5
jne 0x5907ec
jmp 0x59084e
cmp edx, 0xbf25ae54
je 0x590847
cmp edx, 0xe6642f9a
jne 0x5907ec
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, dl
xor ah, al
test dl, dl
mov edx, 0xbf25ae54
mov ecx, 0xffb13445
cmovne edx, ecx
test al, al
mov ebx, 0xbf25ae54
cmove edx, ebx
test ah, ah
cmovne edx, ecx
jmp 0x5907ec
mov edx, dword [esi + 4]
jmp 0x5907ec
mov edx, 0xffb13445
jmp 0x5907ec
mov ecx, dword [esi + 0xc]
dec ecx
test dword [esi + 0x38], edi
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esi + 0x6c], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x4c], eax
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov dword [esi + 0xc], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x48]
lea eax, [ecx + eax*4]
mov dword [esi + 0x48], eax
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5908a2
cmp eax, 0xffb13445
je 0x5908dc
cmp eax, 0x20ab24e5
jne 0x59088b
jmp 0x5908e8
cmp eax, 0xbf25ae54
je 0x5908e1
cmp eax, 0xe6642f9a
jne 0x59088b
movzx ebx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov bh, bl
xor bh, al
test al, al
mov eax, 0xbf25ae54
mov ecx, 0xffb13445
cmovne eax, ecx
test bl, bl
mov edx, 0xbf25ae54
cmove eax, edx
test bh, bh
cmovne eax, ecx
jmp 0x59088b
mov eax, dword [esi + 4]
jmp 0x59088b
mov eax, 0xffb13445
jmp 0x59088b
mov eax, dword [esi + 0x48]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x6c]
cmp ecx, dword [eax]
mov ecx, dword [esi + 0x4c]
sbb ecx, dword [eax + 4]
jge 0x5909f2
test dword [esi + 0x38], edi
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x59092f
cmp eax, 0xffb13445
je 0x590969
cmp eax, 0x20ab24e5
jne 0x590918
jmp 0x590975
cmp eax, 0xbf25ae54
je 0x59096e
cmp eax, 0xe6642f9a
jne 0x590918
movzx edx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov dh, al
xor dh, dl
test al, al
mov eax, 0xbf25ae54
mov ecx, 0xffb13445
cmovne eax, ecx
test dl, dl
mov ebx, 0xbf25ae54
cmove eax, ebx
test dh, dh
cmovne eax, ecx
jmp 0x590918
mov eax, dword [esi + 4]
jmp 0x590918
mov eax, 0xffb13445
jmp 0x590918
test dword [esi + 0x38], edi
mov eax, dword [esi + 0x48]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
sete byte [esi + 0x10]
cmp dword [esi + 0x24], 0xa
setl byte [esi + 0x28]
mov eax, 0xe6642f9a
cmp eax, 0xffb13444
jle 0x5909ac
cmp eax, 0xffb13445
je 0x5909e6
cmp eax, 0x20ab24e5
jne 0x590992
jmp 0x59076c
cmp eax, 0xbf25ae54
je 0x5909eb
cmp eax, 0xe6642f9a
jne 0x590992
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov ch, cl
xor ch, al
test al, al
mov eax, 0xbf25ae54
mov ebx, 0xffb13445
cmovne eax, ebx
test cl, cl
mov edi, 0xbf25ae54
cmove eax, edi
test ch, ch
cmovne eax, ebx
jmp 0x590992
mov eax, dword [esi + 4]
jmp 0x590992
mov eax, 0xffb13445
jmp 0x590992
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete ah
setne al
cmp edi, 0xa
setl dh
setge dl
cmp dh, ah
jne 0x59071a
or dl, al
je 0x59071a
jmp 0x5918cc
mov edx, dword [0x5cf6e0]
mov ecx, dword [0x5cf6e4]
lea edi, [edx + 1]
mov dword [esi + 0xc], edx
imul edi, edx
mov ebx, edi
xor ebx, 0xfffffffe
test ebx, edi
sete byte [esi + 0x10]
mov dword [esi + 4], ecx
cmp ecx, 0xa
setl byte [esi + 0x28]
mov edi, 0x124998e2
cmp edi, 0x124998e1
jg 0x590a82
cmp edi, 0x88e9608c
je 0x590ac2
cmp edi, 0xdf32ec89
jne 0x590a5e
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov edi, 0x88e9608c
jmp 0x590a5e
cmp edi, 0x30b7124c
je 0x590b1b
cmp edi, 0x124998e2
jne 0x590a5e
movzx ebx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov bh, cl
xor bh, bl
test cl, cl
mov edi, 0xdf32ec89
mov edx, 0x88e9608c
cmovne edi, edx
test bl, bl
mov ecx, 0xdf32ec89
cmove edi, ecx
test bh, bh
cmovne edi, edx
jmp 0x590a5e
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [0x5cf6e0]
mov edx, dword [0x5cf6e4]
lea edi, [ecx - 1]
mov dword [esi + 0xc], ecx
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete cl
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xdf32ec89
mov ebx, 0x30b7124c
cmovne ecx, ebx
cmp edi, 0xffffffff
mov edi, ecx
cmove edi, ebx
mov dword [esi + 4], edx
cmp edx, 0xa
cmovge edi, ecx
mov ecx, dword [esi + 0x18]
jmp 0x590a5e
mov ecx, dword [esi + 0xc]
lea eax, [ecx - 1]
imul eax, ecx
mov ecx, dword [esi + 0x18]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
sete byte [esi + 0x10]
cmp dword [esi + 4], 0xa
setl byte [esi + 0x28]
mov ecx, 0x124998e2
cmp ecx, 0x124998e1
jg 0x590b6a
cmp ecx, 0x88e9608c
je 0x590ba1
cmp ecx, 0xdf32ec89
jne 0x590b46
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, 0x88e9608c
jmp 0x590b46
cmp ecx, 0x30b7124c
je 0x590bef
cmp ecx, 0x124998e2
jne 0x590b46
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0xdf32ec89
mov ebx, 0x88e9608c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x590b46
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [0x5cf6e0]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
mov ecx, 0xdf32ec89
mov edi, 0x30b7124c
cmove ecx, edi
cmp dword [0x5cf6e4], 0xa
mov ebx, 0xdf32ec89
cmovge ecx, ebx
setl dh
xor dh, dl
cmovne ecx, edi
jmp 0x590b46
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5cf6c4], 0xa
setl cl
test cl, al
jne 0x590c1d
xor cl, al
je 0x5918d0
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [esi + 0x60]
cmp eax, dword [ecx]
je 0x59103a
mov ecx, dword [esi + 0x54]
call fcn.005936c0
mov ecx, dword [0x5cf6e8]
mov edx, dword [0x5cf6ec]
lea edi, [ecx + 1]
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0x28]
sete bl
mov ecx, 0xfc04dcc5
mov edi, 0x2601f5a7
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 0x18]
setl dl
mov dword [esi + 0xc], eax
mov eax, dword [eax]
mov dword [esi + 4], eax
mov eax, 0xfc04dcc5
cmovge ecx, eax
xor dl, bl
cmovne ecx, edi
mov edx, 0x5a893bc4
cmp edx, 0x2601f5a6
jg 0x590ca6
cmp edx, 0x87fb68d6
je 0x590ce2
cmp edx, 0xfc04dcc5
jne 0x590c87
mov edx, 0x87fb68d6
jmp 0x590c87
cmp edx, 0x2601f5a7
je 0x590ce6
cmp edx, 0x5a893bc4
jne 0x590c87
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 0x18]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xfc04dcc5
mov edi, 0x87fb68d6
cmovne edx, edi
test bl, bl
mov eax, 0xfc04dcc5
cmove edx, eax
test bh, bh
cmovne edx, edi
jmp 0x590c87
mov edx, ecx
jmp 0x590c87
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x4c], ecx
cmp dword [esi + 4], ecx
je 0x590f0e
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x590d2c
mov eax, dword [esi + 4]
add eax, 8
mov dword [esi + 4], eax
cmp eax, dword [esi + 0x4c]
je 0x590f0e
mov eax, dword [esi + 0x48]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete dl
cmp dword [esi + 0x3c], 0xa
setge al
setl ah
or al, cl
xor ah, dl
xor al, 1
or al, ah
mov byte [esi + 0x38], al
test al, 1
jne 0x590e05
mov eax, dword [esi + 0x24]
lea edx, [eax + 1]
imul edx, eax
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
test ecx, ecx
sete byte [esi + 0x10]
sete al
mov ecx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove ecx, edi
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0x4c6ca682
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
mov edx, 0x1b272c9a
jmp 0x590d9f
mov edx, ecx
cmp edx, 0x4c6ca681
jle 0x590db9
cmp edx, 0x4c6ca682
je 0x590df5
cmp edx, 0x6707b2cf
jne 0x590d9f
jmp 0x590dfc
cmp edx, 0xf74fd645
je 0x590d9d
cmp edx, 0x1b272c9a
jne 0x590d9f
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0x28]
mov ah, dl
xor ah, al
test dl, dl
mov edx, 0x4c6ca682
mov ebx, 0xf74fd645
cmovne edx, ebx
test al, al
mov edi, 0x4c6ca682
cmove edx, edi
test ah, ah
cmovne edx, ebx
jmp 0x590d9f
mov edx, 0xf74fd645
jmp 0x590d9f
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x24]
lea edx, [eax + 1]
imul edx, eax
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete byte [esi + 0x10]
sete ah
mov edx, 0x4c6ca682
mov edi, 0x6707b2cf
cmove edx, edi
cmp dword [esi + 0xc], 0xa
setl byte [esi + 0x28]
setl bl
mov edi, 0x4c6ca682
cmovge edx, edi
xor bl, ah
mov eax, 0x6707b2cf
cmovne edx, eax
mov ebx, 0x1b272c9a
cmp ebx, 0x4c6ca681
jle 0x590e65
cmp ebx, 0x4c6ca682
je 0x590ea6
cmp ebx, 0x6707b2cf
jne 0x590e4b
jmp 0x590eb1
cmp ebx, 0xf74fd645
je 0x590ead
cmp ebx, 0x1b272c9a
jne 0x590e4b
movzx eax, byte [esi + 0x10]
movzx ebx, byte [esi + 0x28]
mov ah, al
xor ah, bl
test bl, bl
mov ebx, 0x4c6ca682
mov edi, 0xf74fd645
cmovne ebx, edi
test al, al
mov edi, 0x4c6ca682
cmove ebx, edi
test ah, ah
mov eax, 0xf74fd645
cmovne ebx, eax
jmp 0x590e4b
mov ebx, 0xf74fd645
jmp 0x590e4b
mov ebx, edx
jmp 0x590e4b
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x18]
test byte [esi + 0x38], 1
je 0x590d68
mov eax, dword [edx + 4]
mov ecx, 0x136
xor eax, ecx
mov ecx, dword [edx]
mov edx, 0xf74f03be
xor ecx, edx
or ecx, eax
jne 0x590d1a
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov eax, dword [0x5cf6c0]
mov dword [esi + 0x48], eax
mov eax, dword [0x5cf6c4]
mov dword [esi + 0x3c], eax
mov eax, dword [0x5cf6f0]
mov dword [esi + 0x24], eax
mov eax, dword [0x5cf6f4]
mov dword [esi + 0xc], eax
jmp 0x590d1a
mov ecx, dword [esi + 0x48]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete al
cmp dword [esi + 0x3c], 0xa
setl cl
test cl, al
jne 0x590f34
xor cl, al
je 0x5918ce
mov eax, dword [0x5cf6f8]
mov ecx, dword [0x5cf6fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0x28]
mov eax, 0xcd5e6053
cmp eax, 0x5499d803
jg 0x590f7e
cmp eax, 0xcd5e6053
je 0x590fd3
cmp eax, 0x18ed46ca
jne 0x590f5c
mov eax, dword [esi + 0x54]
add dword [eax], 0xc
mov eax, 0x685e39a2
jmp 0x590f5c
cmp eax, 0x5499d804
je 0x590ffd
cmp eax, 0x685e39a2
jne 0x590f5c
mov eax, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add dword [eax], 0xc
mov eax, dword [0x5cf6f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x18ed46ca
mov edi, 0x5499d804
cmove eax, edi
cmp dword [0x5cf6fc], 0xa
mov edx, 0x18ed46ca
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x590f5c
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0x28]
mov edx, ecx
xor dl, al
mov edx, 0x18ed46ca
mov edi, 0x685e39a2
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x590f5c
mov eax, dword [esi + 0x18]
mov eax, dword [0x5cf6c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5cf6c4], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x590c1d
or cl, al
je 0x590c1d
jmp 0x5918d0
mov ecx, dword [esi + 8]
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete bl
cmp edi, 0xa
setge al
setl ah
xor ah, bl
mov ebx, dword [esi + 0x5c]
jne 0x5900b3
or al, dl
mov ebx, dword [esi + 0x5c]
test al, 1
je 0x5900b3
mov edi, dword [esi + 8]
mov ecx, edi
call fcn.0041d7f0
mov ecx, edi
call fcn.0041d7f0
mov ecx, dword [0x5cf6c0]
mov edi, dword [0x5cf6c4]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete al
cmp edi, 0xa
setl ah
mov dl, ah
xor dl, al
test ah, al
jne 0x5910c2
test dl, dl
je 0x59107b
mov ebx, dword [esi + 0x5c]
jmp 0x5900b3
mov ebx, dword [esi + 0x5c]
jmp 0x5900b3
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete cl
cmp edi, 0xa
setl al
test al, cl
jne 0x5910ec
xor al, cl
je 0x5918c6
mov esp, dword [esi + 0xa0]
mov eax, 0x57676505
jmp 0x58a025
mov eax, 0x5ae21c5b
mov esp, dword [esi + 0x94]
jmp 0x580da1
mov esp, dword [esi + 0x94]
mov eax, dword [0x5d21a0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0xf60420d1
mov edi, 0x8c5f966a
cmove eax, edi
cmp dword [0x5d21a4], 0xa
mov edx, 0xf60420d1
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x580da1
mov eax, 0x1bdfd7df
mov esp, dword [esi + 0x8c]
jmp 0x56b280
mov esp, dword [esi + 0x98]
mov eax, dword [0x5d2198]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0xd7a09326
mov edi, 0xbbb61ac6
cmove eax, edi
cmp dword [0x5d219c], 0xa
mov edx, 0xd7a09326
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x56b280
mov esp, dword [esi + 0x70]
mov eax, dword [esi + 0xac]
mov dword [eax + 4], 0
mov dword [eax], 5
push eax
call fcn.00435d50
add esp, 4
mov dword [esi + 0xc0], 0xffffffff
call fcn.004424c0
mov eax, 0x906c5f3e
jmp 0x545430
mov esp, dword [esi + 0xac]
mov eax, dword [esi + 0x6c]
mov dword [eax + 4], 0
mov dword [eax], 5
push eax
call fcn.00435d50
add esp, 4
mov dword [esi + 0xc0], 0xffffffff
call fcn.004424c0
mov edx, dword [0x5d2190]
mov ecx, dword [0x5d2194]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xae95292b
mov edi, 0x146672b3
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x545430
jmp 0x591250
jmp 0x591260
jmp 0x591270
jmp 0x591280
jmp 0x591290
jmp 0x5912a0
jmp 0x5912b0
jmp 0x5912c0
jmp 0x5912d0
jmp 0x5912e0
jmp 0x5912f0
jmp 0x591300
jmp 0x591310
jmp 0x591320
jmp 0x591330
jmp 0x591340
jmp 0x591350
jmp 0x591360
jmp 0x591370
jmp 0x591380
jmp 0x591390
jmp 0x5913a0
jmp 0x5913b0
jmp 0x5913c0
jmp 0x5913d0
jmp 0x5913e0
jmp 0x5913f0
jmp 0x591400
jmp 0x591410
jmp 0x591420
jmp 0x591430
jmp 0x591440
jmp 0x591450
jmp 0x591460
jmp 0x591470
jmp 0x591480
jmp 0x591490
jmp 0x5914a0
jmp 0x5914b0
jmp 0x5914c0
jmp 0x5914d0
jmp 0x5914e0
jmp 0x5914f0
jmp 0x591500
jmp 0x591510
jmp 0x591520
jmp 0x591530
jmp 0x591540
jmp 0x591550
jmp 0x591560
jmp 0x591570
jmp 0x591580
mov eax, dword [esi + 0xb8]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
jmp 0x5915a0
jmp 0x5915b0
jmp 0x5915c0
jmp 0x5915d0
jmp 0x5915e0
jmp 0x5915f0
jmp 0x591600
jmp 0x591610
jmp 0x591612
jmp 0x591614
jmp 0x591616
jmp 0x591618
jmp 0x59161a
jmp 0x59161c
jmp 0x59161e
jmp 0x591620
jmp 0x591622
jmp 0x591624
jmp 0x591626
jmp 0x591628
jmp 0x59162a
jmp 0x59162c
jmp 0x59162e
jmp 0x591630
jmp 0x591632
jmp 0x591634
jmp 0x591636
jmp 0x591638
jmp 0x59163a
jmp 0x59163c
jmp 0x59163e
jmp 0x591640
jmp 0x591642
jmp 0x591644
jmp 0x591646
jmp 0x591648
jmp 0x59164a
jmp 0x59164c
jmp 0x59164e
jmp 0x591650
jmp 0x591652
jmp 0x591654
jmp 0x591656
jmp 0x591658
jmp 0x59165a
jmp 0x59165c
jmp 0x59165e
jmp 0x591660
jmp 0x591662
jmp 0x591664
jmp 0x591666
jmp 0x591668
jmp 0x59166a
jmp 0x59166c
jmp 0x59166e
jmp 0x591670
jmp 0x591672
jmp 0x591674
jmp 0x591676
jmp 0x591678
jmp 0x59167a
jmp 0x59167c
jmp 0x59167e
jmp 0x591680
jmp 0x591682
jmp 0x591684
jmp 0x591686
jmp 0x591688
jmp 0x59168a
jmp 0x59168c
jmp 0x59168e
jmp 0x591690
jmp 0x591692
jmp 0x591694
jmp 0x591696
jmp 0x591698
jmp 0x59169a
jmp 0x59169c
jmp 0x59169e
jmp 0x5916a0
jmp 0x5916a2
jmp 0x5916a4
jmp 0x5916a6
jmp 0x5916a8
jmp 0x5916aa
jmp 0x5916ac
jmp 0x5916ae
jmp 0x5916b0
jmp 0x5916b2
jmp 0x5916b4
jmp 0x5916b6
jmp 0x5916b8
jmp 0x5916ba
jmp 0x5916bc
jmp 0x5916be
jmp 0x5916c0
jmp 0x5916c2
jmp 0x5916c4
jmp 0x5916c6
jmp 0x5916c8
jmp 0x5916ca
jmp 0x5916cc
jmp 0x5916ce
jmp 0x5916d0
jmp 0x5916d2
jmp 0x5916d4
jmp 0x5916d6
jmp 0x5916d8
jmp 0x5916da
jmp 0x5916dc
jmp 0x5916de
jmp 0x5916e0
jmp 0x5916e2
jmp 0x5916e4
jmp 0x5916e6
jmp 0x5916e8
jmp 0x5916ea
jmp 0x5916ec
jmp 0x5916ee
jmp 0x5916f0
jmp 0x5916f2
jmp 0x5916f4
jmp 0x5916f6
jmp 0x5916f8
jmp 0x5916fa
jmp 0x5916fc
jmp 0x5916fe
jmp 0x591700
jmp 0x591702
jmp 0x591704
jmp 0x591706
jmp 0x591708
jmp 0x59170a
jmp 0x59170c
jmp 0x59170e
jmp 0x591710
jmp 0x591712
jmp 0x591714
jmp 0x591716
jmp 0x591718
jmp 0x59171a
jmp 0x59171c
jmp 0x59171e
jmp 0x591720
jmp 0x591722
jmp 0x591724
jmp 0x591726
jmp 0x591728
jmp 0x59172a
jmp 0x59172c
jmp 0x59172e
jmp 0x591730
jmp 0x591732
jmp 0x591734
jmp 0x591736
jmp 0x591738
jmp 0x59173a
jmp 0x59173c
jmp 0x59173e
jmp 0x591740
jmp 0x591742
jmp 0x591744
jmp 0x591746
jmp 0x591748
jmp 0x59174a
jmp 0x59174c
jmp 0x59174e
jmp 0x591750
jmp 0x591752
jmp 0x591754
jmp 0x591756
jmp 0x591758
jmp 0x59175a
jmp 0x59175c
jmp 0x59175e
jmp 0x591760
jmp 0x591762
jmp 0x591764
jmp 0x591766
jmp 0x591768
jmp 0x59176a
jmp 0x59176c
jmp 0x59176e
jmp 0x591770
jmp 0x591772
jmp 0x591774
jmp 0x591776
jmp 0x591778
jmp 0x59177a
jmp 0x59177c
jmp 0x59177e
jmp 0x591780
jmp 0x591782
jmp 0x591784
jmp 0x591786
jmp 0x591788
jmp 0x59178a
jmp 0x59178c
jmp 0x59178e
jmp 0x591790
jmp 0x591792
jmp 0x591794
jmp 0x591796
jmp 0x591798
jmp 0x59179a
jmp 0x59179c
jmp 0x59179e
jmp 0x5917a0
jmp 0x5917a2
jmp 0x5917a4
jmp 0x5917a6
jmp 0x5917a8
jmp 0x5917aa
jmp 0x5917ac
jmp 0x5917ae
jmp 0x5917b0
jmp 0x5917b2
jmp 0x5917b4
jmp 0x5917b6
jmp 0x5917b8
jmp 0x5917ba
jmp 0x5917bc
jmp 0x5917be
jmp 0x5917c0
jmp 0x5917c2
jmp 0x5917c4
jmp 0x5917c6
jmp 0x5917c8
jmp 0x5917ca
jmp 0x5917cc
jmp 0x5917ce
jmp 0x5917d0
jmp 0x5917d2
jmp 0x5917d4
jmp 0x5917d6
jmp 0x5917d8
jmp 0x5917da
jmp 0x5917dc
jmp 0x5917de
jmp 0x5917e0
jmp 0x5917e2
jmp 0x5917e4
jmp 0x5917e6
jmp 0x5917e8
jmp 0x5917ea
jmp 0x5917ec
jmp 0x5917ee
jmp 0x5917f0
jmp 0x5917f2
jmp 0x5917f4
jmp 0x5917f6
jmp 0x5917f8
jmp 0x5917fa
jmp 0x5917fc
jmp 0x5917fe
jmp 0x591800
jmp 0x591802
jmp 0x591804
jmp 0x591806
jmp 0x591808
jmp 0x59180a
jmp 0x59180c
jmp 0x59180e
jmp 0x591810
jmp 0x591812
jmp 0x591814
jmp 0x591816
jmp 0x591818
jmp 0x59181a
jmp 0x59181c
jmp 0x59181e
jmp 0x591820
jmp 0x591822
jmp 0x591824
jmp 0x591826
jmp 0x591828
jmp 0x59182a
jmp 0x59182c
jmp 0x59182e
jmp 0x591830
jmp 0x591832
jmp 0x591834
jmp 0x591836
jmp 0x591838
jmp 0x59183a
jmp 0x59183c
jmp 0x59183e
jmp 0x591840
jmp 0x591842
jmp 0x591844
jmp 0x591846
jmp 0x591848
jmp 0x59184a
jmp 0x59184c
jmp 0x59184e
jmp 0x591850
jmp 0x591852
jmp 0x591854
jmp 0x591856
jmp 0x591858
jmp 0x59185a
jmp 0x59185c
jmp 0x59185e
jmp 0x591860
jmp 0x591862
jmp 0x591864
jmp 0x591866
jmp 0x591868
jmp 0x59186a
jmp 0x59186c
jmp 0x59186e
jmp 0x591870
jmp 0x591872
jmp 0x591874
jmp 0x591876
jmp 0x591878
jmp 0x59187a
jmp 0x59187c
jmp 0x59187e
jmp 0x591880
jmp 0x591882
jmp 0x591884
jmp 0x591886
jmp 0x591888
jmp 0x59188a
jmp 0x59188c
jmp 0x59188e
jmp 0x591890
jmp 0x591892
jmp 0x591894
jmp 0x591896
jmp 0x591898
jmp 0x59189a
jmp 0x59189c
jmp 0x59189e
jmp 0x5918a0
jmp 0x5918a2
jmp 0x5918a4
jmp 0x5918a6
jmp 0x5918a8
jmp 0x5918aa
jmp 0x5918ac
jmp 0x5918ae
jmp 0x5918b0
jmp 0x5918b2
jmp 0x5918b4
jmp 0x5918b6
jmp 0x5918b8
jmp 0x5918ba
jmp 0x5918bc
jmp 0x5918be
jmp 0x5918c0
jmp 0x5918c2
jmp 0x5918c4
jmp 0x5918c6
jmp 0x5918c8
jmp 0x5918ca
jmp 0x5918cc
jmp 0x5918ce
jmp 0x5918d0
jmp 0x5918d2
jmp 0x5918d4
jmp 0x5918d6
jmp 0x5918d8
jmp 0x5918da
jmp 0x5918dc
jmp 0x5918de
jmp 0x5918e0
jmp 0x5918e2
jmp 0x5918e4
jmp 0x5918e6
jmp 0x5918e8
jmp 0x5918ea
jmp 0x5918ec
jmp 0x5918ee
jmp 0x5918f0
jmp 0x5918f2
jmp 0x5918f4
jmp 0x5918f6
jmp 0x5918f8
jmp 0x5918fa
jmp 0x5918fc
jmp 0x5918fe
jmp 0x591900
jmp 0x591902
jmp 0x591904
jmp 0x591906
jmp 0x591908
jmp 0x59190a
jmp 0x59190c
jmp 0x59190e
jmp 0x591910
jmp 0x591912
jmp 0x591914
jmp 0x591916
jmp 0x591918
jmp 0x59191a
jmp 0x59191c
jmp 0x59191e
jmp 0x591920
jmp 0x591922
jmp 0x591924
jmp 0x591926
jmp 0x591928
jmp 0x59192a
jmp 0x59192c
jmp 0x59192e
jmp 0x591930
jmp 0x591932
jmp 0x591934
jmp 0x591936
jmp 0x591938
jmp 0x59193a
jmp 0x59193c
jmp 0x59193e
jmp 0x591940
jmp 0x591942
jmp 0x591944
jmp 0x591946
jmp 0x591948