Function at 0x688718
Capabilities:
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffc38
mov edi, eax
mov eax, dword [edi + 0x38]
cmp eax, dword [edx + 0x38]
jne 0x68af7b
mov eax, dword [edi + 0x3c]
cmp eax, dword [edx + 0x3c]
jne 0x68af7b
cmp byte [edi + 0x52], 2
je 0x68af7b
xor eax, eax
mov dword [esp + 0x3b0], eax
xor eax, eax
mov dword [esp + 0x388], eax
mov dword [esp + 0x38c], eax
xor eax, eax
mov dword [esp + 0x390], eax
mov dword [esp], edx
mov eax, dword [esp]
mov al, byte [eax + 0x50]
test al, al
je case.0x688785.0
and eax, 0x7f
cmp eax, 0xa
ja case.0x688785.0
jmp dword [eax*4 + 0x68878c]
xor eax, eax
mov al, byte [edi + 0x50]
cmp eax, 0xa
ja case.0x688785.0
jmp dword [eax*4 + 0x6887cd]
mov eax, dword [edi + 0x10]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov byte [eax + 2], 0
mov eax, dword [esp + 0x3c]
mov byte [eax], 0
mov eax, dword [esp + 0x3c]
mov byte [eax + 1], 0
mov eax, dword [edi + 0x10]
add eax, 3
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
mov byte [eax + 2], 0xff
mov eax, dword [esp + 0x40]
mov byte [eax], 0xff
mov eax, dword [esp + 0x40]
mov byte [eax + 1], 0xff
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68888e
inc ebx
xor ebp, ebp
mov edx, ebp
mov eax, dword [esp + 0xc]
call fcn.0067cdf8
test eax, eax
setne al
mov byte [esi], al
inc esi
inc ebp
dec ebx
jne 0x688877
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x688851
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x6888fa
inc ebx
xor ebp, ebp
mov edx, ebp
mov eax, dword [esp + 0xc]
call fcn.0067cdf8
test eax, eax
setne al
mov edx, eax
shl eax, 8
sub eax, edx
mov byte [esi], al
inc esi
inc ebp
dec ebx
jne 0x6888dc
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x6888b6
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68896c
inc ebx
xor ebp, ebp
mov edx, ebp
mov eax, dword [esp + 0xc]
call fcn.0067cdf8
test eax, eax
setne al
and eax, 0x7f
mov edx, eax
shl eax, 0x10
sub eax, edx
mov word [esi], ax
add esi, 2
inc ebp
dec ebx
jne 0x688948
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x688922
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x6889f1
inc ebx
xor ebp, ebp
mov edx, ebp
mov eax, dword [esp + 0xc]
call fcn.0067cdf8
test eax, eax
setne al
and eax, 0x7f
mov edx, eax
shl eax, 8
sub eax, edx
mov dword [esp + 8], eax
mov al, byte [esp + 8]
mov byte [esi], al
inc esi
mov al, byte [esp + 8]
mov byte [esi], al
inc esi
mov al, byte [esp + 8]
mov byte [esi], al
inc esi
inc ebp
dec ebx
jne 0x6889ba
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x688994
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x688a7a
inc ebx
xor ebp, ebp
mov edx, ebp
mov eax, dword [esp + 0xc]
call fcn.0067cdf8
test eax, eax
setne al
and eax, 0x7f
mov edx, eax
shl eax, 8
sub eax, edx
mov dword [esp + 8], eax
mov al, byte [esp + 8]
mov byte [esi], al
inc esi
mov al, byte [esp + 8]
mov byte [esi], al
inc esi
mov al, byte [esp + 8]
mov byte [esi], al
inc esi
mov byte [esi], 0xff
inc esi
inc ebp
dec ebx
jne 0x688a3f
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x688a19
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x688af3
inc ebx
xor ebp, ebp
mov edx, ebp
mov eax, dword [esp + 0xc]
call fcn.0067cdf8
test eax, eax
setne al
movsx eax, al
mov dword [esp + 0x3b8], eax
fild dword [esp + 0x3b8]
fstp dword [esi]
wait
add esi, 4
inc ebp
dec ebx
jne 0x688ac8
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x688aa2
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 9
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x688bb6
inc ebx
xor ebp, ebp
mov edx, ebp
mov eax, dword [esp + 0xc]
call fcn.0067cdf8
test eax, eax
setne al
and eax, 0x7f
mov edx, eax
shl eax, 0x10
sub eax, edx
mov dword [esp + 8], eax
mov ax, word [esp + 8]
mov word [esi], ax
add esi, 2
mov ax, word [esp + 8]
mov word [esi], ax
add esi, 2
mov ax, word [esp + 8]
mov word [esi], ax
add esi, 2
inc ebp
dec ebx
jne 0x688b73
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x688b4d
jmp case.0x688785.0
xor eax, eax
mov al, byte [edi + 0x50]
cmp eax, 0xa
ja case.0x688785.0
jmp dword [eax*4 + 0x688bda]
mov al, byte [edi + 0x60]
sub al, 1
jb 0x688c18
je 0x688d03
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x688cf0
inc ebx
xor ebp, ebp
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
lea eax, [eax + eax*2]
mov edx, dword [esp]
mov edx, dword [edx + 0x10]
lea eax, [edx + eax]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
movzx eax, byte [eax + 2]
mov edx, dword [0x767c3c]
imul dword [edx]
mov edx, dword [esp + 0x48]
movzx edx, byte [edx + 1]
mov ecx, dword [0x767b04]
imul edx, dword [ecx]
add eax, edx
mov edx, dword [esp + 0x48]
movzx edx, byte [edx]
mov ecx, dword [0x767564]
imul edx, dword [ecx]
add eax, edx
mov ecx, 0x64
cdq
idiv ecx
shr eax, 2
mov dword [esp + 8], eax
mov eax, ebp
and eax, 7
shl eax, 2
mov edx, dword [0x7678b8]
lea eax, [edx + eax*8]
mov edx, dword [esp + 4]
and edx, 7
mov eax, dword [eax + edx*4]
cmp eax, dword [esp + 8]
setl cl
and ecx, 0x7f
mov edx, ebp
mov eax, esi
call fcn.0067ce10
inc dword [esp + 0xc]
inc ebp
dec ebx
jne 0x688c5b
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x688c31
jmp case.0x688785.0
lea eax, [esp + 0x388]
push eax
or ecx, 0xffffffff
mov edx, edi
mov eax, dword [esp + 4]
call fcn.006b3600
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x688dad
inc ebx
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
lea eax, [eax + eax*2]
mov edx, dword [esp]
mov edx, dword [edx + 0x10]
lea ecx, [edx + eax]
xor eax, eax
mov al, byte [ecx + 2]
mov edx, dword [0x767c3c]
imul dword [edx]
xor edx, edx
mov dl, byte [ecx + 1]
mov ebp, dword [0x767b04]
imul edx, dword [ebp]
add eax, edx
xor edx, edx
mov dl, byte [ecx]
mov ecx, dword [0x767564]
imul edx, dword [ecx]
add eax, edx
mov ecx, 0x64
cdq
idiv ecx
mov byte [esi], al
inc esi
inc dword [esp + 0xc]
dec ebx
jne 0x688d5b
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x688d37
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x688e58
inc ebx
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
lea eax, [eax + eax*2]
mov edx, dword [esp]
mov edx, dword [edx + 0x10]
lea ecx, [edx + eax]
xor eax, eax
mov al, byte [ecx + 2]
mov edx, eax
shl eax, 8
add eax, edx
imul eax, eax, 0xd4
xor edx, edx
mov dl, byte [ecx + 1]
mov ebp, edx
shl edx, 8
add edx, ebp
imul edx, edx, 0x2c9
add eax, edx
xor edx, edx
mov dl, byte [ecx]
mov ecx, edx
shl edx, 8
add edx, ecx
imul edx, edx, 0x4b
add eax, edx
mov ecx, 0x3e8
xor edx, edx
div ecx
mov word [esi], ax
add esi, 2
inc dword [esp + 0xc]
dec ebx
jne 0x688df9
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x688dd5
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x688ed3
inc ebx
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
lea eax, [eax + eax*2]
mov edx, dword [esp]
mov edx, dword [edx + 0x10]
lea eax, [edx + eax]
mov dl, byte [eax]
mov byte [esi], dl
inc esi
mov dl, byte [eax + 1]
mov byte [esi], dl
inc esi
mov al, byte [eax + 2]
mov byte [esi], al
inc esi
inc dword [esp + 0xc]
dec ebx
jne 0x688ea8
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x688e84
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x688f4e
inc ebx
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
lea eax, [eax + eax*2]
mov edx, dword [esp]
mov edx, dword [edx + 0x10]
lea eax, [edx + eax]
mov dl, byte [eax]
mov byte [esi], dl
inc esi
mov dl, byte [eax + 1]
mov byte [esi], dl
inc esi
mov al, byte [eax + 2]
mov byte [esi], al
inc esi
mov byte [esi], 0xff
inc esi
inc dword [esp + 0xc]
dec ebx
jne 0x688f1f
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x688efb
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x689013
inc ebx
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
lea eax, [eax + eax*2]
mov edx, dword [esp]
mov edx, dword [edx + 0x10]
lea eax, [edx + eax]
xor edx, edx
mov dl, byte [eax + 2]
mov dword [esp + 0x3b8], edx
fild dword [esp + 0x3b8]
fld xword [0x68af88]
fmulp st(1)
xor edx, edx
mov dl, byte [eax + 1]
mov dword [esp + 0x3bc], edx
fild dword [esp + 0x3bc]
fld xword [0x68af94]
fmulp st(1)
faddp st(1)
movzx eax, byte [eax]
mov dword [esp + 0x3c0], eax
fild dword [esp + 0x3c0]
fld xword [0x68afa0]
fmulp st(1)
faddp st(1)
fdiv dword [0x68afac]
fstp dword [esi]
wait
add esi, 4
inc dword [esp + 0xc]
dec ebx
jne 0x688f9a
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x688f76
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x6890e3
inc ebx
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
lea eax, [eax + eax*2]
mov edx, dword [esp]
mov edx, dword [edx + 0x10]
lea eax, [edx + eax]
xor edx, edx
mov dl, byte [eax + 2]
mov ecx, edx
shl edx, 8
add edx, ecx
mov word [esi], dx
add esi, 2
xor edx, edx
mov dl, byte [eax + 1]
mov ecx, edx
shl edx, 8
add edx, ecx
mov word [esi], dx
add esi, 2
movzx eax, byte [eax]
mov edx, eax
shl eax, 8
add eax, edx
mov word [esi], ax
add esi, 2
inc dword [esp + 0xc]
dec ebx
jne 0x689095
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x689071
jmp case.0x688785.0
xor eax, eax
mov al, byte [edi + 0x50]
cmp eax, 0xa
ja case.0x688785.0
jmp dword [eax*4 + 0x689107]
mov al, byte [edi + 0x60]
sub al, 1
jb 0x689145
je 0x6891d1
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x6891c2
inc ebx
xor ebp, ebp
mov eax, ebp
and eax, 7
shl eax, 2
mov edx, dword [0x7678b8]
lea eax, [edx + eax*8]
mov edx, dword [esp + 4]
and edx, 7
mov eax, dword [eax + edx*4]
mov edx, dword [esp + 0xc]
movzx edx, byte [edx]
shr edx, 2
cmp eax, edx
setl cl
and ecx, 0x7f
mov edx, ebp
mov eax, esi
call fcn.0067ce10
inc dword [esp + 0xc]
inc ebp
dec ebx
jne 0x689184
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68915e
jmp case.0x688785.0
lea eax, [esp + 0x388]
push eax
or ecx, 0xffffffff
mov edx, edi
mov eax, dword [esp + 4]
call fcn.006b3600
jmp case.0x688785.0
xor eax, eax
lea edx, [eax + eax*2]
mov ecx, dword [edi + 0x10]
lea edx, [ecx + edx]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x4c]
mov byte [edx + 2], al
mov edx, dword [esp + 0x4c]
mov byte [edx + 1], al
mov edx, dword [esp + 0x4c]
mov byte [edx], al
inc eax
cmp eax, 0x100
jne 0x6891ee
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ecx, dword [edi + 0x48]
mov edx, dword [esp + 0xc]
mov eax, esi
call fcn.00408128
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x689230
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x6892c0
inc ebx
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
mov edx, eax
shl eax, 8
add eax, edx
mov word [esi], ax
inc dword [esp + 0xc]
add esi, 2
dec ebx
jne 0x6892a5
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x689281
jmp case.0x688785.0
fld qword [edi + 0x70]
fsub qword [edi + 0x68]
fstp qword [esp + 0x30]
wait
fld qword [esp + 0x30]
fcomp dword [0x68afb0]
fnstsw ax
sahf
jne 0x689357
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x689348
inc ebx
mov eax, dword [esp + 0xc]
mov al, byte [eax]
mov byte [esi], al
inc esi
mov eax, dword [esp + 0xc]
mov al, byte [eax]
mov byte [esi], al
inc esi
mov eax, dword [esp + 0xc]
mov al, byte [eax]
mov byte [esi], al
inc esi
inc dword [esp + 0xc]
dec ebx
jne 0x689326
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x689302
jmp case.0x688785.0
fld qword [edi + 0x68]
call fcn.00402c40
mov ebp, eax
fld qword [edi + 0x70]
call fcn.00402c40
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl 0x689422
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x689414
inc ebx
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
mov dword [esp + 8], eax
cmp ebp, dword [esp + 8]
jle 0x6893bf
mov dword [esp + 8], ebp
mov eax, dword [esp + 8]
cmp eax, dword [esp + 0x38]
jle 0x6893d1
mov eax, dword [esp + 0x38]
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
sub eax, ebp
mov dword [esp + 0x3b8], eax
fild dword [esp + 0x3b8]
fdiv qword [esp + 0x30]
fmul dword [0x68afac]
call fcn.00402c40
mov dword [esp + 8], eax
mov al, byte [esp + 8]
mov byte [esi], al
inc esi
mov al, byte [esp + 8]
mov byte [esi], al
inc esi
mov al, byte [esp + 8]
mov byte [esi], al
inc esi
inc dword [esp + 0xc]
dec ebx
jne 0x6893aa
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x689386
xor eax, eax
mov dword [edi + 0x68], eax
mov dword [edi + 0x6c], eax
xor eax, eax
mov dword [edi + 0x70], eax
mov dword [edi + 0x74], eax
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68949a
inc ebx
mov eax, dword [esp + 0xc]
mov al, byte [eax]
mov byte [esi], al
inc esi
mov eax, dword [esp + 0xc]
mov al, byte [eax]
mov byte [esi], al
inc esi
mov eax, dword [esp + 0xc]
mov al, byte [eax]
mov byte [esi], al
inc esi
mov byte [esi], 0xff
inc esi
inc dword [esp + 0xc]
dec ebx
jne 0x689474
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x689450
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68950e
inc ebx
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
mov dword [esp + 0x3b8], eax
fild dword [esp + 0x3b8]
fdiv dword [0x68afac]
fstp dword [esi]
wait
inc dword [esp + 0xc]
add esi, 4
dec ebx
jne 0x6894e6
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x6894c2
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x6895cf
inc ebx
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
mov edx, eax
shl eax, 8
add eax, edx
mov word [esi], ax
add esi, 2
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
mov edx, eax
shl eax, 8
add eax, edx
mov word [esi], ax
add esi, 2
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
mov edx, eax
shl eax, 8
add eax, edx
mov word [esi], ax
add esi, 2
inc dword [esp + 0xc]
dec ebx
jne 0x68958c
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x689568
jmp case.0x688785.0
xor eax, eax
mov al, byte [edi + 0x50]
cmp eax, 0xa
ja case.0x688785.0
jmp dword [eax*4 + 0x6895f3]
mov al, byte [edi + 0x60]
sub al, 1
jb 0x689631
je 0x6896be
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x6896af
inc ebx
xor ebp, ebp
mov eax, ebp
and eax, 7
shl eax, 2
mov edx, dword [0x7678b8]
lea eax, [edx + eax*8]
mov edx, dword [esp + 4]
and edx, 7
mov eax, dword [eax + edx*4]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shr edx, 0xa
cmp eax, edx
setl cl
and ecx, 0x7f
mov edx, ebp
mov eax, esi
call fcn.0067ce10
add dword [esp + 0x10], 2
inc ebp
dec ebx
jne 0x689670
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68964a
jmp case.0x688785.0
lea eax, [esp + 0x388]
push eax
or ecx, 0xffffffff
mov edx, edi
mov eax, dword [esp + 4]
call fcn.006b3600
jmp case.0x688785.0
xor eax, eax
lea edx, [eax + eax*2]
mov ecx, dword [edi + 0x10]
lea edx, [ecx + edx]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x50]
mov byte [edx + 2], al
mov edx, dword [esp + 0x50]
mov byte [edx + 1], al
mov edx, dword [esp + 0x50]
mov byte [edx], al
inc eax
cmp eax, 0x100
jne 0x6896db
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x689756
inc ebx
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
shr eax, 8
mov byte [esi], al
inc esi
add dword [esp + 0x10], 2
dec ebx
jne 0x689741
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68971d
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x6897b7
inc ebx
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
shr eax, 8
mov byte [esi], al
inc esi
add dword [esp + 0x10], 2
dec ebx
jne 0x6897a2
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68977e
jmp case.0x688785.0
fld qword [edi + 0x70]
fsub qword [edi + 0x68]
fstp qword [esp + 0x30]
wait
fld qword [esp + 0x30]
fcomp dword [0x68afb0]
fnstsw ax
sahf
jne 0x68985b
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68984c
inc ebx
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
shr eax, 8
mov byte [esi], al
inc esi
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
shr eax, 8
mov byte [esi], al
inc esi
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
shr eax, 8
mov byte [esi], al
inc esi
add dword [esp + 0x10], 2
dec ebx
jne 0x68981d
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x6897f9
jmp case.0x688785.0
fld qword [edi + 0x68]
call fcn.00402c40
mov ebp, eax
fld qword [edi + 0x70]
call fcn.00402c40
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl 0x689927
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x689919
inc ebx
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
mov dword [esp + 8], eax
cmp ebp, dword [esp + 8]
jle 0x6898c3
mov dword [esp + 8], ebp
mov eax, dword [esp + 8]
cmp eax, dword [esp + 0x38]
jle 0x6898d5
mov eax, dword [esp + 0x38]
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
sub eax, ebp
mov dword [esp + 0x3b8], eax
fild dword [esp + 0x3b8]
fdiv qword [esp + 0x30]
fmul dword [0x68afac]
call fcn.00402c40
mov dword [esp + 8], eax
mov al, byte [esp + 8]
mov byte [esi], al
inc esi
mov al, byte [esp + 8]
mov byte [esi], al
inc esi
mov al, byte [esp + 8]
mov byte [esi], al
inc esi
add dword [esp + 0x10], 2
dec ebx
jne 0x6898ae
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68988a
xor eax, eax
mov dword [edi + 0x68], eax
mov dword [edi + 0x6c], eax
xor eax, eax
mov dword [edi + 0x70], eax
mov dword [edi + 0x74], eax
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x6899ac
inc ebx
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
shr eax, 8
mov byte [esi], al
inc esi
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
shr eax, 8
mov byte [esi], al
inc esi
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
shr eax, 8
mov byte [esi], al
inc esi
mov byte [esi], 0xff
inc esi
add dword [esp + 0x10], 2
dec ebx
jne 0x689979
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x689955
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x689a21
inc ebx
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
mov dword [esp + 0x3b8], eax
fild dword [esp + 0x3b8]
fdiv dword [0x68afb4]
fstp dword [esi]
wait
add esi, 4
add dword [esp + 0x10], 2
dec ebx
jne 0x6899f8
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x6899d4
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x689ace
inc ebx
mov eax, dword [esp + 0x10]
mov ax, word [eax]
mov word [esi], ax
add esi, 2
mov eax, dword [esp + 0x10]
mov ax, word [eax]
mov word [esi], ax
add esi, 2
mov eax, dword [esp + 0x10]
mov ax, word [eax]
mov word [esi], ax
add esi, 2
add dword [esp + 0x10], 2
dec ebx
jne 0x689a9f
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x689a7b
jmp case.0x688785.0
xor eax, eax
mov al, byte [edi + 0x50]
cmp eax, 0xa
ja case.0x688785.0
jmp dword [eax*4 + 0x689af2]
mov al, byte [edi + 0x60]
sub al, 1
jb 0x689b30
je 0x689c0d
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x689bfa
inc ebx
xor ebp, ebp
mov eax, dword [esp + 0x14]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
movzx eax, byte [eax + 2]
mov edx, dword [0x767c3c]
imul dword [edx]
mov edx, dword [esp + 0x54]
movzx edx, byte [edx + 1]
mov ecx, dword [0x767b04]
imul edx, dword [ecx]
add eax, edx
mov edx, dword [esp + 0x54]
movzx edx, byte [edx]
mov ecx, dword [0x767564]
imul edx, dword [ecx]
add eax, edx
mov ecx, 0x64
cdq
idiv ecx
shr eax, 2
mov dword [esp + 8], eax
mov eax, ebp
and eax, 7
shl eax, 2
mov edx, dword [0x7678b8]
lea eax, [edx + eax*8]
mov edx, dword [esp + 4]
and edx, 7
mov eax, dword [eax + edx*4]
cmp eax, dword [esp + 8]
setl cl
and ecx, 0x7f
mov edx, ebp
mov eax, esi
call fcn.0067ce10
add dword [esp + 0x14], 3
inc ebp
dec ebx
jne 0x689b73
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x689b49
jmp case.0x688785.0
lea eax, [esp + 0x388]
push eax
or ecx, 0xffffffff
mov edx, edi
mov eax, dword [esp + 4]
call fcn.006b3600
jmp case.0x688785.0
lea eax, [esp + 0x88]
push eax
push 0xff
mov eax, dword [edi + 0x64]
push eax
mov ecx, dword [esp + 0xc]
mov dl, 1
mov eax, dword [0x5f570c]
call fcn.005f6290
mov dword [esp + 0x28], eax
xor eax, eax
lea edx, [esp + 0x8a]
mov dword [esp + 0x84], edx
lea edx, [eax + eax*2]
mov ecx, dword [edi + 0x10]
mov ebx, dword [esp + 0x84]
mov bl, byte [ebx]
mov byte [ecx + edx + 2], bl
lea edx, [eax + eax*2]
mov ecx, dword [edi + 0x10]
mov ebx, dword [esp + 0x84]
mov bl, byte [ebx - 1]
mov byte [ecx + edx + 1], bl
lea edx, [eax + eax*2]
mov ecx, dword [edi + 0x10]
mov ebx, dword [esp + 0x84]
mov bl, byte [ebx - 2]
mov byte [ecx + edx], bl
inc eax
add dword [esp + 0x84], 3
cmp eax, 0x100
jne 0x689c5d
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl 0x689d0c
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x689d02
inc ebx
mov eax, dword [esp + 0x14]
mov dl, byte [eax + 2]
shl edx, 0x10
mov dx, word [eax]
push edx
mov eax, dword [esp + 0x2c]
call fcn.005f64e4
mov byte [esi], al
inc esi
add dword [esp + 0x14], 3
dec ebx
jne 0x689ce0
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x689cbc
lea eax, [esp + 0x28]
call fcn.0040e0e0
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x689da7
inc ebx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
movzx eax, byte [eax + 2]
mov edx, dword [0x767c3c]
imul dword [edx]
mov edx, dword [esp + 0x58]
movzx edx, byte [edx + 1]
mov ecx, dword [0x767b04]
imul edx, dword [ecx]
add eax, edx
mov edx, dword [esp + 0x58]
movzx edx, byte [edx]
mov ecx, dword [0x767564]
imul edx, dword [ecx]
add eax, edx
mov ecx, 0x64
cdq
idiv ecx
mov byte [esi], al
add dword [esp + 0x14], 3
inc esi
dec ebx
jne 0x689d57
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x689d33
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x689e51
inc ebx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x5c]
movzx eax, byte [eax + 2]
mov edx, eax
shl eax, 8
add eax, edx
imul eax, eax, 0xd4
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 1]
mov ecx, edx
shl edx, 8
add edx, ecx
imul edx, edx, 0x2c9
add eax, edx
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx]
mov ecx, edx
shl edx, 8
add edx, ecx
imul edx, edx, 0x4b
add eax, edx
mov ecx, 0x3e8
xor edx, edx
div ecx
mov word [esi], ax
add dword [esp + 0x14], 3
add esi, 2
dec ebx
jne 0x689df3
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x689dcf
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x689f1a
inc ebx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x60]
movzx eax, byte [eax + 2]
mov dword [esp + 0x3b8], eax
fild dword [esp + 0x3b8]
fld xword [0x68af88]
fmulp st(1)
mov eax, dword [esp + 0x60]
movzx eax, byte [eax + 1]
mov dword [esp + 0x3bc], eax
fild dword [esp + 0x3bc]
fld xword [0x68af94]
fmulp st(1)
faddp st(1)
mov eax, dword [esp + 0x60]
movzx eax, byte [eax]
mov dword [esp + 0x3c0], eax
fild dword [esp + 0x3c0]
fld xword [0x68afa0]
fmulp st(1)
faddp st(1)
fdiv dword [0x68afac]
fstp dword [esi]
wait
add dword [esp + 0x14], 3
add esi, 4
dec ebx
jne 0x689ea1
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x689e7d
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x1c], eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x689f92
inc ebx
mov eax, dword [esp + 0x14]
mov dl, byte [eax + 2]
shl edx, 0x10
mov dx, word [eax]
push edx
call fcn.0064706c
mov edx, dword [esp + 0x1c]
mov dword [edx], eax
add dword [esp + 0x14], 3
add dword [esp + 0x1c], 4
dec ebx
jne 0x689f6c
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x689f46
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x20], eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68a020
inc ebx
mov eax, dword [esp + 0x14]
mov dl, byte [eax + 2]
shl edx, 0x10
mov dx, word [eax]
push edx
lea eax, [esp + 0x3c8]
call fcn.00685770
mov eax, dword [esp + 0x20]
mov dx, word [esp + 0x3c4]
mov word [eax], dx
mov dl, byte [esp + 0x3c6]
mov byte [eax + 2], dl
add dword [esp + 0x14], 3
add dword [esp + 0x20], 3
dec ebx
jne 0x689fe0
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x689fba
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68a0b2
inc ebx
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 2]
mov edx, eax
shl eax, 8
add eax, edx
mov word [esi], ax
add esi, 2
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 1]
mov edx, eax
shl eax, 8
add eax, edx
mov word [esi], ax
add esi, 2
mov eax, dword [esp + 0x14]
movzx eax, byte [eax]
mov edx, eax
shl eax, 8
add eax, edx
mov word [esi], ax
add esi, 2
add dword [esp + 0x14], 3
dec ebx
jne 0x68a06c
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68a048
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68a12c
inc ebx
mov eax, dword [esp + 0xc]
mov al, byte [eax]
mov byte [esi], al
inc esi
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov al, byte [eax]
mov byte [esi], al
inc esi
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov al, byte [eax]
mov byte [esi], al
inc esi
inc dword [esp + 0xc]
mov byte [esi], 0xff
inc esi
dec ebx
jne 0x68a0fe
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68a0da
jmp case.0x688785.0
xor eax, eax
mov al, byte [edi + 0x50]
cmp eax, 0xa
ja case.0x688785.0
jmp dword [eax*4 + 0x68a150]
mov al, byte [edi + 0x60]
sub al, 1
jb 0x68a18e
je 0x68a220
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x18], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68a211
inc ebx
xor ebp, ebp
mov eax, dword [esp + 0x18]
fld dword [eax]
fdiv dword [0x68afb8]
mov eax, ebp
and eax, 7
shl eax, 2
mov edx, dword [0x7678b8]
lea eax, [edx + eax*8]
mov edx, dword [esp + 4]
and edx, 7
fild dword [eax + edx*4]
fcompp
fnstsw ax
sahf
setb cl
and ecx, 0x7f
mov edx, ebp
mov eax, esi
call fcn.0067ce10
add dword [esp + 0x18], 4
inc ebp
dec ebx
jne 0x68a1cd
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68a1a7
jmp case.0x688785.0
lea eax, [esp + 0x388]
push eax
or ecx, 0xffffffff
mov edx, edi
mov eax, dword [esp + 4]
call fcn.006b3600
jmp case.0x688785.0
xor eax, eax
lea edx, [eax + eax*2]
mov ecx, dword [edi + 0x10]
lea edx, [ecx + edx]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x64]
mov byte [edx + 2], al
mov edx, dword [esp + 0x64]
mov byte [edx + 1], al
mov edx, dword [esp + 0x64]
mov byte [edx], al
inc eax
cmp eax, 0x100
jne 0x68a23d
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x18], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68a2bf
inc ebx
mov eax, dword [esp + 0x18]
fld dword [eax]
fmul dword [0x68afac]
call fcn.00402c40
mov byte [esi], al
add dword [esp + 0x18], 4
inc esi
dec ebx
jne 0x68a2a3
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68a27f
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x18], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68a327
inc ebx
mov eax, dword [esp + 0x18]
fld dword [eax]
fmul dword [0x68afac]
call fcn.00402c40
mov byte [esi], al
add dword [esp + 0x18], 4
inc esi
dec ebx
jne 0x68a30b
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68a2e7
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x18], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68a392
inc ebx
mov eax, dword [esp + 0x18]
fld dword [eax]
fmul dword [0x68afb4]
call fcn.00402c40
mov word [esi], ax
add dword [esp + 0x18], 4
add esi, 2
dec ebx
jne 0x68a373
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68a34f
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x18], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68a410
inc ebx
mov eax, dword [esp + 0x18]
fld dword [eax]
fmul dword [0x68afac]
call fcn.00402c40
mov dword [esp + 8], eax
mov al, byte [esp + 8]
mov byte [esi], al
inc esi
mov al, byte [esp + 8]
mov byte [esi], al
inc esi
mov al, byte [esp + 8]
mov byte [esi], al
inc esi
add dword [esp + 0x18], 4
dec ebx
jne 0x68a3de
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68a3ba
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x18], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68a492
inc ebx
mov eax, dword [esp + 0x18]
fld dword [eax]
fmul dword [0x68afac]
call fcn.00402c40
mov dword [esp + 8], eax
mov al, byte [esp + 8]
mov byte [esi], al
inc esi
mov al, byte [esp + 8]
mov byte [esi], al
inc esi
mov al, byte [esp + 8]
mov byte [esi], al
inc esi
mov byte [esi], 0xff
inc esi
add dword [esp + 0x18], 4
dec ebx
jne 0x68a45c
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68a438
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x18], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68a54e
inc ebx
mov eax, dword [esp + 0x18]
fld dword [eax]
fmul dword [0x68afb4]
call fcn.00402c40
mov dword [esp + 8], eax
mov ax, word [esp + 8]
mov word [esi], ax
add esi, 2
mov ax, word [esp + 8]
mov word [esi], ax
add esi, 2
mov ax, word [esp + 8]
mov word [esi], ax
add esi, 2
add dword [esp + 0x18], 4
dec ebx
jne 0x68a510
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68a4ec
jmp case.0x688785.0
xor eax, eax
mov al, byte [edi + 0x50]
cmp eax, 0xa
ja case.0x688785.0
jmp dword [eax*4 + 0x68a572]
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov ebp, eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68a69c
inc ebx
lea edx, [esp + 0x3c4]
mov eax, dword [ebp]
call fcn.00646cc0
mov ax, word [esp + 0x3c4]
mov word [esi], ax
mov al, byte [esp + 0x3c6]
mov byte [esi + 2], al
add ebp, 4
add esi, 3
dec ebx
jne 0x68a66f
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68a64d
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov ebp, eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68a713
inc ebx
lea edx, [esp + 0x68]
mov eax, dword [ebp]
call fcn.00646cc0
mov al, byte [esp + 0x6a]
mov byte [esi + 2], al
mov al, byte [esp + 0x69]
mov byte [esi + 1], al
mov al, byte [esp + 0x68]
mov byte [esi], al
mov byte [esi + 3], 0xff
add ebp, 4
add esi, 4
dec ebx
jne 0x68a6e6
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68a6c4
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
xor eax, eax
mov al, byte [edi + 0x50]
cmp eax, 0xa
ja case.0x688785.0
jmp dword [eax*4 + 0x68a750]
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov ebp, eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68a869
inc ebx
mov al, byte [ebp + 2]
shl eax, 0x10
mov ax, word [ebp]
push eax
lea eax, [esp + 0x3c8]
call fcn.00685b28
mov ax, word [esp + 0x3c4]
mov word [esi], ax
mov al, byte [esp + 0x3c6]
mov byte [esi + 2], al
add ebp, 3
add esi, 3
dec ebx
jne 0x68a834
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68a812
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov ebp, eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68a8e8
inc ebx
mov al, byte [ebp + 2]
shl eax, 0x10
mov ax, word [ebp]
push eax
lea eax, [esp + 0x6f]
call fcn.00685b28
mov al, byte [esp + 0x6d]
mov byte [esi + 2], al
mov al, byte [esp + 0x6c]
mov byte [esi + 1], al
mov al, byte [esp + 0x6b]
mov byte [esi], al
mov byte [esi + 3], 0xff
add ebp, 3
add esi, 4
dec ebx
jne 0x68a8b3
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68a891
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
xor eax, eax
mov al, byte [edi + 0x50]
cmp eax, 0xa
ja case.0x688785.0
jmp dword [eax*4 + 0x68a93e]
mov al, byte [edi + 0x60]
sub al, 1
jb 0x68a97c
je 0x68aa62
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68aa4f
inc ebx
xor ebp, ebp
mov eax, dword [esp + 0x24]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x70]
movzx eax, word [eax]
shr eax, 8
mov edx, dword [0x767c3c]
imul dword [edx]
mov edx, dword [esp + 0x70]
movzx edx, word [edx + 2]
shr edx, 8
mov ecx, dword [0x767b04]
imul edx, dword [ecx]
add eax, edx
mov edx, dword [esp + 0x70]
movzx edx, word [edx + 4]
shr edx, 8
mov ecx, dword [0x767564]
imul edx, dword [ecx]
add eax, edx
mov ecx, 0x64
cdq
idiv ecx
shr eax, 2
mov dword [esp + 8], eax
mov eax, ebp
and eax, 7
shl eax, 2
mov edx, dword [0x7678b8]
lea eax, [edx + eax*8]
mov edx, dword [esp + 4]
and edx, 7
mov eax, dword [eax + edx*4]
cmp eax, dword [esp + 8]
setl cl
and ecx, 0x7f
mov edx, ebp
mov eax, esi
call fcn.0067ce10
add dword [esp + 0x24], 6
inc ebp
dec ebx
jne 0x68a9bf
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68a995
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
lea eax, [esp + 0x388]
push eax
or ecx, 0xffffffff
mov edx, edi
mov eax, dword [esp + 4]
call fcn.006b3600
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68ab36
inc ebx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x74]
movzx eax, word [eax]
shr eax, 8
mov edx, dword [0x767c3c]
imul dword [edx]
mov edx, dword [esp + 0x74]
movzx edx, word [edx + 2]
shr edx, 8
mov ecx, dword [0x767b04]
imul edx, dword [ecx]
add eax, edx
mov edx, dword [esp + 0x74]
movzx edx, word [edx + 4]
shr edx, 8
mov ecx, dword [0x767564]
imul edx, dword [ecx]
add eax, edx
mov ecx, 0x64
cdq
idiv ecx
mov byte [esi], al
add dword [esp + 0x24], 6
inc esi
dec ebx
jne 0x68aadd
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68aab9
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68abcf
inc ebx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x78]
movzx eax, word [eax]
imul eax, eax, 0xd4
mov edx, dword [esp + 0x78]
movzx edx, word [edx + 2]
imul edx, edx, 0x2c9
add eax, edx
mov edx, dword [esp + 0x78]
movzx edx, word [edx + 4]
imul edx, edx, 0x4b
add eax, edx
mov ecx, 0x3e8
xor edx, edx
div ecx
mov word [esi], ax
add dword [esp + 0x24], 6
add esi, 2
dec ebx
jne 0x68ab86
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68ab62
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68acae
inc ebx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x7c]
movzx eax, word [eax]
mov dword [esp + 0x3b8], eax
fild dword [esp + 0x3b8]
fld xword [0x68af88]
fmulp st(1)
fdiv dword [0x68afbc]
mov eax, dword [esp + 0x7c]
movzx eax, word [eax + 2]
mov dword [esp + 0x3bc], eax
fild dword [esp + 0x3bc]
fld xword [0x68af94]
fmulp st(1)
fdiv dword [0x68afbc]
faddp st(1)
mov eax, dword [esp + 0x7c]
movzx eax, word [eax + 4]
mov dword [esp + 0x3c0], eax
fild dword [esp + 0x3c0]
fld xword [0x68afa0]
fmulp st(1)
fdiv dword [0x68afbc]
faddp st(1)
fdiv dword [0x68afac]
fstp dword [esi]
wait
add dword [esp + 0x24], 6
add esi, 4
dec ebx
jne 0x68ac1f
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68abf7
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68ad4d
inc ebx
mov dword [esp + 0x80], esi
mov eax, dword [esp + 0x24]
movzx eax, word [eax]
shr eax, 8
mov edx, dword [esp + 0x80]
mov byte [edx + 2], al
mov eax, dword [esp + 0x24]
movzx eax, word [eax + 2]
shr eax, 8
mov edx, dword [esp + 0x80]
mov byte [edx + 1], al
mov eax, dword [esp + 0x24]
movzx eax, word [eax + 4]
shr eax, 8
mov edx, dword [esp + 0x80]
mov byte [edx], al
add dword [esp + 0x24], 6
add esi, 3
dec ebx
jne 0x68acfe
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68acda
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68add2
inc ebx
mov eax, esi
mov edx, dword [esp + 0x24]
movzx edx, word [edx]
shr edx, 8
mov byte [eax + 2], dl
mov edx, dword [esp + 0x24]
movzx edx, word [edx + 2]
shr edx, 8
mov byte [eax + 1], dl
mov edx, dword [esp + 0x24]
movzx edx, word [edx + 4]
shr edx, 8
mov byte [eax], dl
mov byte [eax + 3], 0xff
add dword [esp + 0x24], 6
add esi, 4
dec ebx
jne 0x68ad99
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68ad75
jmp case.0x688785.0
xor eax, eax
mov al, byte [edi + 0x50]
cmp eax, 9
ja case.0x688785.0
jmp dword [eax*4 + 0x68adf6]
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov eax, dword [edi + 0x3c]
dec eax
test eax, eax
jl case.0x688785.0
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
mov ebx, dword [edi + 0x38]
dec ebx
test ebx, ebx
jl 0x68af06
inc ebx
mov eax, dword [esp + 0xc]
mov al, byte [eax]
mov byte [esi], al
inc esi
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov al, byte [eax]
mov byte [esi], al
inc esi
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov al, byte [eax]
mov byte [esi], al
inc esi
inc dword [esp + 0xc]
inc dword [esp + 0xc]
dec ebx
jne 0x68aed8
inc dword [esp + 4]
dec dword [esp + 0x44]
jne 0x68aeb4
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
jmp case.0x688785.0
mov dl, 5
mov eax, dword [esp]
call fcn.0068afc0
mov edx, dword [esp]
mov eax, edi
call fcn.00688718
mov eax, dword [esp]
call fcn.00686654
test al, al
je 0x68af74
mov eax, dword [esp]
call fcn.00686618
push eax
mov eax, edi
call fcn.00686618
pop edx
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, edi
call fcn.0068d3cc
add esp, 0x3c8
pop ebp
pop edi
pop esi
pop ebx
ret